Esempio n. 1
0
    private NodeValueExpressions MapConceptExpressionToNodeValueExpressions(ConceptExpression ConceptExpression)
    {
        var nodExpressions = new NodeValueExpressions()
        {
            Id = ConceptExpression.ID
        };

        if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + imageUrl_Yellow))
        {
            nodExpressions.ImageUrl = imagePath_Yellow;
        }

        if (ConceptExpression.CanEditInFinal)
        {
            nodExpressions.ImageUrl = imageUrl_Blue;
        }
        if (!ConceptExpression.CanAddToFinal)
        {
            nodExpressions.ImageUrl = imageUrl_silver;
        }

        nodExpressions.Value = ConceptExpression;

        return(nodExpressions);
    }
Esempio n. 2
0
    public string MakeJsonObjectListString(ConceptExpression childCncptExprsn)
    {
        var tt = Serialize(new List <NodeValueExpressions>()
        {
            MapConceptExpressionToNodeValueExpressions(childCncptExprsn)
        });

        return(tt);
    }
Esempio n. 3
0
        public string[] UpdateExpression_ExpressionsPage(
            string ID,
            string Parent_ID,
            string ScriptBeginFa,
            string ScriptEndFa,
            string ScriptBeginEn,
            string ScriptEndEn,
            string AddOnParentCreation,
            string CanAddToFinal,
            string CanEditInFinal,
            string Visible,
            string SortOrder,
            string PageState
            )
        {
            this.InitializeCulture();

            UIValidationExceptions uiValidationExceptions = new UIValidationExceptions();

            string[] retMessage = new string[4];

            decimal           iID = 0;
            ConceptExpression ConceptExpressionRecived = new ConceptExpression();

            ConceptExpressionRecived.ID = Convert.ToDecimal(StringBuilder.CreateString(ID));

            PageState = StringBuilder.CreateString(PageState);
            if (PageState != "Delete")
            {
                uiValidationExceptions = BExpression.Validation(ScriptBeginFa);

                if (uiValidationExceptions.ExceptionList.Count > 0)
                {
                    retMessage = this.ExceptionHandler.HandleException(
                        this.Page,
                        ExceptionTypes.UIValidationExceptions,
                        uiValidationExceptions, retMessage);

                    return(retMessage);
                }

                if (!string.IsNullOrEmpty(StringBuilder.CreateString(Parent_ID)))
                {
                    ConceptExpressionRecived.Parent_ID = Convert.ToDecimal(StringBuilder.CreateString(Parent_ID));
                }

                /*
                 * ID, Parent_ID, ScriptBeginFa, ScriptEndFa, ScriptBeginEn,
                 * ScriptEndEn, AddOnParentCreation, CanAddToFinal, CanEditInFinal,
                 * Visible, SortOrder, PageState
                 */

                ConceptExpressionRecived.ScriptBeginFa = StringBuilder.CreateString(ScriptBeginFa);
                ConceptExpressionRecived.ScriptEndFa   = StringBuilder.CreateString(ScriptEndFa);
                ConceptExpressionRecived.ScriptBeginEn = StringBuilder.CreateString(ScriptBeginEn);
                ConceptExpressionRecived.ScriptEndEn   = StringBuilder.CreateString(ScriptEndEn);
                ConceptExpressionRecived.SortOrder     = int.Parse(StringBuilder.CreateString(SortOrder));

                ConceptExpressionRecived.AddOnParentCreation = bool.Parse(StringBuilder.CreateString(AddOnParentCreation));
                ConceptExpressionRecived.CanAddToFinal       = bool.Parse(StringBuilder.CreateString(CanAddToFinal));
                ConceptExpressionRecived.CanEditInFinal      = bool.Parse(StringBuilder.CreateString(CanEditInFinal));
                ConceptExpressionRecived.Visible             = bool.Parse(StringBuilder.CreateString(Visible));
            }

            #region Effect on DB

            try
            {
                #region Set UIActionType Enum
                UIActionType uiActionType = UIActionType.ADD;
                switch (PageState.ToUpper())
                {
                    #region Add
                case "ADD":
                    uiActionType = UIActionType.ADD;
                    iID          = BExpression.InsertConceptExpression(ConceptExpressionRecived);
                    break;

                    #endregion
                    #region Edit
                case "EDIT":
                    uiActionType = UIActionType.EDIT;
                    if (ConceptExpressionRecived.ID == 0)
                    {
                        retMessage = this.ExceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoConceptExpressionSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }

                    var conceptFromDb = BExpression.GetByID(ConceptExpressionRecived.ID);
                    BExpression.Copy(ConceptExpressionRecived, ref conceptFromDb);

                    iID = BExpression.UpdateConceptExpression(conceptFromDb);
                    break;

                    #endregion
                    #region Delete
                case "DELETE":
                    uiActionType = UIActionType.DELETE;
                    if (ConceptExpressionRecived.ID == 0)
                    {
                        retMessage = this.ExceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoConceptExpressionSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    iID = BExpression.DeleteConceptExpression(ConceptExpressionRecived);
                    break;

                    #endregion
                default:
                    break;
                }
                #endregion

                retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
                string SuccessMessageBody = string.Empty;
                switch (uiActionType)
                {
                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] = iID.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);
            }
            #endregion
        }
Esempio n. 4
0
        /// <summary>
        /// ارتباطات مفهوم ثانوی با بقیه مدل ها را دیتابیس ایجاد و بروزرسانی می کند
        /// </summary>
        /// <param name="secondaryConcept">مفهوم ثانوی</param>
        private void AddUpdateRelatedExpression(SecondaryConcept secondaryConcept)
        {
            try
            {
                var bCnpExpression = new BConceptExpression();

                var cnpExpressionRoot = bCnpExpression.GetRoot();
                if (cnpExpressionRoot == null)
                {
                    try
                    {
                        cnpExpressionRoot = new ConceptExpression
                        {
                            AddOnParentCreation = false,
                            CanAddToFinal       = false,
                            CanEditInFinal      = false,

                            CustomeCategoryCode = 0,
                            Parent_ID           = null,
                            ScriptBeginEn       = string.Empty,
                            ScriptEndEn         = string.Empty,
                            ScriptBeginFa       = "...",
                            ScriptEndFa         = string.Empty,
                            SortOrder           = 0,
                            Visible             = true
                        };

                        bCnpExpression.InsertConceptExpression(cnpExpressionRoot);
                    }
                    catch (Exception)
                    {
                        var uiException = new UIValidationExceptions();
                        uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                        "مولفه ریشه (...) ساخته نشد", ExceptionSrc);
                        throw uiException;
                    }
                }


                #region اجزاي كاربردي

                var expressionParent1 =
                    bCnpExpression.GetByParentId(cnpExpressionRoot.ID)
                    .FirstOrDefault(x => x.ScriptBeginFa.Contains("اجزاي كاربردي"));
                if (expressionParent1 == null)
                {
                    try
                    {
                        expressionParent1 = new ConceptExpression
                        {
                            AddOnParentCreation = false,
                            CanAddToFinal       = false,
                            CanEditInFinal      = false,

                            CustomeCategoryCode = int.Parse(secondaryConcept.CustomCategoryCode),
                            Parent_ID           = cnpExpressionRoot.ID,
                            ScriptBeginEn       = string.Empty,
                            ScriptEndEn         = string.Empty,
                            ScriptBeginFa       = "اجزاي كاربردي",
                            ScriptEndFa         = string.Empty,
                            SortOrder           = 0,
                            Visible             = true
                        };

                        bCnpExpression.InsertConceptExpression(expressionParent1);
                    }
                    catch (Exception)
                    {
                        var uiException = new UIValidationExceptions();
                        uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                        "مولفه اجزاي كاربردي ساخته نشد", ExceptionSrc);
                        throw uiException;
                    }
                }


                #endregion

                #region مفهوم

                var expressionParent2 =
                    bCnpExpression.GetByParentId(expressionParent1.ID)
                    .FirstOrDefault(x => x.ScriptBeginFa.Contains("مفهوم"));
                if (expressionParent2 == null)
                {
                    try
                    {
                        expressionParent2 = new ConceptExpression
                        {
                            AddOnParentCreation = false,
                            CanAddToFinal       = false,
                            CanEditInFinal      = false,

                            CustomeCategoryCode = int.Parse(secondaryConcept.CustomCategoryCode),
                            Parent_ID           = expressionParent1.ID,
                            ScriptBeginEn       = string.Empty,
                            ScriptEndEn         = string.Empty,
                            ScriptBeginFa       = "مفهوم",
                            ScriptEndFa         = string.Empty,
                            SortOrder           = 1,
                            Visible             = true
                        };

                        bCnpExpression.InsertConceptExpression(expressionParent2);
                    }
                    catch (Exception)
                    {
                        var uiException = new UIValidationExceptions();
                        uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                        "مولفه مفهوم ساخته نشد", ExceptionSrc);
                        throw uiException;
                    }
                }

                #endregion

                #region بازه ای مقداری عملگر

                string periodicTypeTitle;
                switch (secondaryConcept.Type)
                {
                case ScndCnpPairableType.PSC:
                    periodicTypeTitle = "بازه ای";
                    break;

                case ScndCnpPairableType.NPSC:
                    periodicTypeTitle = "مقداری";
                    break;

                default:
                    periodicTypeTitle = "عملگر";
                    break;
                }

                var expressionParent3 =
                    bCnpExpression.GetByParentId(expressionParent2.ID)
                    .FirstOrDefault(x => x.ScriptBeginFa.Contains(periodicTypeTitle));
                if (expressionParent3 == null)
                {
                    try
                    {
                        expressionParent3 = new ConceptExpression
                        {
                            AddOnParentCreation = false,
                            CanAddToFinal       = false,
                            CanEditInFinal      = false,

                            CustomeCategoryCode = int.Parse(secondaryConcept.CustomCategoryCode),
                            Parent_ID           = expressionParent2.ID,
                            ScriptBeginEn       = string.Empty,
                            ScriptEndEn         = string.Empty,
                            ScriptBeginFa       = periodicTypeTitle,
                            ScriptEndFa         = string.Empty,
                            SortOrder           = 1,
                            Visible             = true
                        };

                        bCnpExpression.InsertConceptExpression(expressionParent3);
                    }
                    catch (Exception)
                    {
                        var uiException = new UIValidationExceptions();
                        uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                        "مولفه" + periodicTypeTitle + "موجود نیست", ExceptionSrc);
                        throw uiException;
                    }
                }

                #endregion

                #region کاری مرخصی ماموریت غیبت اضافه کار

                var expressionParent4 =
                    bCnpExpression.GetByParentId(expressionParent3.ID)
                    .FirstOrDefault(x => x.CustomeCategoryCode == int.Parse(secondaryConcept.CustomCategoryCode));
                if (expressionParent4 == null)
                {
                    var customCategoryTitle = string.Empty;

                    try
                    {
                        switch (int.Parse(secondaryConcept.CustomCategoryCode))
                        {
                        case 1:
                        {
                            customCategoryTitle = "کاری";
                            break;
                        }

                        case 2:
                        {
                            customCategoryTitle = "مرخصی";
                            break;
                        }

                        case 3:
                        {
                            customCategoryTitle = "ماموریت";
                            break;
                        }

                        case 4:
                        {
                            customCategoryTitle = "غیبت";
                            break;
                        }

                        case 5:
                        {
                            customCategoryTitle = "اضافه کار";
                            break;
                        }

                        default:
                        {
                            customCategoryTitle = "کاری";
                            break;
                        }
                        }

                        expressionParent4 = new ConceptExpression
                        {
                            AddOnParentCreation = false,
                            CanAddToFinal       = false,
                            CanEditInFinal      = false,

                            CustomeCategoryCode = int.Parse(secondaryConcept.CustomCategoryCode),
                            Parent_ID           = expressionParent3.ID,
                            ScriptBeginEn       = string.Empty,
                            ScriptEndEn         = string.Empty,
                            ScriptBeginFa       = customCategoryTitle,
                            ScriptEndFa         = string.Empty,
                            SortOrder           = 1,
                            Visible             = true
                        };

                        bCnpExpression.InsertConceptExpression(expressionParent4);
                    }
                    catch (Exception)
                    {
                        var uiException = new UIValidationExceptions();
                        uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                        "مولفه" + customCategoryTitle + "موجود نیست", ExceptionSrc);
                        throw uiException;
                    }
                }

                #endregion

                var conceptExpressionObj = new ConceptExpression
                {
                    AddOnParentCreation = false,
                    CanAddToFinal       = true,
                    CanEditInFinal      = false,
                    CustomeCategoryCode = int.Parse(secondaryConcept.CustomCategoryCode),
                    Parent_ID           = expressionParent4.ID,
                    ScriptBeginEn       = string.Format("this.DoConcept({0}).Value", secondaryConcept.IdentifierCode),
                    ScriptEndEn         = string.Empty,
                    ScriptBeginFa       = secondaryConcept.Name,
                    ScriptEndFa         = string.Empty,
                    SortOrder           = (int)secondaryConcept.ID,
                    Visible             = true
                };

                bCnpExpression.InsertConceptExpression(conceptExpressionObj);
            }
            catch (Exception ex)
            {
                var uiException = new UIValidationExceptions();
                uiException.Add(ExceptionResourceKeys.BSecondaryConceptCustomeCategoryParentExpressionRequierd,
                                ex.Message, ExceptionSrc);
                throw uiException;
            }
        }