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); } }
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); } }
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"); }
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); } }
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); } }
/// <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; } }
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); } }
/// <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; } }
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; } }
public void GetByID_Test() { accessGroup_testObject = busAccessGroup.GetByID(ADOaccessGroup1.ID); Assert.AreEqual(ADOaccessGroup1.ID, accessGroup_testObject.ID); }