public static StatusManager getRootStatus(mzk_entitytype entityType, mzk_casetype caseType, bool isActivityOrder = false) { try { StatusManager statusManagerObj = new StatusManager(); QueryExpression query = new QueryExpression(mzk_statusmanager.EntityLogicalName); query.Criteria.AddCondition("mzk_entitytype", ConditionOperator.Equal, (int)entityType); query.Criteria.AddCondition("mzk_casetype", ConditionOperator.Equal, (int)caseType); query.Criteria.AddCondition("mzk_effectivefrom", ConditionOperator.LessEqual, DateTime.Now.ToShortDateString()); query.Criteria.AddCondition("mzk_effectiveto", ConditionOperator.GreaterEqual, DateTime.Now.ToShortDateString()); LinkEntity entityTypeDetails = new LinkEntity(mzk_statusmanager.EntityLogicalName, mzk_statusmanagerdetails.EntityLogicalName, "mzk_statusmanagerid", "mzk_statusmanagerid", JoinOperator.Inner); entityTypeDetails.EntityAlias = "mzk_statusmanagerdetailsNextStatus"; if (isActivityOrder == true) { entityTypeDetails.LinkCriteria.AddCondition("mzk_startingstatusforactivityorder", ConditionOperator.Equal, true); } else { entityTypeDetails.LinkCriteria.AddCondition("mzk_startingstatusformanualorder", ConditionOperator.Equal, true); } entityTypeDetails.Columns = new Microsoft.Xrm.Sdk.Query.ColumnSet(true); query.LinkEntities.Add(entityTypeDetails); SoapEntityRepository repo = SoapEntityRepository.GetService(); EntityCollection entitycol = repo.GetEntityCollection(query); StatusManager model = null; if (entitycol != null && entitycol.Entities != null && entitycol.Entities.Count > 0) { model = new StatusManager(); bool activityOrder = (bool)(((AliasedValue)entitycol.Entities[0]["mzk_statusmanagerdetailsNextStatus.mzk_startingstatusforactivityorder"]).Value); bool manualOrder = (bool)(((AliasedValue)entitycol.Entities[0]["mzk_statusmanagerdetailsNextStatus.mzk_startingstatusformanualorder"]).Value); if (entitycol.Entities[0].Attributes.Contains("mzk_statusmanagerdetailsNextStatus.mzk_orderstatus")) { model.status = (((AliasedValue)entitycol.Entities[0]["mzk_statusmanagerdetailsNextStatus.mzk_orderstatus"]).Value as OptionSetValue).Value; } if (entitycol.Entities[0].Attributes.Contains("mzk_statusmanagerdetailsNextStatus.mzk_statusmanagerdetailsid")) { model.StatusId = ((AliasedValue)entitycol.Entities[0]["mzk_statusmanagerdetailsNextStatus.mzk_statusmanagerdetailsid"]).Value.ToString(); } if (entitycol.Entities[0].Attributes.Contains("mzk_statusmanagerdetailsNextStatus.mzk_sendorm")) { model.sendOrm = (bool)(((AliasedValue)entitycol.Entities[0]["mzk_statusmanagerdetailsNextStatus.mzk_sendorm"]).Value); } } else { throw new ValidationException("Status manager not found. Please contact system administrator"); } return(model); } catch (Exception ex) { throw ex; } }
public List <StatusManager> getHierarchyByType(mzk_entitytype _entityType, mzk_casetype _caseType) { try { SoapEntityRepository repo = SoapEntityRepository.GetService(); QueryExpression query = new QueryExpression(mzk_statusmanager.EntityLogicalName); query.Criteria.AddCondition("mzk_entitytype", ConditionOperator.Equal, (int)_entityType); query.Criteria.AddCondition("mzk_casetype", ConditionOperator.Equal, (int)_caseType); query.Criteria.AddCondition("mzk_effectivefrom", ConditionOperator.LessEqual, DateTime.Now.ToShortDateString()); query.Criteria.AddCondition("mzk_effectiveto", ConditionOperator.GreaterEqual, DateTime.Now.ToShortDateString()); LinkEntity entityTypeDetails = new LinkEntity(mzk_statusmanager.EntityLogicalName, mzk_statusmanagerdetails.EntityLogicalName, "mzk_statusmanagerid", "mzk_statusmanagerid", JoinOperator.Inner); entityTypeDetails.EntityAlias = "mzk_statusmanagerdetails"; entityTypeDetails.Columns = new Microsoft.Xrm.Sdk.Query.ColumnSet(true); query.LinkEntities.Add(entityTypeDetails); LinkEntity entityTypeAction = new LinkEntity(mzk_statusmanagerdetails.EntityLogicalName, mzk_actionmanager.EntityLogicalName, "mzk_actionmanagerid", "mzk_actionmanagerid", JoinOperator.Inner); entityTypeAction.EntityAlias = "mzk_actionmanager"; entityTypeAction.Columns = new Microsoft.Xrm.Sdk.Query.ColumnSet(true); entityTypeDetails.LinkEntities.Add(entityTypeAction); LinkEntity entityTypeRevert = new LinkEntity(mzk_statusmanagerdetails.EntityLogicalName, mzk_statusmanagerdetails.EntityLogicalName, "mzk_revertstatus", "mzk_statusmanagerdetailsid", JoinOperator.LeftOuter); entityTypeRevert.EntityAlias = "mzk_statusmanagerdetailsRevertStatus"; entityTypeRevert.Columns = new Microsoft.Xrm.Sdk.Query.ColumnSet("mzk_orderstatus"); entityTypeDetails.LinkEntities.Add(entityTypeRevert); EntityCollection entitycol = repo.GetEntityCollection(query); StatusManager model; List <StatusManager> listModelType = new List <StatusManager>(); foreach (Entity entity in entitycol.Entities) { model = new StatusManager(); if (entity.Attributes.Contains("mzk_actionmanager.mzk_actionname")) { model.name = ((AliasedValue)entity["mzk_actionmanager.mzk_actionname"]).Value.ToString(); } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_allowedit")) { model.allowEdit = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_allowedit"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_fulfillmentaction")) { model.fulfillmentAction = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_fulfillmentaction"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_showendtime")) { model.showEndTime = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_showendtime"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_showstarttime")) { model.showStartTime = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_showstarttime"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_undo")) { model.Undo = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_undo"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_showtimer")) { model.showTimer = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_showtimer"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_orderstatus")) { model.status = (((AliasedValue)(entity["mzk_statusmanagerdetails.mzk_orderstatus"])).Value as OptionSetValue).Value; } // if (entity.Attributes.Contains("mzk_statusmanagerdetailsParentStatus.mzk_orderstatus")) // { //model.parentStatus = (((AliasedValue)entity["mzk_statusmanagerdetailsParentStatus.mzk_orderstatus"]).Value as OptionSetValue).Value; //} if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_statusmanagerdetailsid")) { model.StatusId = ((AliasedValue)entity["mzk_statusmanagerdetails.mzk_statusmanagerdetailsid"]).Value.ToString(); } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_parentstatusid")) { model.ParentStatusId = ((EntityReference)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_parentstatusid"]).Value).Id.ToString(); } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_revertstatus")) { model.RevertStatusId = ((EntityReference)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_revertstatus"]).Value).Id.ToString(); } if (entity.Attributes.Contains("mzk_statusmanagerdetailsRevertStatus.mzk_orderstatus")) { model.revertStatus = (((AliasedValue)entity["mzk_statusmanagerdetailsRevertStatus.mzk_orderstatus"]).Value as OptionSetValue).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_showflip")) { model.isFlip = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_showflip"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_sendorm")) { model.sendOrm = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_sendorm"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_createcharge")) { model.createCharge = (bool)((AliasedValue)entity["mzk_statusmanagerdetails.mzk_createcharge"]).Value; } if (entity.Attributes.Contains("mzk_statusmanagerdetails.mzk_fliptype")) { model.FlipType = (((AliasedValue)(entity["mzk_statusmanagerdetails.mzk_fliptype"])).Value as OptionSetValue).Value; } listModelType.Add(model); } return(listModelType); } catch (Exception ex) { throw ex; } }