/Plugin Code/Scoin.Crm.Plugins/isp_payment/setstatedynamicentity.cs

https://bitbucket.org/CrmAppSAGCE/source-code
C# | 186 lines | 176 code | 6 blank | 4 comment | 54 complexity | 6d5808d57f2f3d00e61f8ac561d493cd MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.Crm.Sdk.Messages;
  5. using Microsoft.Xrm.Sdk;
  6. using Microsoft.Xrm.Sdk.Client;
  7. using Microsoft.Xrm.Sdk.Query;
  8. using Scoin.Crm.Plugins.GeneratedCode;
  9. namespace Scoin.Crm.Plugins.isp_payment
  10. {
  11. public class setstatedynamicentity : IPlugin
  12. {
  13. public void Execute(IServiceProvider serviceProvider)
  14. {
  15. IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
  16. IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
  17. IOrganizationService service = factory.CreateOrganizationService(context.UserId);
  18. OrganizationServiceContext orgContext = new OrganizationServiceContext(service);
  19. ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
  20. bool update = false;
  21. if (context.InputParameters.Contains("State"))
  22. {
  23. GeneratedCode.isp_payment payment = (from p in orgContext.CreateQuery<GeneratedCode.isp_payment>()
  24. where p.isp_paymentId.Value == context.PrimaryEntityId
  25. select new GeneratedCode.isp_payment
  26. {
  27. isp_paymentId = p.isp_paymentId,
  28. isp_BullionCoins = p.isp_BullionCoins,
  29. isp_BullionTurnover = p.isp_BullionTurnover,
  30. isp_RareCoinsTurnover = p.isp_RareCoinsTurnover,
  31. isp_PurchaseNoteRareQuantity = p.isp_PurchaseNoteRareQuantity,
  32. isp_PurchaseNoteBullionQuantity = p.isp_PurchaseNoteBullionQuantity,
  33. isp_BrokerCommissionId = p.isp_BrokerCommissionId,
  34. isp_ShopCommissionId = p.isp_ShopCommissionId
  35. }).FirstOrDefault();
  36. if (payment.isp_BrokerCommissionId != null)
  37. {
  38. isp_brokercommission brokerCommission = (from bc in orgContext.CreateQuery<isp_brokercommission>()
  39. where bc.isp_brokercommissionId.Value == payment.isp_BrokerCommissionId.Id
  40. select new isp_brokercommission
  41. {
  42. isp_brokercommissionId = bc.isp_brokercommissionId,
  43. isp_CommissionableAmount = bc.isp_CommissionableAmount,
  44. isp_BullionCount = bc.isp_BullionCount,
  45. isp_BullionValue = bc.isp_BullionValue,
  46. isp_PurchaseNoteItemQuantity = bc.isp_PurchaseNoteItemQuantity
  47. }).FirstOrDefault();
  48. trace.Trace("Contains status");
  49. //Active
  50. if (((OptionSetValue)context.InputParameters["State"]).Value == 0)
  51. {
  52. int purchaseNoteQuantity = 0;
  53. if (payment.isp_BullionCoins != null)
  54. {
  55. brokerCommission.isp_BullionCount = brokerCommission.isp_BullionCount.Value + payment.isp_BullionCoins.Value;
  56. update = true;
  57. }
  58. if (payment.isp_BullionTurnover != null)
  59. {
  60. brokerCommission.isp_BullionValue = new Money(brokerCommission.isp_BullionValue.Value + payment.isp_BullionTurnover.Value);
  61. update = true;
  62. }
  63. if (payment.isp_RareCoinsTurnover != null)
  64. {
  65. brokerCommission.isp_CommissionableAmount = new Money(brokerCommission.isp_CommissionableAmount.Value + payment.isp_RareCoinsTurnover.Value);
  66. update = true;
  67. }
  68. if (payment.isp_PurchaseNoteRareQuantity != null)
  69. {
  70. purchaseNoteQuantity = purchaseNoteQuantity + payment.isp_PurchaseNoteRareQuantity.Value;
  71. }
  72. if (payment.isp_PurchaseNoteBullionQuantity != null)
  73. {
  74. purchaseNoteQuantity = purchaseNoteQuantity + payment.isp_PurchaseNoteBullionQuantity.Value;
  75. }
  76. if (purchaseNoteQuantity != 0)
  77. {
  78. brokerCommission.isp_PurchaseNoteItemQuantity = brokerCommission.isp_PurchaseNoteItemQuantity.Value + purchaseNoteQuantity;
  79. update = true;
  80. }
  81. }
  82. //Inactive
  83. if (((OptionSetValue)context.InputParameters["State"]).Value == 1)
  84. {
  85. int purchaseNoteQuantity = 0;
  86. if (payment.isp_BullionCoins != null)
  87. {
  88. brokerCommission.isp_BullionCount = brokerCommission.isp_BullionCount.Value - payment.isp_BullionCoins.Value;
  89. update = true;
  90. }
  91. if (payment.isp_BullionTurnover != null)
  92. {
  93. brokerCommission.isp_BullionValue = new Money(brokerCommission.isp_BullionValue.Value - payment.isp_BullionTurnover.Value);
  94. update = true;
  95. }
  96. if (payment.isp_RareCoinsTurnover != null)
  97. {
  98. brokerCommission.isp_CommissionableAmount = new Money(brokerCommission.isp_CommissionableAmount.Value - payment.isp_RareCoinsTurnover.Value);
  99. update = true;
  100. }
  101. if (payment.isp_PurchaseNoteRareQuantity != null)
  102. {
  103. purchaseNoteQuantity = purchaseNoteQuantity + payment.isp_PurchaseNoteRareQuantity.Value;
  104. }
  105. if (payment.isp_PurchaseNoteBullionQuantity != null)
  106. {
  107. purchaseNoteQuantity = purchaseNoteQuantity + payment.isp_PurchaseNoteBullionQuantity.Value;
  108. }
  109. if (purchaseNoteQuantity != 0)
  110. {
  111. brokerCommission.isp_PurchaseNoteItemQuantity = brokerCommission.isp_PurchaseNoteItemQuantity.Value - purchaseNoteQuantity;
  112. update = true;
  113. }
  114. }
  115. if (update)
  116. {
  117. orgContext.UpdateObject(brokerCommission);
  118. orgContext.SaveChanges();
  119. }
  120. }
  121. if (payment.isp_ShopCommissionId != null)
  122. {
  123. isp_shopcommission shopCommission = (from bc in orgContext.CreateQuery<isp_shopcommission>()
  124. where bc.isp_shopcommissionId.Value == payment.isp_ShopCommissionId.Id
  125. select new isp_shopcommission
  126. {
  127. isp_shopcommissionId = bc.isp_shopcommissionId,
  128. isp_CommissionableAmount = bc.isp_CommissionableAmount,
  129. isp_BullionCount = bc.isp_BullionCount,
  130. isp_BullionValue = bc.isp_BullionValue,
  131. }).FirstOrDefault();
  132. trace.Trace("Contains status");
  133. //Active
  134. if (((OptionSetValue)context.InputParameters["State"]).Value == 0)
  135. {
  136. if (payment.isp_BullionCoins != null)
  137. {
  138. shopCommission.isp_BullionCount = shopCommission.isp_BullionCount.Value + payment.isp_BullionCoins.Value;
  139. update = true;
  140. }
  141. if (payment.isp_BullionTurnover != null)
  142. {
  143. shopCommission.isp_BullionValue = new Money(shopCommission.isp_BullionValue.Value + payment.isp_BullionTurnover.Value);
  144. update = true;
  145. }
  146. if (payment.isp_RareCoinsTurnover != null)
  147. {
  148. shopCommission.isp_CommissionableAmount = new Money(shopCommission.isp_CommissionableAmount.Value + payment.isp_RareCoinsTurnover.Value);
  149. update = true;
  150. }
  151. }
  152. //Inactive
  153. if (((OptionSetValue)context.InputParameters["State"]).Value == 1)
  154. {
  155. if (payment.isp_BullionCoins != null)
  156. {
  157. shopCommission.isp_BullionCount = shopCommission.isp_BullionCount.Value - payment.isp_BullionCoins.Value;
  158. update = true;
  159. }
  160. if (payment.isp_BullionTurnover != null)
  161. {
  162. shopCommission.isp_BullionValue = new Money(shopCommission.isp_BullionValue.Value - payment.isp_BullionTurnover.Value);
  163. update = true;
  164. }
  165. if (payment.isp_RareCoinsTurnover != null)
  166. {
  167. shopCommission.isp_CommissionableAmount = new Money(shopCommission.isp_CommissionableAmount.Value - payment.isp_RareCoinsTurnover.Value);
  168. update = true;
  169. }
  170. }
  171. if (update)
  172. {
  173. orgContext.UpdateObject(shopCommission);
  174. orgContext.SaveChanges();
  175. }
  176. }
  177. }
  178. }
  179. }
  180. }