Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }