Esempio n. 1
0
        /// <summary>
        /// رینج تاریخ پارامتر را بهمراه پارامتر دخیره میکند
        /// اگر تعداد پارامتر ارسالی کمتر از تعداد غالب بود آنگاه پارامترهای پیشفرض ذخیره میگردد
        /// بدلیل انجام عملیات جانبی تباید کلاینت مستقیما از متد
        /// SaveChnages استفاده کند
        /// </summary>
        /// <param name="parameters">پارامترهای مقداردهی شده از طرف کلاینت</param>
        /// <param name="fromDate">تاریخ شروع رینج</param>
        /// <param name="toDate">تاریخ پایان رینج</param>
        /// <returns>شناسه رینج پارامتر</returns>
        public decimal InsertParameter(IList <RuleTemplateParameter> parameters, DateTime fromDate, DateTime toDate)
        {
            try
            {
                AssignRuleParameter assign = new AssignRuleParameter();
                assign.FromDate          = fromDate;
                assign.ToDate            = toDate;
                assign.Rule              = workingRule;
                assign.RuleParameterList = new List <RuleParameter>();

                IList <RuleTemplateParameter> orginList = this.GetTemplateParameters();
                foreach (RuleTemplateParameter param in orginList)
                {
                    if (parameters.Where(x => x.ID == param.ID).Count() > 0)
                    {
                        RuleTemplateParameter p = parameters.Where(x => x.ID == param.ID).First();
                        if (p.Type == RuleParamType.Time && p.ContinueOnTomorrow)
                        {
                            p.Value = Utility.ToString(Utility.ToInteger(p.Value) + 1440);
                        }
                        assign.RuleParameterList.Add(new RuleParameter()
                        {
                            Name = p.Name, Title = p.Title, Type = p.Type, Value = p.Value, AssignRuleParameter = assign
                        });
                    }
                    else
                    {
                        assign.RuleParameterList.Add(new RuleParameter()
                        {
                            Name = param.Name, Title = param.Title, Type = param.Type, Value = param.Value, AssignRuleParameter = assign
                        });
                    }
                }
                base.SaveChanges(assign, UIActionType.ADD);

                return(assign.ID);
            }
            catch (Exception ex)
            {
                LogException(ex, "BRuleParameter", "InsertParameter");
                throw ex;
            }
        }
Esempio n. 2
0
    private object GetParametersList_RuleParameters(UIActionType uam, string strParametersList)
    {
        object ParametersList = null;

        switch (uam)
        {
        case UIActionType.ADD:
            ParametersList = new List <RuleTemplateParameter>();
            break;

        case UIActionType.EDIT:
            ParametersList = new List <RuleParameter>();
            break;
        }
        if (strParametersList != string.Empty)
        {
            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            object[]             ParamsBatchs = (object[])jsSerializer.DeserializeObject(strParametersList);
            foreach (object paramBatch in ParamsBatchs)
            {
                Dictionary <string, object> paramDic    = (Dictionary <string, object>)paramBatch;
                decimal       ParameterID               = decimal.Parse(paramDic["ID"].ToString());
                string        ParameterName             = paramDic["Name"].ToString();
                string        ParameterTitle            = paramDic["Title"].ToString();
                RuleParamType ParameterType             = (RuleParamType)Enum.ToObject(typeof(RuleParamType), int.Parse(paramDic["Type"].ToString()));
                bool          IsParameterValueInNextDay = false;
                string        ParameterValue            = string.Empty;

                switch (ParameterType)
                {
                case RuleParamType.Date:
                    ParameterValue = this.LangProv.GetSysDateTime(paramDic["Value"].ToString()).ToShortDateString();
                    break;

                case RuleParamType.Time:
                    string TimeValue = string.Empty;
                    if (paramDic["Value"].ToString().Contains("+"))
                    {
                        TimeValue = paramDic["Value"].ToString().Replace("+", string.Empty);
                        IsParameterValueInNextDay = true;
                    }
                    else
                    {
                        TimeValue = paramDic["Value"].ToString();
                    }
                    ParameterValue = this.CreateTimeString_RuleParameters(TimeValue, RuleParametersTimeState.Set);
                    break;

                default:
                    ParameterValue = paramDic["Value"].ToString();
                    break;
                }

                switch (uam)
                {
                case UIActionType.ADD:
                    RuleTemplateParameter ruleTemplateParameter = new RuleTemplateParameter();
                    ruleTemplateParameter.ID    = ParameterID;
                    ruleTemplateParameter.Name  = ParameterName;
                    ruleTemplateParameter.Title = ParameterTitle;
                    ruleTemplateParameter.Type  = ParameterType;
                    ruleTemplateParameter.Value = ParameterValue;
                    ruleTemplateParameter.ContinueOnTomorrow = IsParameterValueInNextDay;
                    ((List <RuleTemplateParameter>)ParametersList).Add(ruleTemplateParameter);
                    break;

                case UIActionType.EDIT:
                    RuleParameter ruleParameter = new RuleParameter();
                    ruleParameter.ID    = ParameterID;
                    ruleParameter.Name  = ParameterName;
                    ruleParameter.Title = ParameterTitle;
                    ruleParameter.Type  = ParameterType;
                    ruleParameter.Value = ParameterValue;
                    ruleParameter.ContinueOnTomorrow = IsParameterValueInNextDay;
                    ((List <RuleParameter>)ParametersList).Add(ruleParameter);
                    break;
                }
            }
        }
        return(ParametersList);
    }
Esempio n. 3
0
        public string[] UpdateRuleGenerator_RuleGeneratorPage(
            string state,
            string ID,
            string VariablesObject,
            string ParameterObject,
            string RuleStateObject,
            string CSharpCode,
            //string RuleObject,
            string PersionScript,
            string RuleTemplateID,
            string DesignedRuleID)
        {
            this.InitializeCulture();
            string[] retMessage = new string[4];
            try
            {
                AttackDefender.CSRFDefender(this.Page);
                decimal RuleGeneratorID = 0;
                //decimal iID = Convert.ToDecimal(this.StringBuilder.CreateString(ID));
                decimal designedRuleID = Convert.ToDecimal(DesignedRuleID);
                VariablesObject = this.StringBuilder.CreateString(VariablesObject, StringGeneratorExceptionType.ConceptRuleManagement);
                ParameterObject = this.StringBuilder.CreateString(ParameterObject, StringGeneratorExceptionType.ConceptRuleManagement);
                RuleStateObject = this.StringBuilder.CreateString(RuleStateObject, StringGeneratorExceptionType.ConceptRuleManagement);
                CSharpCode      = this.StringBuilder.CreateString(CSharpCode, StringGeneratorExceptionType.ConceptRuleManagement);
                PersionScript   = this.StringBuilder.CreateString(PersionScript, StringGeneratorExceptionType.ConceptRuleManagement);
                BDesignedRules bDesignedRule  = new BDesignedRules();
                bool           CheckPageState = bDesignedRule.CheckToExistRuleCSharpCode(Convert.ToDecimal(RuleTemplateID));
                UIActionType   uam            = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
                if (CheckPageState)
                {
                    uam = (UIActionType)Enum.Parse(typeof(UIActionType), "EDIT");
                }
                else
                {
                    uam = (UIActionType)Enum.Parse(typeof(UIActionType), "ADD");
                }
                DesignedRule designedrule = new DesignedRule();

                List <RuleGeneratorRuleParameterProxy> ParameterList = GetListOfParameterObject(ParameterObject);
                if (uam != UIActionType.DELETE)
                {
                    designedrule.VariablesObject = VariablesObject;
                    designedrule.ParameterObject = ParameterObject;
                    designedrule.RuleStateObject = RuleStateObject;
                    designedrule.CSharpCode      = CSharpCode;
                    designedrule.PersionScript   = PersionScript;
                    List <RuleTemplateParameter> ruleTemplateParameterList = new List <RuleTemplateParameter>();
                    designedrule.RuleTemplate = new RuleTemplate {
                        ID = Convert.ToInt32(RuleTemplateID)
                    };
                    foreach (RuleGeneratorRuleParameterProxy item in ParameterList)
                    {
                        RuleTemplateParameter ruleTemplateParameter = new RuleTemplateParameter();
                        ruleTemplateParameter.Name           = item.Parametername;
                        ruleTemplateParameter.RuleTemplateId = Convert.ToInt32(RuleTemplateID);
                        ruleTemplateParameter.Title          = item.Parametername;
                        switch (Convert.ToInt32(item.Parametertype))
                        {
                        case 0:
                            ruleTemplateParameter.Type = RuleParamType.Numeric;
                            break;

                        case 1:
                            ruleTemplateParameter.Type = RuleParamType.Time;
                            break;

                        case 2:
                            ruleTemplateParameter.Type = RuleParamType.Date;
                            break;
                        }
                        ruleTemplateParameterList.Add(ruleTemplateParameter);
                    }
                    designedrule.RuleTemplateParameterList = ruleTemplateParameterList;
                    designedrule.RuleRgisterDate           = DateTime.Now;
                }

                switch (uam)
                {
                case UIActionType.ADD:
                    designedrule.RuleEstate = (int)UIActionType.ADD;
                    RuleGeneratorID         = this.DesignedRuleBusiness.InsertDesignedRule(designedrule, uam);

                    break;

                case UIActionType.EDIT:
                    designedrule.RuleEstate = (int)UIActionType.EDIT;
                    designedrule.ID         = designedRuleID;
                    RuleGeneratorID         = this.DesignedRuleBusiness.UpdateDesignedRule(designedrule, uam);
                    break;

                case UIActionType.DELETE:
                    //if (selectedRuleGeneratorID == 0)
                    //{
                    //    retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoRuleforEdit").ToString()), retMessage);
                    //    return retMessage;
                    //}
                    RuleGeneratorID = this.DesignedRuleBusiness.InsertDesignedRule(designedrule, 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] = RuleGeneratorID.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);
            }
        }
Esempio n. 4
0
        public string[] UpdateRuleParameter_RulesPage(
            string ID,
            string RuleID,
            string Title,
            string Name,
            string TypeId,
            string PageState)
        {
            this.InitializeCulture();
            string[] retMessage = new string[4];

            try
            {
                decimal RuleParameterId = 0;

                decimal SelectedRuleParameterId     = decimal.Parse(this.StringBuilder.CreateString(ID), CultureInfo.InvariantCulture);
                decimal SelectedRuleId              = decimal.Parse(this.StringBuilder.CreateString(RuleID), CultureInfo.InvariantCulture);
                decimal SelectedRuleParameterTypeId = decimal.Parse(this.StringBuilder.CreateString(TypeId), CultureInfo.InvariantCulture);

                Title = this.StringBuilder.CreateString(Title);
                Name  = this.StringBuilder.CreateString(Name);
                UIActionType uam = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(PageState).ToUpper());

                //RuleTemplate rt = new BRuleTemp().GetByID(SelectedRuleId);
                RuleTemplateParameter RuleParameter = new RuleTemplateParameter();
                RuleParameter.ID             = SelectedRuleParameterId;
                RuleParameter.RuleTemplateId = SelectedRuleId;
                RuleParameter.Type           = (RuleParamType)SelectedRuleParameterTypeId;
                //rt.RuleParameterList.Add(RuleParameter);
                //new BRuleTemp().SaveChanges(rt, UIActionType.EDIT);

                if (PageState != "Delete")
                {
                    RuleParameter.Title = Title;
                    RuleParameter.Name  = Name;
                }

                switch (uam)
                {
                case UIActionType.ADD:
                    RuleParameterId = this.RuleParameterTemp.InsertRuleTempParam(RuleParameter);
                    break;

                case UIActionType.EDIT:
                    if (SelectedRuleParameterId == 0)
                    {
                        retMessage = this.ExceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoShiftPairSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }
                    RuleParameterId = this.RuleParameterTemp.UpdateRuleTempParam(RuleParameter);
                    break;

                case UIActionType.DELETE:
                    if (SelectedRuleParameterId == 0)
                    {
                        retMessage = this.ExceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoShiftPairSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    RuleParameterId = this.RuleParameterTemp.DeleteRuleTempParam(RuleParameter);
                    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] = RuleParameterId.ToString(CultureInfo.InvariantCulture);
                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);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// رینج تاریخ پارامتر را بهمراه پارامتر دخیره میکند
        /// اگر تعداد پارامتر ارسالی کمتر از تعداد غالب بود آنگاه پارامترهای پیشفرض ذخیره میگردد
        /// بدلیل انجام عملیات جانبی تباید کلاینت مستقیما از متد
        /// SaveChnages استفاده کند
        /// </summary>
        /// <param name="parameters">پارامترهای مقداردهی شده از طرف کلاینت</param>
        /// <param name="fromDate">تاریخ شروع رینج</param>
        /// <param name="toDate">تاریخ پایان رینج</param>
        /// <returns>شناسه رینج پارامتر</returns>
        public decimal InsertParameter(IList <RuleTemplateParameter> parameters, DateTime fromDate, DateTime toDate, UIActionType uam)
        {
            try
            {
                AssignRuleParameter assign = new AssignRuleParameter();
                assign.FromDate          = fromDate;
                assign.ToDate            = toDate;
                assign.Rule              = workingRule;
                assign.RuleParameterList = new List <RuleParameter>();

                IList <RuleTemplateParameter> orginList = this.GetTemplateParameters();

                switch (uam)
                {
                case UIActionType.ADD:
                    foreach (RuleTemplateParameter param in orginList)
                    {
                        if (parameters.Where(x => x.ID == param.ID).Count() > 0)
                        {
                            RuleTemplateParameter p = parameters.Where(x => x.ID == param.ID).First();
                            if (p.Type == RuleParamType.Time && p.ContinueOnTomorrow)
                            {
                                p.Value = Utility.ToString(Utility.ToInteger(p.Value) + 1440);
                            }
                            assign.RuleParameterList.Add(new RuleParameter()
                            {
                                Name = p.Name, Title = p.Title, Type = p.Type, Value = p.Value, AssignRuleParameter = assign
                            });
                        }
                        else
                        {
                            switch ((int)assign.Rule.IdentifierCode)
                            {
                            case (int)RuleParameterType.MissionParameterOne:
                            case (int)RuleParameterType.Miscellaneous:
                                assign.RuleParameterList.Add(new RuleParameter()
                                {
                                    Name = param.Name, Title = param.Title, Type = param.Type, Value = "1", AssignRuleParameter = assign
                                });
                                break;

                            case (int)RuleParameterType.MissionParameterZero:
                                assign.RuleParameterList.Add(new RuleParameter()
                                {
                                    Name = param.Name, Title = param.Title, Type = param.Type, Value = "0", AssignRuleParameter = assign
                                });
                                break;

                            case (int)RuleParameterType.Work:
                            case (int)RuleParameterType.Absence:
                            case (int)RuleParameterType.LeaveParameter3012:
                            case (int)RuleParameterType.LeaveParemeter3017:
                                assign.RuleParameterList.Add(new RuleParameter()
                                {
                                    Name = param.Name, Title = param.Title, Type = param.Type, Value = "480", AssignRuleParameter = assign
                                });
                                break;

                            default:
                                assign.RuleParameterList.Add(new RuleParameter()
                                {
                                    Name = param.Name, Title = param.Title, Type = param.Type, Value = param.Value, AssignRuleParameter = assign
                                });
                                break;
                            }
                        }
                    }
                    base.SaveChanges(assign, uam);
                    break;

                case UIActionType.EDIT:
                    this.UpdateAssignedRuleParameter(assign);
                    break;
                }

                return(assign.ID);
            }
            catch (Exception ex)
            {
                LogException(ex, "BRuleParameter", "InsertParameter");
                throw ex;
            }
        }