public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); if (context.MessageName.ToLower() != "create" || context.PrimaryEntityName != SalesOrder.EntityLogicalName) { return; } using (var orgContext = new OrganizationServiceContext(service)) { var order = (Entity)context.InputParameters["Target"]; var neworder = order.ToEntity <SalesOrder>(); var constanta = (from i in orgContext.CreateQuery <new_constant>() select i).FirstOrDefault(); var user = (from i in orgContext.CreateQuery <SystemUser>() where i.Id == order.GetAttributeValue <EntityReference>("ownerid").Id select i).FirstOrDefault(); StringBuilder nomer = new StringBuilder(); nomer.Append(string.Format("{0}-{1}/СЛГУ-{2}", constanta.new_salesordernumber, DateTime.Now.Year.ToString(), user.new_abbreviation)); //var updateOrder = new SalesOrder(){ // Id = order.Id, // OrderNumber = //} neworder.new_ordernumber = nomer.ToString(); var updateConstanta = new new_constant() { Id = constanta.Id, new_salesordernumber = (Convert.ToInt32(constanta.new_salesordernumber) + 1).ToString() }; service.Update(updateConstanta); orgContext.SaveChanges(); } } catch (Exception) { throw; } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); if (context.MessageName.ToLower() != "create" || context.PrimaryEntityName != SalesOrder.EntityLogicalName) return; using (var orgContext = new OrganizationServiceContext(service)) { var order = (Entity)context.InputParameters["Target"]; var neworder = order.ToEntity<SalesOrder>(); var constanta = (from i in orgContext.CreateQuery<new_constant>() select i).FirstOrDefault(); var user = (from i in orgContext.CreateQuery<SystemUser>() where i.Id == order.GetAttributeValue<EntityReference>("ownerid").Id select i).FirstOrDefault(); StringBuilder nomer = new StringBuilder(); nomer.Append(string.Format("{0}-{1}/СЛГУ-{2}", constanta.new_salesordernumber, DateTime.Now.Year.ToString(), user.new_abbreviation)); //var updateOrder = new SalesOrder(){ // Id = order.Id, // OrderNumber = //} neworder.new_ordernumber = nomer.ToString(); var updateConstanta = new new_constant() { Id = constanta.Id, new_salesordernumber = (Convert.ToInt32(constanta.new_salesordernumber) + 1).ToString() }; service.Update(updateConstanta); orgContext.SaveChanges(); } } catch (Exception) { throw; } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); if (context.MessageName.ToLower() != "create" || context.PrimaryEntityName != Invoice.EntityLogicalName) { return; } using (var orgContext = new OrganizationServiceContext(service)) { var invoice = (Entity)context.InputParameters["Target"]; var newinvoice = invoice.ToEntity <Invoice>(); if (newinvoice.Name != null && !newinvoice.Name.Contains("СЛГУ")) { return; } var constanta = (from i in orgContext.CreateQuery <new_constant>() select i).FirstOrDefault(); var userAbbreviation = (from i in orgContext.CreateQuery <SystemUser>() where i.Id == newinvoice.OwnerId.Id select i.new_abbreviation).FirstOrDefault(); StringBuilder nomer = new StringBuilder(); nomer.Append(string.Format("{0}{1}-1", userAbbreviation, constanta.new_invoicenumder)); newinvoice.Name = nomer.ToString(); var updateConstanta = new new_constant() { Id = constanta.Id, new_invoicenumder = (Convert.ToInt32(constanta.new_invoicenumder) + 1).ToString() }; service.Update(updateConstanta); orgContext.SaveChanges(); } } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = serviceFactory.CreateOrganizationService(context.UserId); if (context.MessageName.ToLower() != "create" || context.PrimaryEntityName != Invoice.EntityLogicalName) return; using (var orgContext = new OrganizationServiceContext(service)) { var invoice = (Entity)context.InputParameters["Target"]; var newinvoice = invoice.ToEntity<Invoice>(); if (newinvoice.Name != null && !newinvoice.Name.Contains("СЛГУ")) { return; } var constanta = (from i in orgContext.CreateQuery<new_constant>() select i).FirstOrDefault(); var userAbbreviation = (from i in orgContext.CreateQuery<SystemUser>() where i.Id == newinvoice.OwnerId.Id select i.new_abbreviation).FirstOrDefault(); StringBuilder nomer = new StringBuilder(); nomer.Append(string.Format("{0}{1}-1", userAbbreviation, constanta.new_invoicenumder)); newinvoice.Name = nomer.ToString(); var updateConstanta = new new_constant() { Id = constanta.Id, new_invoicenumder = (Convert.ToInt32(constanta.new_invoicenumder) + 1).ToString() }; service.Update(updateConstanta); orgContext.SaveChanges(); } } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = factory.CreateOrganizationService(context.UserId); if (context.MessageName == "Create") { object blok = new object(); int? number; new_constant counter = new new_constant(); Entity entity = (Entity)context.InputParameters["Target"]; string correntYear = DateTime.Now.ToString("yy"); lock (blok) { using (var orgContext = new OrganizationServiceContext(service)) { var getCounterValue = (from c in orgContext.CreateQuery<new_constant>() select c).FirstOrDefault(); switch (entity.LogicalName) { case new_purchase_order.EntityLogicalName: number = getCounterValue.new_purchase_order; counter.new_purchase_order = ++number; if (entity.Attributes.Contains("new_name") == true) entity["new_name"] = $"{number}/{correntYear}"; else entity.Attributes.Add("new_name", $"{number}/{correntYear}"); break; case new_purchase_order_change.EntityLogicalName: number = getCounterValue.new_purchase_order_change; counter.new_purchase_order_change = ++number;; if (entity.Attributes.Contains("new_name") == true) entity["new_name"] = $"{number}/{correntYear}"; else entity.Attributes.Add("new_name", $"{number}/{correntYear}"); break; case new_purchase_deal.EntityLogicalName: number = getCounterValue.new_purchase_deal; counter.new_purchase_deal = ++number; if (entity.Attributes.Contains("new_name") == true) entity["new_name"] = $"{number}/{correntYear}"; else entity.Attributes.Add("new_name", $"{number}/{correntYear}"); break; case new_purchase_task.EntityLogicalName: number = getCounterValue.new_purchase_deal; counter.new_purchase_task = ++number; if (entity.Attributes.Contains("new_name") == true) entity["new_name"] = $"{number}/{correntYear}"; else entity.Attributes.Add("new_name", $"{number}/{correntYear}"); break; default: return; } counter.Id = getCounterValue.Id; service.Update(counter); } } } } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }
public void Execute(IServiceProvider serviceProvider) { try { IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); if (context.PrimaryEntityName != new_monitoring.EntityLogicalName) { return; } Entity entity = null; if (context.MessageName.ToLower() == "create") { entity = (Entity)context.InputParameters["Target"]; } else if (context.MessageName.ToLower() == "update") { entity = (Entity)context.PostEntityImages["Post"]; } else { return; } var correnctEntity = entity.ToEntity <new_monitoring>(); if (!isTrust(correnctEntity.new_accountid, service)) { return; } if (correnctEntity.new_cropid == null) { return; } /* if (DateTime.Now < DateTime.Now.Date.AddHours(11).AddMinutes(05))*/ using (var orgContext = new OrganizationServiceContext(service)) { var haveAprove = CheckaprovedEntity(orgContext, correnctEntity.new_cropid.Id); var currency = getCurrency(orgContext) ?? 0; new_constant cons = getConstanta(orgContext); if (cons == null) { throw new InvalidPluginExecutionException("Створіть запис константи"); } var margin = cons.new_purchase_margin ?? new Money(0); var coefficient = cons.GetAttributeValue <double?>("new_vat_return_coefficient") ?? 1; double nikolaevUSD = 0; Money nikolaevRec = new Money(0); double odesaUSD = 0; Money odesaRec = new Money(0); double odesaRecUSD = 0; double nikolaevRecUSD = 0; if (correnctEntity.new_purchase_price_nikolaev != null && correnctEntity.new_purchase_price_nikolaev.Value != 0) { nikolaevUSD = ((double)correnctEntity.new_purchase_price_nikolaev?.Value / currency) * coefficient; nikolaevRec = new Money(correnctEntity.new_purchase_price_nikolaev.Value - margin.Value); nikolaevRecUSD = ((double)nikolaevRec.Value / currency) * coefficient; } if (correnctEntity.new_purchase_price_odessa != null && correnctEntity.new_purchase_price_odessa.Value != 0) { odesaUSD = ((double)correnctEntity.new_purchase_price_odessa?.Value / currency) * coefficient; odesaRec = new Money(correnctEntity.new_purchase_price_odessa.Value - margin.Value); odesaRecUSD = ((double)odesaRec.Value / currency) * coefficient; } if (haveAprove == null) { var checkPurchase = (from i in orgContext.CreateQuery <new_aprove_price>() where i.CreatedOn >= DateTime.Now.Date.ToUniversalTime() && i.CreatedOn <= DateTime.Now.AddDays(1).Date.ToUniversalTime() && i.new_cropid.Id == correnctEntity.new_cropid.Id && i.new_aproved != new OptionSetValue(100000002) select i).FirstOrDefault(); if (checkPurchase == null) { new_aprove_price CreateRecord = new new_aprove_price() { new_max_purchase_price_odessa = correnctEntity.new_purchase_price_odessa, new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev, new_cropid = correnctEntity.new_cropid, new_aproved = new OptionSetValue(100000001), new_trader_Odesaid = correnctEntity.new_accountid, new_trader_Mykolaivid = correnctEntity.new_accountid, new_dollar_rate = currency, new_max_purchase_mykolaiv_usd = nikolaevUSD, new_dollar_purchase_price_nikolaev = nikolaevRecUSD, new_recom_purchase_price_nikolaev = nikolaevRec, new_recom_purchase_price_odessa = odesaRec, new_max_purchase_odesa_usd = odesaUSD, new_dollar_purchase_price_odessa = odesaRecUSD, new_purchase_margin = margin }; service.Create(CreateRecord); } else { new_aprove_price UpdateRecord = new new_aprove_price(); UpdateRecord.Id = checkPurchase.Id; bool flag = false; if (checkPurchase.new_max_purchase_price_odessa?.Value < correnctEntity.new_purchase_price_odessa?.Value) { UpdateRecord.new_max_purchase_price_odessa = correnctEntity.new_purchase_price_odessa; UpdateRecord.new_trader_Odesaid = correnctEntity.new_accountid; UpdateRecord.new_aproved = new OptionSetValue(100000001); UpdateRecord.new_trader_Odesaid = correnctEntity.new_accountid; UpdateRecord.new_recom_purchase_price_odessa = odesaRec; UpdateRecord.new_max_purchase_odesa_usd = odesaUSD; UpdateRecord.new_dollar_purchase_price_odessa = odesaRecUSD; UpdateRecord.new_purchase_margin = margin; UpdateRecord.new_dollar_rate = currency; flag = true; } /* else * { * UpdateRecord.new_max_purchase_price_odessa = checkPurchase.new_max_purchase_price_odessa; * UpdateRecord.new_trader_Odesaid = checkPurchase.new_trader_Odesaid; * UpdateRecord.new_dollar_rate = checkPurchase.new_dollar_rate; * UpdateRecord.new_max_purchase_odesa_usd = checkPurchase.new_max_purchase_mykolaiv_usd; * UpdateRecord.new_dollar_purchase_price_odessa = checkPurchase.new_dollar_purchase_price_nikolaev; * UpdateRecord.new_recom_purchase_price_odessa = checkPurchase.new_recom_purchase_price_nikolaev; * UpdateRecord.new_purchase_margin = checkPurchase.new_purchase_margin; * }*/ if (checkPurchase.new_max_purchase_price_nikolaev?.Value < correnctEntity.new_purchase_price_nikolaev?.Value) { UpdateRecord.new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev; UpdateRecord.new_trader_Mykolaivid = correnctEntity.new_accountid; UpdateRecord.new_aproved = new OptionSetValue(100000001); UpdateRecord.new_trader_Mykolaivid = correnctEntity.new_accountid; UpdateRecord.new_dollar_rate = currency; UpdateRecord.new_max_purchase_mykolaiv_usd = nikolaevUSD; UpdateRecord.new_dollar_purchase_price_nikolaev = nikolaevRecUSD; UpdateRecord.new_recom_purchase_price_nikolaev = nikolaevRec; UpdateRecord.new_purchase_margin = margin; flag = true; } /* else * { * UpdateRecord.new_max_purchase_price_nikolaev = checkPurchase.new_max_purchase_price_nikolaev; * UpdateRecord.new_trader_Mykolaivid = checkPurchase.new_trader_Mykolaivid; * UpdateRecord.new_dollar_rate = checkPurchase.new_dollar_rate; * UpdateRecord.new_max_purchase_mykolaiv_usd = checkPurchase.new_max_purchase_mykolaiv_usd; * UpdateRecord.new_dollar_purchase_price_nikolaev = checkPurchase.new_dollar_purchase_price_nikolaev; * UpdateRecord.new_recom_purchase_price_nikolaev = checkPurchase.new_recom_purchase_price_nikolaev; * UpdateRecord.new_purchase_margin = checkPurchase.new_purchase_margin; * }*/ if (flag) { service.Update(UpdateRecord); } } } else { new_aprove_price CreateRecord = new new_aprove_price(); bool flag = false; if (haveAprove.new_max_purchase_price_odessa?.Value < correnctEntity.new_purchase_price_odessa?.Value) { CreateRecord.new_max_purchase_price_odessa = correnctEntity.new_purchase_price_odessa; CreateRecord.new_trader_Odesaid = correnctEntity.new_accountid; CreateRecord.new_aproved = new OptionSetValue(100000001); CreateRecord.new_cropid = correnctEntity.new_cropid; CreateRecord.new_dollar_rate = currency; CreateRecord.new_max_purchase_odesa_usd = odesaUSD; CreateRecord.new_recom_purchase_price_odessa = odesaRec; CreateRecord.new_dollar_purchase_price_odessa = odesaRecUSD; CreateRecord.new_purchase_margin = margin; flag = true; } else { CreateRecord.new_max_purchase_price_odessa = haveAprove.new_max_purchase_price_odessa; CreateRecord.new_trader_Odesaid = haveAprove.new_trader_Odesaid; } if (haveAprove.new_max_purchase_price_nikolaev?.Value < correnctEntity.new_purchase_price_nikolaev?.Value) { CreateRecord.new_max_purchase_price_nikolaev = correnctEntity.new_purchase_price_nikolaev; CreateRecord.new_trader_Mykolaivid = correnctEntity.new_accountid; CreateRecord.new_aproved = new OptionSetValue(100000001); CreateRecord.new_cropid = correnctEntity.new_cropid; CreateRecord.new_dollar_rate = currency; CreateRecord.new_max_purchase_mykolaiv_usd = nikolaevUSD; CreateRecord.new_recom_purchase_price_nikolaev = nikolaevRec; CreateRecord.new_dollar_purchase_price_nikolaev = nikolaevRecUSD; CreateRecord.new_purchase_margin = margin; flag = true; } else { CreateRecord.new_max_purchase_price_nikolaev = haveAprove.new_max_purchase_price_nikolaev; CreateRecord.new_trader_Mykolaivid = haveAprove.new_trader_Mykolaivid; } if (flag) { service.Create(CreateRecord); new_aprove_price updateToClose = new new_aprove_price(); updateToClose.Id = haveAprove.Id; //updateToClose.new_aproved = new OptionSetValue(100000002); service.Update(updateToClose); } } } } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }
public void Execute(IServiceProvider serviceProvider) { try { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); var service = factory.CreateOrganizationService(context.UserId); if (context.MessageName == "Create") { object blok = new object(); int? number; new_constant counter = new new_constant(); Entity entity = (Entity)context.InputParameters["Target"]; string correntYear = DateTime.Now.ToString("yy"); lock (blok) { using (var orgContext = new OrganizationServiceContext(service)) { var getCounterValue = (from c in orgContext.CreateQuery <new_constant>() select c).FirstOrDefault(); switch (entity.LogicalName) { case new_purchase_order.EntityLogicalName: number = getCounterValue.new_purchase_order; counter.new_purchase_order = ++number; if (entity.Attributes.Contains("new_name") == true) { entity["new_name"] = $"{number}/{correntYear}"; } else { entity.Attributes.Add("new_name", $"{number}/{correntYear}"); } break; case new_purchase_order_change.EntityLogicalName: number = getCounterValue.new_purchase_order_change; counter.new_purchase_order_change = ++number;; if (entity.Attributes.Contains("new_name") == true) { entity["new_name"] = $"{number}/{correntYear}"; } else { entity.Attributes.Add("new_name", $"{number}/{correntYear}"); } break; case new_purchase_deal.EntityLogicalName: number = getCounterValue.new_purchase_deal; counter.new_purchase_deal = ++number; if (entity.Attributes.Contains("new_name") == true) { entity["new_name"] = $"{number}/{correntYear}"; } else { entity.Attributes.Add("new_name", $"{number}/{correntYear}"); } break; case new_purchase_task.EntityLogicalName: number = getCounterValue.new_purchase_deal; counter.new_purchase_task = ++number; if (entity.Attributes.Contains("new_name") == true) { entity["new_name"] = $"{number}/{correntYear}"; } else { entity.Attributes.Add("new_name", $"{number}/{correntYear}"); } break; default: return; } counter.Id = getCounterValue.Id; service.Update(counter); } } } } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } }