예제 #1
0
        private string SetManagerFlowConditionValueType(Precard precard)
        {
            string managerFlowConditionValueType = string.Empty;

            switch ((PrecardGroupsName)precard.PrecardGroup.IntLookupKey)
            {
            case PrecardGroupsName.leave:
            case PrecardGroupsName.leaveestelajy:
            case PrecardGroupsName.duty:
                if (precard.IsHourly)
                {
                    managerFlowConditionValueType = ManagerFlowConditionValueType.Minute.ToString();
                }
                else
                if (precard.IsDaily)
                {
                    managerFlowConditionValueType = ManagerFlowConditionValueType.Day.ToString();
                }
                break;

            case PrecardGroupsName.traffic:
            case PrecardGroupsName.overwork:
            case PrecardGroupsName.imperative:
                managerFlowConditionValueType = ManagerFlowConditionValueType.Minute.ToString();
                break;

            default:
                break;
            }
            return(managerFlowConditionValueType);
        }
예제 #2
0
        public void TestSetup()
        {
            precard_testObject = new Precard();
            bussPrecard        = new BPrecard();

            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);

            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";
            ADOPrecard1.PrecardGroup = ADOGroup;
            precardTable             = precardTA.GetDataByName("TestPish2");
            ADOPrecard2.ID           = Convert.ToDecimal(precardTable.Rows[0][0]);
            ADOPrecard2.Name         = "TestPish2";
            ADOPrecard2.Active       = true;
            ADOPrecard2.IsDaily      = true;
            ADOPrecard2.Code         = "1002";
            ADOPrecard2.PrecardGroup = ADOGroup;

            basicTA.Insert(ADOPrecard1.ID, ADOPerson1.ID, DateTime.Now, 0, false, true, false, false);

            subTA.Insert(ADOPrecard1.ID, null);
        }
예제 #3
0
        public string GetPishcardName(decimal precardId)
        {
            if (precardId < 0)
            {
                return(precardId.ToString());
            }
            Precard p = Precard.GetPrecardRepository(false).GetById(precardId, false);

            return(p.Name);
        }
예제 #4
0
        /// <summary>
        ///  پیشکارت را از دیکشنری استخراج میکند
        /// </summary>
        /// <param name="precard"></param>
        /// <returns></returns>
        public Precard GetPrecard(int precardCode)
        {
            IList <Precard> list   = Precard.GetPrecardRepository(false).GetAll();
            Precard         Result = list.Where(x => x.Code == precardCode.ToString()).FirstOrDefault();

            if (Result == null)
            {
                Result = new Precard();
            }
            return(Result);
        }
예제 #5
0
 public void Delete_Test()
 {
     try
     {
         precard_testObject.ID = ADOPrecard2.ID;
         bussPrecard.SaveChanges(precard_testObject, UIActionType.DELETE);
         ClearSession();
         precard_testObject = bussPrecard.GetByID(ADOPrecard2.ID);
         Assert.Fail();
     }
     catch (ItemNotExists ex)
     {
         Assert.Pass(ex.Message);
     }
 }
예제 #6
0
        public void GetPrecardTree_UpdateModeTest()
        {
            IList <PrecardGroups> list = busAccessGroup.GetPrecardTree(ADOaccessGroup1.ID);

            Assert.IsTrue(list.Count > 0);
            Assert.IsTrue(list.Where(x => x.ID == ADOGroup.ID).Count() > 0);
            Assert.IsTrue(list.Where(x => x.ID == ADOGroup.ID).Where(x => x.PrecardList.Contains(ADOPrecard1)).Count() > 0);
            PrecardGroups group = list.Where(x => x.ID == ADOGroup.ID).First();

            Assert.IsTrue(group.ContainInPrecardAccessGroup);
            Precard p = group.PrecardList.Where(x => x.ID == ADOPrecard2.ID && x.ContainInPrecardAccessGroup).FirstOrDefault();

            Assert.IsNotNull(p);
            Assert.AreEqual(ADOPrecard2.ID, p.ID);
        }
예제 #7
0
        private void Fill_trvPrecardAccessLevels_PreCard(decimal PrecardID)
        {
            string[] retMessage = new string[4];
            try
            {
                this.InitializeCulture();

                Precard      precard      = this.PrecardBusiness.GetByID(PrecardID);
                IList <Role> rolesList    = this.RoleBusiness.GetAll();
                Role         rootRole     = this.RoleBusiness.GetRoleTree();
                TreeViewNode rootRoleNode = new TreeViewNode();
                rootRoleNode.ID = rootRole.ID.ToString();
                string rootRoleNodeText = string.Empty;
                if (GetLocalResourceObject("RolesNode_trvPrecardAccessLevels_PreCard") != null)
                {
                    rootRoleNodeText = GetLocalResourceObject("RolesNode_trvPrecardAccessLevels_PreCard").ToString();
                }
                else
                {
                    rootRoleNodeText = rootRole.Name;
                }
                rootRoleNode.Text  = rootRoleNodeText;
                rootRoleNode.Value = rootRole.CustomCode;
                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + PathHelper.GetModulePath_Nuke() + "Images\\TreeView\\folder.gif"))
                {
                    rootRoleNode.ImageUrl = PathHelper.GetModuleUrl_Nuke() + "Images/TreeView/folder.gif";
                }
                this.trvPrecardAccessLevels_PreCard.Nodes.Add(rootRoleNode);
                rootRoleNode.Expanded = true;

                this.GetChildPrecardAccessLevels_trvPrecardAccessLevels_PreCard(rolesList, rootRoleNode, precard, rootRole);
            }
            catch (UIValidationExceptions ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
                this.ErrorHiddenField_PrecardAccessLevels.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
            catch (UIBaseException ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
                this.ErrorHiddenField_PrecardAccessLevels.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
            catch (Exception ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
                this.ErrorHiddenField_PrecardAccessLevels.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
        }
예제 #8
0
 public void Insert_Test()
 {
     try
     {
         precard_testObject.Code         = "1003";
         precard_testObject.Name         = "TestPrecard3";
         precard_testObject.IsDaily      = true;
         precard_testObject.PrecardGroup = new PrecardGroups()
         {
             ID = ADOGroup.ID
         };
         bussPrecard.SaveChanges(precard_testObject, UIActionType.ADD);
         ClearSession();
         precard_testObject = bussPrecard.GetByID(precard_testObject.ID);
         Assert.AreEqual(precard_testObject.Name, "TestPrecard3");
     }
     catch (Exception ex)
     {
         Assert.Fail(ex.Message);
     }
 }
예제 #9
0
        public EngineEnvironment()
        {
            this.ConceptList = new Dictionary <decimal, SecondaryConcept>();
            foreach (SecondaryConcept ScndCnp in SecondaryConcept.GetRepository(false).GetAll())
            {
                this.ConceptList.Add(ScndCnp.IdentifierCode, ScndCnp);
            }
            this.PrecardDic = new Dictionary <string, Precard>();
            IList <Precard> list = Precard.GetPrecardRepository(false).GetAll();

            foreach (int precardCode in Enum.GetValues(typeof(Precards)))
            {
                Precard p = list.Where(x => x.Code == precardCode.ToString()).FirstOrDefault();
                if (p != null)
                {
                    this.PrecardDic.Add(Enum.Parse(typeof(Precards), precardCode.ToString()).ToString(), p);
                }
                //else
                //{
                //    throw new InvalidDatabaseStateException(UIFatalExceptionIdentifiers.ExpectedPrecardDoesNotExists, String.Format("پیشکارت با کد {0} در پایگاه داد یافت نشد", precardCode.ToString()), "GTS.Clock.Business.Engine");
                //}
            }
            this.CalendarList = Calendar.GetRepository(false).GetAll();
        }
예제 #10
0
        public string[] UpdateRequest_RequestOnTrafficPage(string requestCaller, string requestLoadState, string state, string SelectedRequestID, string PreCardID, string RequestDate, string RequestFromTime, string RequestToTime, string IsRequestToTimeInNextDay, string RequestDescription)
        {
            this.InitializeCulture();

            string[] retMessage = new string[6];
            try
            {
                decimal RequestID         = 0;
                decimal selectedRequestID = decimal.Parse(this.StringBuilder.CreateString(SelectedRequestID));
                Request request           = new Request();
                request.ID = selectedRequestID;
                UIActionType     uam = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
                RequestCaller    RC  = (RequestCaller)Enum.Parse(typeof(RequestCaller), this.StringBuilder.CreateString(requestCaller));
                RequestLoadState RLS = (RequestLoadState)Enum.Parse(typeof(RequestLoadState), this.StringBuilder.CreateString(requestLoadState));

                switch (uam)
                {
                case UIActionType.ADD:

                    decimal preCardID = decimal.Parse(this.StringBuilder.CreateString(PreCardID));
                    RequestFromTime = this.StringBuilder.CreateString(RequestFromTime);
                    RequestToTime   = this.StringBuilder.CreateString(RequestToTime);
                    bool isRequestToTimeInNextDay = bool.Parse(this.StringBuilder.CreateString(IsRequestToTimeInNextDay));
                    RequestDescription = this.StringBuilder.CreateString(RequestDescription);

                    request.TheFromDate = request.TheToDate = this.StringBuilder.CreateString(RequestDate);
                    Precard precard = new Precard();
                    precard.ID      = preCardID;
                    request.Precard = precard;
                    if (RequestFromTime != string.Empty)
                    {
                        request.TheFromTime = RequestFromTime;
                    }
                    if (RequestToTime != string.Empty)
                    {
                        request.TheToTime = RequestToTime;
                    }
                    request.ContinueOnTomorrow = isRequestToTimeInNextDay;
                    request.Description        = RequestDescription;

                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertTrafficRequest_onPersonnelLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertTrafficRequest_onManagerLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertTrafficRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertTrafficRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    RequestID = request.ID;
                    break;

                case UIActionType.DELETE:
                    if (selectedRequestID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoRequestSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            this.RequestBusiness.DeleteTrafficRequest_onPersonnelLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteTrafficRequest_onManagerLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            this.RequestBusiness.DeleteTrafficRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteTrafficRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    break;
                }

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

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

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = RequestID.ToString();
                retMessage[4] = ((int)request.Status).ToString();
                retMessage[5] = request.RegistrationDate;
                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);
            }
        }
예제 #11
0
 private void GetChildPrecardAccessLevels_trvPrecardAccessLevels_PreCard(IList <Role> rolesList, TreeViewNode parentRoleNode, Precard precard, Role parentRole)
 {
     foreach (Role childRole in this.RoleBusiness.GetRoleChilds(parentRole.ID, rolesList))
     {
         TreeViewNode childRoleNode = new TreeViewNode();
         childRoleNode.ID           = childRole.ID.ToString();
         childRoleNode.Text         = childRole.Name;
         childRoleNode.Value        = childRole.CustomCode;
         childRoleNode.ShowCheckBox = true;
         if (precard.AccessRoleList.Where(role => role.ID == childRole.ID).Count() > 0)
         {
             childRoleNode.Checked = true;
         }
         if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + PathHelper.GetModulePath_Nuke() + "\\Images\\TreeView\\folder.gif"))
         {
             childRoleNode.ImageUrl = PathHelper.GetModuleUrl_Nuke() + "Images/TreeView/folder.gif";
         }
         parentRoleNode.Nodes.Add(childRoleNode);
         try
         {
             if (parentRoleNode.Parent.Parent == null)
             {
                 parentRoleNode.Expanded = true;
             }
         }
         catch
         { }
         if (this.RoleBusiness.GetRoleChilds(childRole.ID, rolesList).Count > 0)
         {
             this.GetChildPrecardAccessLevels_trvPrecardAccessLevels_PreCard(rolesList, childRoleNode, precard, childRole);
         }
     }
 }
예제 #12
0
        public string[] UpdatePreCard_PreCardPage(string state, string SelectedPreCardID, string IsActive, string PreCardCode, string PreCardOrder, string PreCardName, string PreCardTypeID, string IsDaily, string IsHourly, string IsMonthly, string IsJustification)
        {
            this.InitializeCulture();

            string[] retMessage = new string[4];

            try
            {
                AttackDefender.CSRFDefender(this.Page);
                decimal PreCardID         = 0;
                decimal selectedPreCardID = decimal.Parse(this.StringBuilder.CreateString(SelectedPreCardID), CultureInfo.InvariantCulture);
                bool    isActive          = bool.Parse(this.StringBuilder.CreateString(IsActive));
                PreCardCode  = this.StringBuilder.CreateString(PreCardCode);
                PreCardOrder = this.StringBuilder.CreateString(PreCardOrder);
                PreCardName  = this.StringBuilder.CreateString(PreCardName);
                decimal      preCardTypeID   = decimal.Parse(this.StringBuilder.CreateString(PreCardTypeID), CultureInfo.InvariantCulture);
                bool         isDaily         = bool.Parse(this.StringBuilder.CreateString(IsDaily));
                bool         isHourly        = bool.Parse(this.StringBuilder.CreateString(IsHourly));
                bool         isMonthly       = bool.Parse(this.StringBuilder.CreateString(IsMonthly));
                bool         isJustification = bool.Parse(this.StringBuilder.CreateString(IsJustification));
                UIActionType uam             = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());

                Precard precard = new Precard();
                precard.ID = selectedPreCardID;
                if (uam != UIActionType.DELETE)
                {
                    precard.Active = isActive;
                    precard.Code   = PreCardCode;
                    precard.Order  = PreCardOrder;
                    precard.Name   = PreCardName;
                    PrecardGroups precardType = new PrecardGroups();
                    precardType.ID       = preCardTypeID;
                    precard.PrecardGroup = precardType;
                    precard.IsDaily      = isDaily;
                    precard.IsHourly     = isHourly;
                    precard.IsMonthly    = isMonthly;
                    precard.IsPermit     = isJustification;
                }

                switch (uam)
                {
                case UIActionType.ADD:
                    PreCardID = this.PrecardBusiness.InsertPrecard(precard, uam);
                    break;

                case UIActionType.EDIT:
                    if (selectedPreCardID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoPreCardSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }
                    PreCardID = this.PrecardBusiness.UpdatePrecard(precard, uam);
                    break;

                case UIActionType.DELETE:
                    if (selectedPreCardID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoPreCardSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    PreCardID = this.PrecardBusiness.DeletePrecard(precard, uam);
                    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] = PreCardID.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);
            }
        }
        public string[] UpdateRequest_DailyRequestOnAbsencePage(string requestCaller, string requestLoadState, string state, string SelectedRequestID, string RequestType, string PreCardID, string RequestDate, string RequestFromDate, string RequestToDate, string RequestDescription, string IsSeakLeave, string PhysicianID, string IllnessID, string MissionLocationID, string RequestAttachmentFile)
        {
            this.InitializeCulture();

            string[] retMessage = new string[7];

            try
            {
                decimal RequestID         = 0;
                decimal selectedRequestID = decimal.Parse(this.StringBuilder.CreateString(SelectedRequestID));
                Request request           = new Request();
                request.ID = selectedRequestID;
                UIActionType     uam = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
                RequestCaller    RC  = (RequestCaller)Enum.Parse(typeof(RequestCaller), this.StringBuilder.CreateString(requestCaller));
                RequestLoadState RLS = (RequestLoadState)Enum.Parse(typeof(RequestLoadState), this.StringBuilder.CreateString(requestLoadState));

                switch (uam)
                {
                case UIActionType.ADD:
                    RequestTypes requestType = (RequestTypes)Enum.Parse(typeof(RequestTypes), this.StringBuilder.CreateString(RequestType));
                    decimal      preCardID   = decimal.Parse(this.StringBuilder.CreateString(PreCardID));
                    RequestFromDate    = this.StringBuilder.CreateString(RequestFromDate);
                    RequestToDate      = this.StringBuilder.CreateString(RequestToDate);
                    RequestDescription = this.StringBuilder.CreateString(RequestDescription);
                    bool    isSeakLeave       = bool.Parse(this.StringBuilder.CreateString(IsSeakLeave));
                    decimal physicianID       = decimal.Parse(this.StringBuilder.CreateString(PhysicianID));
                    decimal illnessID         = decimal.Parse(this.StringBuilder.CreateString(IllnessID));
                    decimal missionLocationID = decimal.Parse(this.StringBuilder.CreateString(MissionLocationID));
                    RequestAttachmentFile = this.StringBuilder.CreateString(RequestAttachmentFile);

                    request.RegisterDate = Utility.ToMildiDateTime(this.StringBuilder.CreateString(RequestDate));
                    Precard precard = new Precard();
                    precard.ID              = preCardID;
                    request.Precard         = precard;
                    request.TheFromDate     = RequestFromDate;
                    request.TheToDate       = RequestToDate;
                    request.IsDateSetByUser = true;
                    request.Description     = RequestDescription;
                    request.AttachmentFile  = RequestAttachmentFile;
                    switch (requestType)
                    {
                    case RequestTypes.Leave:
                        if (isSeakLeave)
                        {
                            if (physicianID != -1)
                            {
                                request.DoctorID = physicianID;
                            }
                            if (illnessID != -1)
                            {
                                request.IllnessID = illnessID;
                            }
                        }
                        break;

                    case RequestTypes.Mission:
                        if (missionLocationID != -1)
                        {
                            request.DutyPositionID = missionLocationID;
                        }
                        break;

                    default:
                        break;
                    }

                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertDailyRequest_onPersonnelLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertDailyRequest_onManagerLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertDailyRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertDailyRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    RequestID = request.ID;
                    break;

                case UIActionType.DELETE:
                    if (selectedRequestID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoRequestSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.MasterRequestBusiness.GetRequestByID(request.ID);
                            this.RequestBusiness.DeleteDailyRequest_onPersonnelLoadStateInGridSchema(request);
                            this.MasterRequestBusiness.DeleteRequestAttachment(WebConfigurationManager.AppSettings["RequestAttachmentsPath"] + "\\" + request.AttachmentFile);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteDailyRequest_onManagerLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.MasterRequestBusiness.GetRequestByID(request.ID);
                            this.RequestBusiness.DeleteDailyRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            this.MasterRequestBusiness.DeleteRequestAttachment(WebConfigurationManager.AppSettings["RequestAttachmentsPath"] + "\\" + request.AttachmentFile);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteDailyRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    break;
                }

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

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

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = RequestID.ToString();
                retMessage[4] = ((int)request.Status).ToString();
                retMessage[5] = request.RegistrationDate;
                retMessage[6] = request.AddClientSide.ToString().ToLower();
                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);
            }
        }
        public string[] UpdateRequest_OvertimeJustificationRequestPage(string requestCaller, string requestLoadState, string state, string SelectedRequestID, string PreCardID, string RequestDate, string RequestFromDate, string RequestToDate, string RequestFromTime, string RequestToTime, string IsRequestToTimeInNextDay, string IsRequestFromAndToTimeInNextDay, string RequestDuration, string RequestDescription, string PersonnelID, string IsWarning)
        {
            this.InitializeCulture();

            string[] retMessage = new string[7];

            try
            {
                AttackDefender.CSRFDefender(this.Page);
                decimal RequestID         = 0;
                decimal selectedRequestID = decimal.Parse(this.StringBuilder.CreateString(SelectedRequestID), CultureInfo.InvariantCulture);
                Request request           = new Request();
                request.ID = selectedRequestID;
                UIActionType     uam         = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
                RequestCaller    RC          = (RequestCaller)Enum.Parse(typeof(RequestCaller), this.StringBuilder.CreateString(requestCaller));
                RequestLoadState RLS         = (RequestLoadState)Enum.Parse(typeof(RequestLoadState), this.StringBuilder.CreateString(requestLoadState));
                decimal          personnelID = decimal.Parse(this.StringBuilder.CreateString(PersonnelID), CultureInfo.InvariantCulture);
                bool             isWarning   = bool.Parse(this.StringBuilder.CreateString(IsWarning));

                switch (uam)
                {
                case UIActionType.ADD:
                    decimal preCardID = decimal.Parse(this.StringBuilder.CreateString(PreCardID), CultureInfo.InvariantCulture);
                    RequestFromDate = this.StringBuilder.CreateString(RequestFromDate);
                    RequestToDate   = this.StringBuilder.CreateString(RequestToDate);
                    RequestFromTime = this.StringBuilder.CreateString(RequestFromTime);
                    RequestToTime   = this.StringBuilder.CreateString(RequestToTime);
                    RequestDuration = this.StringBuilder.CreateString(RequestDuration);
                    bool isRequestToTimeInNextDay        = bool.Parse(this.StringBuilder.CreateString(IsRequestToTimeInNextDay));
                    bool isRequestFromAndToTimeInNextDay = bool.Parse(this.StringBuilder.CreateString(IsRequestFromAndToTimeInNextDay));
                    RequestDescription = this.StringBuilder.CreateString(RequestDescription);

                    Precard precard = new Precard();
                    precard.ID                 = preCardID;
                    request.Precard            = precard;
                    request.TheFromDate        = RequestFromDate;
                    request.TheToDate          = RequestToDate;
                    request.IsDateSetByUser    = true;
                    request.TheFromTime        = RequestFromTime;
                    request.TheToTime          = RequestToTime;
                    request.TheTimeDuration    = !isRequestToTimeInNextDay ? RequestDuration : string.Empty;
                    request.ContinueOnTomorrow = isRequestToTimeInNextDay;
                    if (!isRequestToTimeInNextDay)
                    {
                        request.AllOnTomorrow = isRequestFromAndToTimeInNextDay;
                    }
                    request.Description = RequestDescription;
                    request.IsExecuteWarningUIValidation = isWarning;

                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertOverTimeRequest_onPersonnelLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertOverTimeRequest_onManagerLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Operator:
                            request.Person = new Model.Person()
                            {
                                ID = personnelID
                            };
                            request = this.RequestBusiness.InsertOverTimeRequest_onOperatorLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            request = this.RequestBusiness.InsertOverTimeRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            request = this.RequestBusiness.InsertOverTimeRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Operator:
                            request.Person = new Model.Person()
                            {
                                ID = personnelID
                            };
                            request = this.RequestBusiness.InsertOverTimeRequest_onOperatorLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    RequestID = request.ID;
                    break;

                case UIActionType.DELETE:
                    if (selectedRequestID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoRequestSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    switch (RC)
                    {
                    case RequestCaller.Grid:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            this.RequestBusiness.DeleteOverTimeRequest_onPersonnelLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteOverTimeRequest_onManagerLoadStateInGridSchema(request);
                            break;

                        case RequestLoadState.Operator:
                            this.RequestBusiness.DeleteOverTimeRequest_onOperatorLoadStateInGridSchema(request);
                            break;
                        }
                        break;

                    case RequestCaller.GanttChart:
                        switch (RLS)
                        {
                        case RequestLoadState.Personnel:
                            this.RequestBusiness.DeleteOverTimeRequest_onPersonnelLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Manager:
                            this.RequestBusiness.DeleteOverTimeRequest_onManagerLoadStateInGanttChartSchema(request);
                            break;

                        case RequestLoadState.Operator:
                            this.RequestBusiness.DeleteOverTimeRequest_onOperatorLoadStateInGanttChartSchema(request);
                            break;
                        }
                        break;
                    }
                    break;
                }

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

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

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = RequestID.ToString();
                retMessage[4] = ((int)request.Status).ToString();
                retMessage[5] = request.RegistrationDate;
                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);
            }
        }
예제 #15
0
 public void GetByID_Test()
 {
     precard_testObject = bussPrecard.GetByID(ADOPrecard1.ID);
     Assert.AreEqual(precard_testObject.Name, ADOPrecard1.Name);
 }
예제 #16
0
        public void InsertRequestSubstitute(Request request)
        {
            try
            {
                RequestSubstitute            requestSubstitute                     = null;
                Person                       person                                = null;
                Precard                      precardAlias                          = null;
                UIValidationGroup            uiValidationGroupAlias                = null;
                UIValidationRule             uiValidationRuleAlias                 = null;
                UIValidationRuleGroup        uiValidationRuleGroupAlias            = null;
                UIValidationRuleGroupPrecard uiValidationRuleGroupPrecardAlias     = null;
                const string                 requestSubstituteUIValidationRuleCode = "33";
                BPerson                      bPerson                               = new BPerson();
                BUIValidationGroup           bUIValidationGroup                    = new BUIValidationGroup();
                UIValidationRuleGroup        RuleGroup                             = new UIValidationRuleGroup();
                JavaScriptSerializer         JsSerializer                          = new JavaScriptSerializer();
                NHibernate.IQueryOver <UIValidationRuleGroup, UIValidationRuleGroup> uiValidationRuleGroup = null;

                if (request != null && request.Person != null && request.Person.ID != 0)
                {
                    person = NHSession.QueryOver <Person>()
                             .Where(x => x.ID == request.Person.ID)
                             .SingleOrDefault();
                    if (person != null && person.PersonTASpec != null && person.PersonTASpec.UIValidationGroup != null)
                    {
                        uiValidationRuleGroup = this.NHSession.QueryOver <UIValidationRuleGroup>(() => uiValidationRuleGroupAlias)
                                                .JoinAlias(() => uiValidationRuleGroupAlias.ValidationGroup, () => uiValidationGroupAlias)
                                                .JoinAlias(() => uiValidationRuleGroupAlias.ValidationRule, () => uiValidationRuleAlias)
                                                .JoinAlias(() => uiValidationRuleGroupAlias.PrecardList, () => uiValidationRuleGroupPrecardAlias)
                                                .JoinAlias(() => uiValidationRuleGroupPrecardAlias.Precard, () => precardAlias)
                                                .Where(() => uiValidationGroupAlias.ID == person.PersonTASpec.UIValidationGroup.ID &&
                                                       uiValidationRuleGroupAlias.Active &&
                                                       uiValidationRuleAlias.ExistTag &&
                                                       uiValidationRuleAlias.CustomCode == requestSubstituteUIValidationRuleCode &&
                                                       uiValidationRuleGroupPrecardAlias.Active &&
                                                       precardAlias.ID == request.Precard.ID
                                                       );

                        if (request.Person.ID != request.User.Person.ID)
                        {
                            RuleGroup = uiValidationRuleGroup.Where(x => uiValidationRuleGroupPrecardAlias.Operator).SingleOrDefault();
                        }
                        else
                        {
                            RuleGroup = uiValidationRuleGroup.SingleOrDefault();
                        }
                        if (RuleGroup != null && RuleGroup.Tag != null && RuleGroup.Tag != string.Empty)
                        {
                            R33_UiValidationRuleTagValueProxy r33_UiValidationRuleTagValueProxy = JsSerializer.Deserialize <R33_UiValidationRuleTagValueProxy>(RuleGroup.Tag);
                            if (r33_UiValidationRuleTagValueProxy.IsForceConfirmByRequestSubstitute)
                            {
                                requestSubstitute                  = new RequestSubstitute();
                                requestSubstitute.Request          = request;
                                requestSubstitute.SubstitutePerson = request.SubstitutePerson;
                                requestSubstitute.OperationDate    = DateTime.Now;
                                this.SaveChanges(requestSubstitute, UIActionType.ADD);
                            }
                        }
                    }
                    NHSession.Evict(person);
                }
            }
            catch (Exception ex)
            {
                BaseBusiness <RequestSubstitute> .LogException(ex, "BRequestSubstitute", "InsertRequestSubstitute");

                throw ex;
            }
        }
예제 #17
0
        private bool CheckRequestValueAppliedFlowConditionValue(ManagerFlowCondition managerFlowCondition, Request request)
        {
            bool isAppliedFlowConditionValue = false;

            if (managerFlowCondition != null)
            {
                ConditionOperators conditionOperator = (ConditionOperators)managerFlowCondition.Operator;
                Precard            precard           = managerFlowCondition.PrecardAccessGroupDetail.Precard;
                PrecardGroupsName  precardGroupsName = (PrecardGroupsName)managerFlowCondition.PrecardAccessGroupDetail.Precard.PrecardGroup.IntLookupKey;
                int requestValue = 0;
                switch (precardGroupsName)
                {
                case PrecardGroupsName.leave:
                case PrecardGroupsName.leaveestelajy:
                case PrecardGroupsName.duty:
                    if (precard.IsHourly)
                    {
                        requestValue = request.TimeDuration;
                    }
                    else
                    if (precard.IsDaily)
                    {
                        requestValue = (int)(request.ToDate - request.FromDate).TotalDays + 1;
                    }
                    if (this.CheckRequestValueIsInRangeConditionValue(conditionOperator, managerFlowCondition.Value, requestValue))
                    {
                        isAppliedFlowConditionValue = true;
                    }
                    break;

                case PrecardGroupsName.overwork:
                    requestValue = ((int)(request.ToDate - request.FromDate).TotalDays + 1) * request.TimeDuration;
                    if (this.CheckRequestValueIsInRangeConditionValue(conditionOperator, managerFlowCondition.Value, requestValue))
                    {
                        isAppliedFlowConditionValue = true;
                    }
                    break;

                case PrecardGroupsName.traffic:
                    if (request.FromTime != -1000 && request.ToTime != 1000 && request.TimeDuration != 1000)
                    {
                        if (this.CheckRequestValueIsInRangeConditionValue(conditionOperator, managerFlowCondition.Value, request.TimeDuration))
                        {
                            isAppliedFlowConditionValue = true;
                        }
                    }
                    break;

                case PrecardGroupsName.imperative:
                    if (this.CheckRequestValueIsInRangeConditionValue(conditionOperator, managerFlowCondition.Value, request.TimeDuration))
                    {
                        isAppliedFlowConditionValue = true;
                    }
                    break;

                default:
                    break;
                }
            }
            return(isAppliedFlowConditionValue);
        }
예제 #18
0
        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;
            }
        }