Example #1
0
        public void InsertByProxy_CountTest4()
        {
            try
            {
                List <AccessGroupProxy> proxyList = new List <AccessGroupProxy>();

                AccessGroupProxy proxy = new AccessGroupProxy();
                proxy.ID       = ADOGroup.ID;
                proxy.IsParent = true;
                proxyList.Add(proxy);
                proxy         = new AccessGroupProxy();
                proxy.ID      = ADOPrecard1.ID;
                proxy.Checked = false;
                proxyList.Add(proxy);
                decimal id = busAccessGroup.InsertByProxy("TestAccessGroup3", "", proxyList);

                ClearSession();
                PrecardAccessGroup group = busAccessGroup.GetByID(id);
                Assert.IsTrue(group.PrecardList != null);
                Assert.AreEqual(2, group.PrecardList.Count);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Example #2
0
 public void Delete_Test()
 {
     try
     {
         busAccessGroup.SaveChanges(ADOaccessGroup1, UIActionType.DELETE);
         ClearSession();
         accessGroup_testObject = busAccessGroup.GetByID(ADOaccessGroup1.ID);
         Assert.Fail();
     }
     catch (ItemNotExists ex)
     {
         Assert.Pass(ex.Message);
     }
 }
Example #3
0
        public void TestSetup()
        {
            accessGroup_testObject = new PrecardAccessGroup();
            busAccessGroup         = new BPrecardAccessGroup();

            accessGroupTA.Insert("TestAccessGroup1");
            DatasetGatewayWorkFlow.TA_PrecardAccessGroupDataTable accessTable = new DatasetGatewayWorkFlow.TA_PrecardAccessGroupDataTable();
            accessTable          = accessGroupTA.GetDataBy1("TestAccessGroup1");
            ADOaccessGroup1.ID   = Convert.ToDecimal(accessTable.Rows[0][0]);
            ADOaccessGroup1.Name = "TestAccessGroup1";
            accessGroupTA.Insert("TestAccessGroup2");
            accessTable          = accessGroupTA.GetDataBy1("TestAccessGroup2");
            ADOaccessGroup2.ID   = Convert.ToDecimal(accessTable.Rows[0][0]);
            ADOaccessGroup2.Name = "TestAccessGroup2";

            groupPrecardTA.Insert("TestPrecardGroup", "TestGroup1");
            DatasetGatewayWorkFlow.TA_PrecardGroupsDataTable groupTable;
            groupTable  = groupPrecardTA.GetDataByName("TestGroup1");
            ADOGroup.ID = Convert.ToDecimal(groupTable.Rows[0][0]);

            precardTA.Insert("TestPish1", true, ADOGroup.ID, true, false, false, "1001", false);
            precardTA.Insert("TestPish2", true, ADOGroup.ID, false, true, false, "1002", false);
            precardTA.Insert("TestPish3", true, ADOGroup.ID, false, true, false, "1003", false);

            DatasetGatewayWorkFlow.TA_PrecardDataTable precardTable = new DatasetGatewayWorkFlow.TA_PrecardDataTable();
            precardTable         = precardTA.GetDataByName("TestPish1");
            ADOPrecard1.ID       = Convert.ToDecimal(precardTable.Rows[0][0]);
            ADOPrecard1.Name     = "TestPish1";
            ADOPrecard1.Active   = true;
            ADOPrecard1.IsHourly = true;
            ADOPrecard1.Code     = "1001";
            precardTable         = precardTA.GetDataByName("TestPish2");
            ADOPrecard2.ID       = Convert.ToDecimal(precardTable.Rows[0][0]);
            ADOPrecard2.Name     = "TestPish2";
            ADOPrecard2.Active   = true;
            ADOPrecard2.IsDaily  = true;
            ADOPrecard2.Code     = "1002";
            precardTable         = precardTA.GetDataByName("TestPish3");
            ADOPrecard3.ID       = Convert.ToDecimal(precardTable.Rows[0][0]);
            ADOPrecard3.Name     = "TestPish3";
            ADOPrecard3.Active   = true;
            ADOPrecard3.IsDaily  = true;
            ADOPrecard3.Code     = "1003";

            accessDetailTA.Insert(ADOaccessGroup1.ID, ADOPrecard1.ID);
            accessDetailTA.Insert(ADOaccessGroup1.ID, ADOPrecard2.ID);
            accessDetailTA.Insert(ADOaccessGroup1.ID, ADOPrecard3.ID);

            flowTA.Insert(ADOaccessGroup2.ID, false, false, "TestMyFlow");
        }
Example #4
0
        public void UpdateByProxy_CountTest2()
        {
            try
            {
                List <AccessGroupProxy> proxyList = new List <AccessGroupProxy>();

                decimal id = busAccessGroup.UpdateByProxy(ADOaccessGroup1.ID, "TestAccessGroup3", "", proxyList, true);

                ClearSession();
                PrecardAccessGroup group = busAccessGroup.GetByID(id);
                Assert.IsTrue(group.PrecardList != null);
                Assert.AreEqual(0, group.PrecardList.Count);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Example #5
0
 public void Insert_DetailTest()
 {
     try
     {
         accessGroup_testObject.Name        = "TestAccessGroup3";
         accessGroup_testObject.PrecardList = new List <Precard>();
         accessGroup_testObject.PrecardList.Add(ADOPrecard1);
         accessGroup_testObject.PrecardList.Add(ADOPrecard2);
         busAccessGroup.SaveChanges(accessGroup_testObject, UIActionType.ADD);
         ClearSession();
         PrecardAccessGroup group = busAccessGroup.GetByID(accessGroup_testObject.ID);
         Assert.IsTrue(group.PrecardList != null);
         Assert.AreEqual(2, group.PrecardList.Count);
     }
     catch (Exception ex)
     {
         Assert.Fail(ex.Message);
     }
 }
Example #6
0
        /// <summary>
        /// همه پیشکارتها را جهت نمایش گروهی برمیگرداند
        /// اگر پارامتر ورودی صفر باشد بدین معنی است که
        /// در مد اینزرت هستیم
        /// </summary>
        /// <param name="accessGroupId"></param>
        /// <returns></returns>
        public IList <PrecardGroups> GetPrecardTree(decimal substituteId, decimal flowId)
        {
            try
            {
                BPrecardAccessGroup bpAccess = new BPrecardAccessGroup();
                BFlow flow = new BFlow();
                PrecardAccessGroup    group = flow.GetByID(flowId).AccessGroup;
                IList <PrecardGroups> list  = bpAccess.GetPrecardTree(group.ID);

                Substitute      substitute = this.GetByID(substituteId);
                IList <Precard> precards   = substitute.PrecardList;


                foreach (PrecardGroups g in list)
                {
                    int childCount = 0;
                    foreach (Precard p in g.PrecardList)
                    {
                        p.ContainInPrecardAccessGroup = false;
                        if (precards.Where(x => x.ID == p.ID).Count() > 0)
                        {
                            p.ContainInPrecardAccessGroup = true;
                            childCount++;
                        }
                    }
                    g.ContainInPrecardAccessGroup = false;
                    if (childCount == g.PrecardList.Count)
                    {
                        g.ContainInPrecardAccessGroup = true;
                    }
                }
                return(list);
            }
            catch (Exception ex)
            {
                LogException(ex, "BSubstitute", "GetPrecardTree");
                throw ex;
            }
        }
Example #7
0
        public void UpdateByProxy_CountTest3()
        {
            try
            {
                List <AccessGroupProxy> proxyList = new List <AccessGroupProxy>();

                AccessGroupProxy proxy = new AccessGroupProxy();
                proxy.ID      = ADOPrecard3.ID;
                proxy.Checked = true;
                proxyList.Add(proxy);

                decimal id = busAccessGroup.UpdateByProxy(ADOaccessGroup1.ID, "TestAccessGroup3", "", proxyList, true);

                ClearSession();
                PrecardAccessGroup group = busAccessGroup.GetByID(id);
                Assert.IsTrue(group.PrecardList != null);
                Assert.AreEqual(1, group.PrecardList.Count);
                Assert.AreEqual(ADOPrecard3.ID, group.PrecardList[0].ID);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Example #8
0
        /// <summary>
        /// پیشکارتهای یک جانشین را ثبت میکند
        /// اگر پارانتر آخر تهی باشد بدین معنی است که جریان حذف شود یعنی تمام پیشکارتهایش خالی شود
        /// </summary>
        /// <param name="substituteId"></param>
        /// <param name="flowId"></param>
        /// <param name="accessGroupList"></param>
        /// <returns></returns>
        public bool UpdateByProxy(decimal substituteId, decimal flowId, IList <AccessGroupProxy> accessGroupList)
        {
            try
            {
                if (substituteId == 0 || flowId == 0)
                {
                    UIValidationExceptions exception = new UIValidationExceptions();
                    exception.Add(new ValidationException(ExceptionResourceKeys.SubstituteUpdateFlowAndSubstituteIdRequeiered, "کد جریان و جانشین نامشخص است", ExceptionSrc));
                }
                bool  substituteContainsFlow = false;//تیک جریان کاری در گرید مربوطه
                BFlow flow = new BFlow();
                PrecardAccessGroup precardAccessGroup     = flow.GetByID(flowId).AccessGroup;
                EntityRepository <PrecardGroups> groupRep = new EntityRepository <PrecardGroups>(false);
                IList <Precard> removeList = new List <Precard>();
                Substitute      substitute = this.GetByID(substituteId);
                substitute.PrecardAccessIsSet = true;
                substitute.TheFromDate        = Utility.ToPersianDate(substitute.FromDate);
                substitute.TheToDate          = Utility.ToPersianDate(substitute.ToDate);
                //ابتدا همگی حذف و سپس ایجاد میگردد
                substitute.PrecardList = new List <Precard>();

                if (accessGroupList != null)
                {
                    foreach (AccessGroupProxy proxy in accessGroupList)
                    {
                        if (proxy.IsParent)
                        {
                            PrecardGroups group = groupRep.GetById(proxy.ID, false);
                            foreach (Precard p in group.PrecardList)
                            {
                                substituteContainsFlow = true;
                                substitute.PrecardList.Add(p);
                            }
                        }
                        else if (proxy.Checked)
                        {
                            substituteContainsFlow = true;
                            substitute.PrecardList.Add(new Precard()
                            {
                                ID = proxy.ID
                            });
                        }
                        else
                        {
                            removeList.Add(new Precard()
                            {
                                ID = proxy.ID
                            });
                        }
                    }
                    foreach (Precard p in removeList)
                    {
                        substitute.PrecardList.Remove(p);
                    }
                }
                SaveChanges(substitute, UIActionType.EDIT);
                return(substituteContainsFlow);
            }
            catch (Exception ex)
            {
                LogException(ex, "BSubstitute", "UpdateByProxy");
                throw ex;
            }
        }
Example #9
0
        public string[] UpdateAccessGroup_AccessGroupsPage(string state, string flowState, string SelectedAccessGroupID, string AccessGroupName, string AccessGroupDescription, string StrAccessLevelsList)
        {
            this.InitializeCulture();

            string[] retMessage = new string[4];

            try
            {
                AttackDefender.CSRFDefender(this.Page);
                decimal AccessGroupID         = 0;
                decimal selectedAccessGroupID = decimal.Parse(this.StringBuilder.CreateString(SelectedAccessGroupID), CultureInfo.InvariantCulture);
                AccessGroupName        = this.StringBuilder.CreateString(AccessGroupName);
                AccessGroupDescription = this.StringBuilder.CreateString(AccessGroupDescription);
                StrAccessLevelsList    = this.StringBuilder.CreateString(StrAccessLevelsList);
                UIActionType       uam         = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
                UIActionType       FlowState   = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(flowState).ToUpper());
                PrecardAccessGroup accessGroup = new PrecardAccessGroup();
                accessGroup.ID          = selectedAccessGroupID;
                accessGroup.Name        = AccessGroupName;
                accessGroup.Description = AccessGroupDescription;

                IList <AccessGroupProxy> AccessLevelsList = new List <AccessGroupProxy>();
                if (StrAccessLevelsList != "null")
                {
                    AccessLevelsList = this.CreateAccessLevelsList_AccessGroups(StrAccessLevelsList);
                }
                switch (uam)
                {
                case UIActionType.ADD:
                    switch (FlowState)
                    {
                    case UIActionType.ADD:
                        AccessGroupID = this.AccessGroupBusiness.InsertAccessGroup_onOrganizationFlowInsert(AccessGroupName, AccessGroupDescription, AccessLevelsList);
                        break;

                    case UIActionType.EDIT:
                        AccessGroupID = this.AccessGroupBusiness.InsertAccessGroup_onOrganizationFlowUpdate(AccessGroupName, AccessGroupDescription, AccessLevelsList);
                        break;
                    }
                    break;

                case UIActionType.EDIT:
                    if (selectedAccessGroupID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoAccessGroupSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }
                    bool IsUpdateAccessLevelsList = true;
                    if (StrAccessLevelsList == "null")
                    {
                        IsUpdateAccessLevelsList = false;
                    }
                    switch (FlowState)
                    {
                    case UIActionType.ADD:
                        AccessGroupID = this.AccessGroupBusiness.UpdateAccessGroup_onOrganizationFlowInsert(selectedAccessGroupID, AccessGroupName, AccessGroupDescription, AccessLevelsList, IsUpdateAccessLevelsList);
                        break;

                    case UIActionType.EDIT:
                        AccessGroupID = this.AccessGroupBusiness.UpdateAccessGroup_onOrganizationFlowUpdate(selectedAccessGroupID, AccessGroupName, AccessGroupDescription, AccessLevelsList, IsUpdateAccessLevelsList);
                        break;
                    }
                    break;

                case UIActionType.DELETE:
                    if (selectedAccessGroupID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoAccessGroupSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    switch (FlowState)
                    {
                    case UIActionType.ADD:
                        this.AccessGroupBusiness.DeleteAccessGroup_onOrganizationFlowInsert(accessGroup, uam);
                        break;

                    case UIActionType.EDIT:
                        this.AccessGroupBusiness.DeleteAccessGroup_onOrganizationFlowUpdate(accessGroup, uam);
                        break;
                    }
                    break;
                }

                retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
                string SuccessMessageBody = string.Empty;
                switch (uam)
                {
                case UIActionType.ADD:
                    SuccessMessageBody = GetLocalResourceObject("AddComplete").ToString();
                    break;

                case UIActionType.EDIT:
                    SuccessMessageBody = GetLocalResourceObject("EditComplete").ToString();
                    break;

                case UIActionType.DELETE:
                    SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                    break;

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = AccessGroupID.ToString();
                return(retMessage);
            }
            catch (UIValidationExceptions ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
                return(retMessage);
            }
            catch (UIBaseException ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
                return(retMessage);
            }
            catch (Exception ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
                return(retMessage);
            }
        }
        private void DeleteSuspendRequestStatesByFlowCondition(decimal flowID, IList <ManagerFlowConditionPrecardProxy> managerFlowConditionPreacardProxyList)
        {
            try
            {
                Request                   requestAlias       = null;
                RequestStatus             requestStatusAlias = null;
                ManagerFlow               managerFlowAlias   = null;
                Flow                      flowAlias          = null;
                GTS.Clock.Model.Temp.Temp precardAccessGroupDetailTempAlias     = null;
                PrecardAccessGroup        precardAccessGroupAlias               = null;
                PrecardAccessGroupDetail  precardAccessGroupDetailAlias         = null;
                string                    precardAccessGroupDetailOperationGUID = string.Empty;
                string                    requestStatusOperationGUID            = string.Empty;
                List <decimal>            requestStatusIdsList = new List <decimal>();
                BTemp                     tempBusiness         = new BTemp();

                precardAccessGroupDetailOperationGUID = tempBusiness.InsertTempList(managerFlowConditionPreacardProxyList.Select(x => x.ManagerFlowCondition.PrecardAccessGroupDetail.ID).ToList <decimal>());

                var EndFlowAndDeletedRequestStatusSubQuery = QueryOver.Of <RequestStatus>(() => requestStatusAlias)
                                                             .Where(() => requestStatusAlias.EndFlow || !requestStatusAlias.IsDeleted)
                                                             .And(() => requestStatusAlias.Request.ID == requestAlias.ID)
                                                             .Select(x => x.ID);

                IList <Request> requestsList = this.NHSession.QueryOver <Request>(() => requestAlias)
                                               .JoinAlias(() => requestAlias.RequestStatusList, () => requestStatusAlias)
                                               .JoinAlias(() => requestStatusAlias.ManagerFlow, () => managerFlowAlias)
                                               .JoinAlias(() => managerFlowAlias.Flow, () => flowAlias)
                                               .JoinAlias(() => flowAlias.AccessGroup, () => precardAccessGroupAlias)
                                               .JoinAlias(() => precardAccessGroupAlias.PrecardAccessGroupDetailList, () => precardAccessGroupDetailAlias)
                                               .JoinAlias(() => precardAccessGroupDetailAlias.TempList, () => precardAccessGroupDetailTempAlias)
                                               .Where(() => !flowAlias.IsDeleted &&
                                                      !requestAlias.EndFlow &&
                                                      flowAlias.ID == flowID &&
                                                      precardAccessGroupDetailTempAlias.OperationGUID == precardAccessGroupDetailOperationGUID
                                                      )
                                               .WithSubquery
                                               .WhereNotExists(EndFlowAndDeletedRequestStatusSubQuery)
                                               .List <Request>();

                tempBusiness.DeleteTempList(precardAccessGroupDetailOperationGUID);

                foreach (Request requestItem in requestsList)
                {
                    ManagerFlowConditionPrecardProxy managerFlowConditionPrecardProxy = managerFlowConditionPreacardProxyList.Where(x => x.PrecardID == requestItem.ID).FirstOrDefault();
                    if (this.CheckRequestValueAppliedFlowConditionValue(managerFlowConditionPrecardProxy.ManagerFlowCondition, requestItem))
                    {
                        requestStatusIdsList.AddRange(requestItem.RequestStatusList.Select(x => x.ID).ToList <decimal>());
                    }
                }

                if (requestStatusIdsList.Count > 0)
                {
                    requestStatusOperationGUID = tempBusiness.InsertTempList(requestStatusIdsList);

                    string SQLCommand = @"delete from TA_RequestStatus 
                                                 inner join TA_Temp
                                                 on reqStat_ID = temp_OperationGUID
                                                 where temp_OperationGUID = :operationGUID";
                    NHSession.CreateSQLQuery(SQLCommand)
                    .SetParameter("operationGUID", requestStatusOperationGUID)
                    .ExecuteUpdate();

                    tempBusiness.DeleteTempList(requestStatusOperationGUID);
                }
            }
            catch (Exception ex)
            {
                LogException(ex, "BManagerFlowCondition", "DeleteSuspendRequestStatesByFlowCondition");
                throw;
            }
        }
Example #11
0
 public void GetByID_Test()
 {
     accessGroup_testObject = busAccessGroup.GetByID(ADOaccessGroup1.ID);
     Assert.AreEqual(ADOaccessGroup1.ID, accessGroup_testObject.ID);
 }