private void BtnDeactivateFormulas_Click(object sender, EventArgs e) { var fetchXml = string.Empty; if (string.IsNullOrEmpty(txtInput.Text)) { fetchXml = CrmHelper.GetFormulaFetchForMigrationEntities(); } else { fetchXml = txtInput.Text; } var result = CrmConnManager.LService.RetrieveMultiple(new FetchExpression(fetchXml)).Entities; txtLog.AppendText($"Number of active formulas: {result.Count}"); int count = 0;; foreach (var en in result) { if (count++ % 50 == 0) { txtLog.AppendText($"Deactivated formulas count: {count}"); } var id = en.Id; var entityName = en.GetAttributeValue <string>("north52_sourceentityname"); var name = en.GetAttributeValue <string>("north52_name"); var formula = new CrmFormula() { Id = id, Name = name, Type = new MigrationHelper.Option() { Value = en.GetAttributeValue <OptionSetValue>("north52_formulatype").Value, Name = en.FormattedValues["north52_formulatype"] }, StatusCode = new MigrationHelper.Option() { Value = en.GetAttributeValue <OptionSetValue>("statuscode").Value, Name = en.FormattedValues["statuscode"] }, StateCode = new MigrationHelper.Option() { Value = en.GetAttributeValue <OptionSetValue>("statecode").Value, Name = en.FormattedValues["statecode"] }, }; //txtLog.AppendText($"Formula Name: {entityName}:{formula.Name}, Type: {formula.Type.Name} {Environment.NewLine}"); CrmHelper.DeactivateRecord("north52_formula", formula.Id, CrmConnManager.LService); } }
public void ProcessResult(DataCollection <Entity> result, SourceTypes sourceType) { foreach (var en in result) { var id = en.Id; var entityName = en.GetAttributeValue <string>("north52_sourceentityname"); var formulaName = en.GetAttributeValue <string>("north52_name"); var formula = new CrmFormula() { Id = id, Name = formulaName, //Type = new Option() //{ // Value = en.GetAttributeValue<OptionSetValue>("north52_formulatype").Value, // Name = en.FormattedValues["north52_formulatype"] //}, Type = CrmHelper.GetOption(en, "north52_formulatype"), StatusCode = CrmHelper.GetOption(en, "statuscode"), StateCode = CrmHelper.GetOption(en, "statecode"), SourceEntityName = en.GetAttributeValue <string>("north52_sourceentityname"), SourceEntityProperty = en.GetAttributeValue <string>("north52_sourceentityproperty"), TargetEntityName = en.GetAttributeValue <string>("north52_targetentityname"), TargetEntityproperty = en.GetAttributeValue <string>("north52_targetentityproperty"), Description = en.GetAttributeValue <string>("north52_formuladescription"), }; var dr = FormulaDiffRecords.Where(x => x.Name == formulaName && x.EntityName == entityName).FirstOrDefault(); if (dr == null) { dr = new FormulaDiffRecord() { Name = formulaName, EntityName = entityName, }; FormulaDiffRecords.Add(dr); } if (sourceType == SourceTypes.Left) { dr.LFormula = formula; } else { dr.RFormula = formula; } CrmFormulaEntity crmEntity = FormulaEntities.Where(x => x.LogicalName == entityName).FirstOrDefault(); if (crmEntity == null) { crmEntity = new CrmFormulaEntity() { LogicalName = entityName }; FormulaEntities.Add(crmEntity); } var fdr = crmEntity.FormulaDiffRecords.Where(x => x.Name == formulaName).FirstOrDefault(); if (fdr == null) { fdr = dr; crmEntity.FormulaDiffRecords.Add(fdr); } } }