private void UpdateManagerFlowCondition(PrecardAccessGroup obj) { IList <PrecardAccessGroupDetailProxy> AccessGroupDetailProxy = new List <PrecardAccessGroupDetailProxy>(); PrecardAccessGroupDetail accessGroupDetailAlias = null; ManagerFlowCondition managerFlowConditionAlias = null; IList <PrecardAccessGroupDetail> precardAccessGroupDetailList = NHSession.QueryOver <PrecardAccessGroupDetail>(() => accessGroupDetailAlias) .Where(() => accessGroupDetailAlias.PrecardAccessGroup.ID == obj.ID) .List <PrecardAccessGroupDetail>(); foreach (decimal precardId in obj.AccessGroupDetailOld.Keys) { PrecardAccessGroupDetailProxy accessGroupDetailProxy = new PrecardAccessGroupDetailProxy(); accessGroupDetailProxy.PrecardAccessGroupDetailOldId = obj.AccessGroupDetailOld[precardId]; accessGroupDetailProxy.PrecardAccessGroupDetailNewId = precardAccessGroupDetailList.Where(x => x.Precard.ID == precardId).Select(x => x.ID).FirstOrDefault(); AccessGroupDetailProxy.Add(accessGroupDetailProxy); } IList <decimal> PrecardAccessGroupDetailIds = NHSession.QueryOver <ManagerFlowCondition>(() => managerFlowConditionAlias) .Where(() => managerFlowConditionAlias.PrecardAccessGroupDetail.ID.IsIn(AccessGroupDetailProxy.Select(x => x.PrecardAccessGroupDetailOldId).ToArray())) .Select(y => y.PrecardAccessGroupDetail.ID) .List <decimal>(); if (PrecardAccessGroupDetailIds.Count != 0) { AccessGroupDetailProxy = AccessGroupDetailProxy.Where(x => PrecardAccessGroupDetailIds.Contains(x.PrecardAccessGroupDetailOldId)).ToList(); foreach (PrecardAccessGroupDetailProxy accessGroupDetailProxy in AccessGroupDetailProxy) { FlowRep.UpdateManagerFlowCondition(accessGroupDetailProxy.PrecardAccessGroupDetailOldId, accessGroupDetailProxy.PrecardAccessGroupDetailNewId); } } }
public IList <ManagerFlowConditionProxy> GetAllManagerFlowConditionsByPrecardGroup(decimal flowID, decimal managerFlowID, decimal precardGroupID, Dictionary <ConditionOperators, string> conditionOperatorsDic) { try { Precard precardAlias = null; PrecardGroups precardGroupsAlias = null; PrecardAccessGroupDetail precardAccessGroupDetailAlias = null; ManagerFlow managerFlowAlias = null; ManagerFlowCondition managerFlowConditionAlias = null; IList <ManagerFlowConditionProxy> ManagerFlowConditionProxyList = new List <ManagerFlowConditionProxy>(); IList <ManagerFlowCondition> existingManagerFlowConditionsList = NHSession.QueryOver <ManagerFlowCondition>(() => managerFlowConditionAlias) .JoinAlias(() => managerFlowConditionAlias.PrecardAccessGroupDetail, () => precardAccessGroupDetailAlias) .JoinAlias(() => precardAccessGroupDetailAlias.Precard, () => precardAlias) .JoinAlias(() => precardAlias.PrecardGroup, () => precardGroupsAlias) .JoinAlias(() => managerFlowConditionAlias.ManagerFlow, () => managerFlowAlias) .Where(() => managerFlowAlias.ID == managerFlowID && precardGroupsAlias.ID == precardGroupID && precardAlias.Active ) .List <ManagerFlowCondition>(); foreach (ManagerFlowCondition managerFlowConditionItem in existingManagerFlowConditionsList) { ManagerFlowConditionProxy managerFlowConditionProxy = new ManagerFlowConditionProxy(); managerFlowConditionProxy.State = "View"; managerFlowConditionProxy.ID = managerFlowConditionItem.ID; managerFlowConditionProxy.PrecardAccessGroupDetailID = managerFlowConditionItem.PrecardAccessGroupDetail.ID; managerFlowConditionProxy.PrecardID = managerFlowConditionItem.PrecardAccessGroupDetail.Precard.ID; managerFlowConditionProxy.PrecardName = managerFlowConditionItem.PrecardAccessGroupDetail.Precard.Name; managerFlowConditionProxy.PrecardCode = managerFlowConditionItem.PrecardAccessGroupDetail.Precard.Code; managerFlowConditionProxy.EndFlow = managerFlowConditionItem.EndFlow; managerFlowConditionProxy.Access = true; managerFlowConditionProxy.OperatorKey = ((ConditionOperators)managerFlowConditionItem.Operator).ToString(); managerFlowConditionProxy.OperatorTitle = conditionOperatorsDic[(ConditionOperators)managerFlowConditionItem.Operator]; managerFlowConditionProxy.Value = managerFlowConditionItem.Value; managerFlowConditionProxy.ValueType = this.SetManagerFlowConditionValueType(managerFlowConditionItem.PrecardAccessGroupDetail.Precard); managerFlowConditionProxy.Description = managerFlowConditionItem.Description; ManagerFlowConditionProxyList.Add(managerFlowConditionProxy); } Flow flow = this.bFlow.GetByID(flowID); IList <PrecardAccessGroupDetail> precardAccessGroupDetailList = flow.AccessGroup.PrecardAccessGroupDetailList.Where(x => x.Precard.PrecardGroup.ID == precardGroupID).ToList <PrecardAccessGroupDetail>(); IList <Precard> flowPrecardGroupPrecards = precardAccessGroupDetailList.Select(x => x.Precard).Where(x => x.Active).ToList <Precard>(); foreach (Precard precardItem in flowPrecardGroupPrecards.Where(x => !ManagerFlowConditionProxyList.Select(y => y.PrecardID).ToList().Contains(x.ID))) { ManagerFlowConditionProxy managerFlowConditionProxy = new ManagerFlowConditionProxy(); managerFlowConditionProxy.State = "View"; managerFlowConditionProxy.ID = 0; managerFlowConditionProxy.PrecardAccessGroupDetailID = precardAccessGroupDetailList.Where(x => x.Precard.ID == precardItem.ID).First().ID; managerFlowConditionProxy.PrecardID = precardItem.ID; managerFlowConditionProxy.PrecardName = precardItem.Name; managerFlowConditionProxy.PrecardCode = precardItem.Code; managerFlowConditionProxy.EndFlow = false; managerFlowConditionProxy.Access = true; managerFlowConditionProxy.OperatorKey = string.Empty; managerFlowConditionProxy.OperatorTitle = string.Empty; managerFlowConditionProxy.Value = string.Empty; managerFlowConditionProxy.ValueType = this.SetManagerFlowConditionValueType(precardItem); managerFlowConditionProxy.Description = string.Empty; ManagerFlowConditionProxyList.Add(managerFlowConditionProxy); } return(ManagerFlowConditionProxyList); } catch (Exception ex) { LogException(ex, "BManagerFlowCondition", "GetAllManagerFlowConditionsByPrecardGroup"); throw; } }
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; } }