示例#1
0
        public override PaymentItemsViewModel NewFormData()
        {
            PaymentItemsViewModel model = new PaymentItemsViewModel();

            try
            {
                var userInfo = UserService.GetSessionUserInfo();
                var list     = new List <SelectListItem>();
                using (var context = new PYMFEEEntities())
                {
                    var getCompanyList = (from data in context.COMPANies where data.IsPaymentFee == true orderby data.Bussiness_Unit select data).ToList();
                    list.AddRange(getCompanyList.Select(com => new SelectListItem {
                        Value = com.BAN_COMPANY.ToString(), Text = com.COMPANY_NAME_EN.ToString()
                    }).ToList());
                    model.CompanyLst = list;

                    var pym_List = ValueHelpService.GetValueHelp(ConstantVariableService.ISACTIONTYPE);
                    model.IsActionList = pym_List;

                    var durationList = ValueHelpService.GetValueHelp(ConstantVariableService.DURATIONTYPE, ConstantVariableService.ConfigStatusActive);
                    model.DurationList = durationList;
                }
                model.CREATE_BY   = userInfo.UserCode;
                model.CREATE_DATE = DateTime.Now;
                //model.LASTMODIFIED_BY = userInfo.UserCode;
                //model.LASTMODIFIED_DATE = DateTime.Now;
                model.ChannelsList = ValueHelpService.GetValueHelp("CHANNELS").ToList();
            }
            catch (Exception)
            {
                throw;
            }
            return(model);
        }
示例#2
0
        public ValidationResult ValidateDeleteData(PaymentItemsViewModel formData, bool flagMain = false)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    //Get item => deleteFlag != true
                    var itemList = formData.pymItemsChargeList.Where(m => m.DeleteFlag == true).ToList();
                    foreach (var item in itemList)
                    {
                        var inv_item_ent = (from m in context.FEE_INVOICE_ITEM
                                            where m.PAYMENT_ITEMS_CODE == formData.PAYMENT_ITEMS_CODE &&
                                            m.PAYMENT_ITEMS_FEE_ITEM.Contains(item.PAYMENT_ITEMS_FEE_NAME) &&
                                            m.COMPANY_CODE == formData.COMPANY_CODE
                                            select m).FirstOrDefault();
                        if (inv_item_ent != null)
                        {
                            result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.cannot_request_delete, item.PAYMENT_ITEMS_FEE_NAME)));

                            result.ErrorFlag = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(result);
        }
示例#3
0
        public List <AppCompositeRoleViewModel> GetAppCompositeRoleList()
        {
            List <AppCompositeRoleViewModel> result = new List <AppCompositeRoleViewModel>();
            var help = NewFormData();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var appCompositeRoles = context.AppCompositeRoles.ToList();

                    foreach (var appCompositeRole in appCompositeRoles)
                    {
                        AppCompositeRoleViewModel appCompositeRoleViewModel = new AppCompositeRoleViewModel();
                        MVMMappingService.MoveData(appCompositeRole, appCompositeRoleViewModel);
                        var statusHelp = help.StatusValueHelp.Where(m => m.ValueKey == appCompositeRole.Status).FirstOrDefault();
                        appCompositeRoleViewModel.StatusText = statusHelp.ValueText;
                        result.Add(appCompositeRoleViewModel);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
示例#4
0
        public static List <AppMenu> GetSideMenu(User user)
        {
            List <AppMenu> userMenuList = new List <AppMenu>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var appMenus = (from m in context.AppMenus select m).ToList();

                    //Check menu which user have role to display
                    var roleMenuList = appMenus.Where(b => user.RoleList.Any(a => a.RoleID.Equals(b.RoleForDisplay, StringComparison.OrdinalIgnoreCase)) ||
                                                      user.RoleList.Any(a => a.RoleID.Equals(b.RoleForManage, StringComparison.OrdinalIgnoreCase))).ToList();

                    //var groupMenuList = appMenus.Where(b => b.MenuType.Equals("GROUP", StringComparison.OrdinalIgnoreCase)).ToList();
                    var groupMenuList = appMenus.Where(b => b.MenuType == "GROUP").ToList();

                    //Find parent menu
                    int maxParent = 10; //Prevent infinity loop
                    foreach (var item in roleMenuList)
                    {
                        bool findParent     = true;
                        int  countParent    = 0;
                        var  parentMenuCode = item.ParentMenuCode;

                        userMenuList.Add(item);

                        while (findParent && !string.IsNullOrEmpty(parentMenuCode) && countParent < maxParent)
                        {
                            AppMenu parentMenu = appMenus.FirstOrDefault(b => b.MenuCode.Equals(parentMenuCode, StringComparison.OrdinalIgnoreCase));

                            if (!parentMenu.MenuCode.Equals(ConstantVariableService.RootMenuCode, StringComparison.OrdinalIgnoreCase))
                            {
                                findParent     = true;
                                parentMenuCode = parentMenu.ParentMenuCode;
                                userMenuList.Add(parentMenu);
                            }
                            else
                            {
                                findParent = false;
                            }

                            countParent++;
                        }
                    }

                    //Remove duplicate menu
                    userMenuList = userMenuList.Distinct().ToList();
                }
            }
            catch (Exception ex)
            {
            }

            return(userMenuList);
        }
示例#5
0
        public static void ManageAttachment(List <AttachmentViewModel> attachmentList)
        {
            try
            {
                //User userInfo = UserService.GetSessionUserInfo();

                using (TransactionScope scope = new TransactionScope())
                {
                    using (var context = new PYMFEEEntities())
                    {
                        //Save attachment
                        foreach (var attachmentViewModel in attachmentList)
                        {
                            var attachment = new Attachment();

                            MVMMappingService.MoveData(attachmentViewModel, attachment);

                            if (attachmentViewModel.DeleteFlag)
                            {
                                if (attachment.ID != 0)
                                {
                                    context.Entry(attachment).State = System.Data.Entity.EntityState.Deleted;
                                }
                            }
                            else
                            {
                                if (attachment.ID != 0)
                                {
                                    context.Entry(attachment).State = System.Data.Entity.EntityState.Modified;
                                }
                                else
                                {
                                    attachment.AttachDate = DateTime.Now;
                                    attachment.AttachBy   = "";
                                    context.Attachments.Add(attachment);
                                }
                            }

                            context.SaveChanges();
                        }
                    }

                    scope.Complete();
                }

                //Move file
                AttachmentService.ManageFile(attachmentList);
            }
            catch (Exception ex)
            {
            }
        }
示例#6
0
        public string InitialGetRoleStatus(int roleID)
        {
            AssignUserRoleItemViewModel roleItem = new AssignUserRoleItemViewModel();
            var context      = new PYMFEEEntities();
            var appComposite = context.AppCompositeRoles.Where(m => m.ID == roleID).OrderBy(m => m.Name).FirstOrDefault();
            var valueStatus  = ValueHelpService.GetValueHelpText("CONFIGSTATUS", appComposite.Status);

            if (valueStatus != null)
            {
                roleItem.StatusText = valueStatus.ValueText;
            }
            return(roleItem.StatusText);
        }
示例#7
0
        public override AppCompositeRoleViewModel GetDetail(int id)
        {
            AppCompositeRoleViewModel result = NewFormData();
            var userInfo = UserService.GetSessionUserInfo();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var appMenu = context.AppCompositeRoles.Where(m => m.ID == id).FirstOrDefault();
                    if (appMenu != null)
                    {
                        MVMMappingService.MoveData(appMenu, result);
                        var appItems = context.AppCompositeRoleItems.Where(m => m.CompositeRoleID == id).ToList();
                        if (appItems != null)
                        {
                            if (appItems.Count > 0)
                            {
                                var newAppMenuItems = new List <AppMenuViewModel>();
                                foreach (var appMenuItem in result.AppMenuItems)
                                {
                                    var roleDisplay = appItems.Where(m => m.RoleID == appMenuItem.RoleForDisplay).FirstOrDefault();
                                    if (roleDisplay != null)
                                    {
                                        appMenuItem.CheckRoleForDisplay = true;
                                    }

                                    var roleManage = appItems.Where(m => m.RoleID == appMenuItem.RoleForManage).FirstOrDefault();
                                    if (roleManage != null)
                                    {
                                        appMenuItem.CheckRoleForManage = true;
                                    }

                                    newAppMenuItems.Add(appMenuItem);
                                }

                                //Update Parent Check Box
                                newAppMenuItems = UpdateParentList(newAppMenuItems);
                            }
                        }
                    }
                }//End Context
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
        public static List <ValueHelpViewModel> GetValueHelp(string valueType, string status = "")
        {
            List <ValueHelpViewModel> valueHelpList = new List <ValueHelpViewModel>();

            try
            {
                if (string.IsNullOrEmpty(status))
                {
                    status = ConstantVariableService.ConfigStatusActive;;
                }

                using (var context = new PYMFEEEntities())
                {
                    IOrderedQueryable <ValueHelp> valueHelps;

                    if (string.Equals(valueType, "ALL", StringComparison.OrdinalIgnoreCase))
                    {
                        valueHelps = (from m in context.ValueHelps
                                      where m.Status == status
                                      select m).OrderBy(m => m.Sequence);
                    }
                    else
                    {
                        valueHelps = (from m in context.ValueHelps
                                      where m.ValueType == valueType &&
                                      m.Status == status
                                      select m).OrderBy(m => m.Sequence);
                    }


                    foreach (var value in valueHelps)
                    {
                        ValueHelpViewModel valueHelp = new ValueHelpViewModel();
                        valueHelp.ID        = value.ID;
                        valueHelp.ValueKey  = value.ValueKey;
                        valueHelp.ValueText = value.ValueText;
                        valueHelp.ValueType = value.ValueType;
                        valueHelp.Status    = value.Status;

                        valueHelpList.Add(valueHelp);
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(valueHelpList);
        }
示例#9
0
        public static int?GetColumnLength <T>(String columnName)
        {
            int?result = null;

            using (var context = new PYMFEEEntities())
            {
                var entType       = typeof(T);
                var objectContext = ((IObjectContextAdapter)context).ObjectContext;
                var items         = objectContext.MetadataWorkspace.GetItems(DataSpace.CSpace);

                if (items == null)
                {
                    return(null);
                }

                var q = items
                        .Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
                        .SelectMany(meta => ((EntityType)meta).Properties
                                    .Where(p => p.Name == columnName && p.TypeUsage.EdmType.Name == "String"));

                var queryResult = q.Where(p =>
                {
                    var match = p.DeclaringType.Name == entType.Name;
                    if (!match)
                    {
                        match = entType.Name == p.DeclaringType.Name;
                    }

                    return(match);
                })
                                  .Select(sel => sel.TypeUsage.Facets["MaxLength"].Value)
                                  .ToList();

                if (queryResult.Any())
                {
                    String checkMaxText = queryResult.First().ToString();
                    if (checkMaxText.ToUpper().IndexOf("MAX") >= 0)
                    {
                        result = 1000;
                    }
                    else
                    {
                        result = Convert.ToInt32(queryResult.First());
                    }
                }

                return(result);
            }
        }
示例#10
0
        public static List <AppSingleRole> GetRole(string username)
        {
            List <AppSingleRole> roleList = new List <AppSingleRole>();
            AppSingleRole        role     = new AppSingleRole();

#if DEBUG
            //For test, add super admin role
            role        = new AppSingleRole();
            role.RoleID = ConstantVariableService.RoleSuperAdmin;
            roleList.Add(role);

            roleList = GetSuperAdminSingleRole();
#endif

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var    user             = (from m in context.USERS where m.USERNAME == username select m).FirstOrDefault();
                    string userId           = user == null ? "" : user.USERID;
                    var    userCompRoleList = (from m in context.UserRoles
                                               join n in context.AppCompositeRoles on m.CompositeRoleID equals n.ID
                                               where m.USERID == userId //&&
                                                                        //n.Status == ConstantVariableService.ConfigStatusActive
                                               select m).ToList();

                    if (userCompRoleList.Any())
                    {
                        foreach (var compRole in userCompRoleList)
                        {
                            var compRoleItemList = (from m in context.AppCompositeRoleItems where m.CompositeRoleID == compRole.CompositeRoleID select m).ToList();

                            foreach (var compRoleItem in compRoleItemList)
                            {
                                role        = new AppSingleRole();
                                role.RoleID = compRoleItem.RoleID;
                                roleList.Add(role);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(roleList);
        }
示例#11
0
        //For test user without manage data role
        public static List <AppSingleRole> GetDisplaySingleRole()
        {
            List <AppSingleRole> roleList = new List <AppSingleRole>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    roleList = (from m in context.AppSingleRoles where m.RoleID.Contains("Role_DS") select m).ToList();
                }
            }
            catch (Exception ex)
            {
            }

            return(roleList);
        }
示例#12
0
        public override ValidationResult SaveDelete(PaymentItemsViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            result = ValidateFormData(formData, modelState);
            if (result.ErrorFlag)
            {
                return(result);
            }
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    var entPYMItems = new PAYMENT_ITEMS();

                    //Copy data from viewmodel to model - for header
                    MVMMappingService.MoveData(formData, entPYMItems);

                    using (var context = new PYMFEEEntities())
                    {
                        //Delete header
                        context.Entry(entPYMItems).State = System.Data.Entity.EntityState.Deleted;
                        context.SaveChanges();

                        //Delete item
                        context.PAYMENT_ITEMS_CHAGE.RemoveRange(context.PAYMENT_ITEMS_CHAGE.Where(m => m.COMPANY_CODE == entPYMItems.COMPANY_CODE && m.PAYMENT_ITEMS_ID == entPYMItems.ID));
                        context.SaveChanges();
                    }

                    //Commit Header and Item
                    scope.Complete();

                    result.Message     = ResourceText.SuccessfulDelete;
                    result.MessageType = "S";
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#13
0
        public AssignUserRoleItemViewModel InitialItem()
        {
            AssignUserRoleItemViewModel        assignUserRoleItemViewModel = new AssignUserRoleItemViewModel();
            List <AssignUserRoleItemViewModel> assignUserRoleItemList      = new List <AssignUserRoleItemViewModel>();

            try
            {
                var context = new PYMFEEEntities();
                //var appComposite = context.AppCompositeRoles.Where(m => m.Status == ConstantVariableService.ConfigStatusActive).OrderBy(m => m.Name).ToList();
                var appComposite = context.AppCompositeRoles.OrderBy(m => m.Name).ToList();
                assignUserRoleItemViewModel.CompositeRoleList = appComposite;
            }
            catch (Exception ex)
            {
            }

            return(assignUserRoleItemViewModel);
        }
示例#14
0
        public static List <AppMenuViewModel> GetAppMenu()
        {
            List <AppMenuViewModel> userMenuList = new List <AppMenuViewModel>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var appMenus    = (from m in context.AppMenus select m).ToList();
                    var parentMenus = appMenus.Where(m => m.ParentMenuCode == null).FirstOrDefault();
                    userMenuList = GetAppMenuUnder(parentMenus, appMenus);
                }
            }
            catch (Exception ex)
            {
            }

            return(userMenuList);
        }
示例#15
0
        public override ValidationResult SaveDelete(AppCompositeRoleViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                if (formData.ID <= 0)
                {
                    result.Message = ValidatorMessage.id_not_found;
                    result.ModelStateErrorList.Add(new ModelStateError("", result.Message));
                    result.ErrorFlag = true;
                    return(result);
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    using (var context = new PYMFEEEntities())
                    {
                        var appCompositeRole = new AppCompositeRole();
                        MVMMappingService.MoveData(formData, appCompositeRole);
                        context.Entry(appCompositeRole).State = System.Data.Entity.EntityState.Deleted;
                        context.SaveChanges();

                        //Delete Items
                        context.AppCompositeRoleItems.RemoveRange(context.AppCompositeRoleItems.Where(m => m.CompositeRoleID == appCompositeRole.ID).ToList());
                        context.SaveChanges();

                        scope.Complete();
                    }//End Transaction
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#16
0
        public static List <AppSingleRole> GetSuperAdminSingleRole()
        {
            List <AppSingleRole> roleList = new List <AppSingleRole>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    roleList = (from m in context.AppSingleRoles select m).ToList();
                }
            }
            catch (Exception ex)
            {
            }

            var role = new AppSingleRole();

            role.RoleID = ConstantVariableService.RoleSuperAdmin;
            roleList.Add(role);

            return(roleList);
        }
示例#17
0
        public List <AssignUserRoleViewModel> GetAssignUserRoleList(string _userRoleCode = "")//(string userRole, string userRoleCode = "")
        {
            List <AssignUserRoleViewModel> assignUserRoleList = new List <AssignUserRoleViewModel>();
            ValueHelpViewModel             valueHelp          = new ValueHelpViewModel();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var userRol = string.IsNullOrEmpty(_userRoleCode)?
                                  (from user in context.UserRoles select user).ToList() : (from user in context.UserRoles where user.USERID == _userRoleCode select user).ToList();;

                    var assignUserRoleEmp = string.IsNullOrEmpty(_userRoleCode) ?
                                            (from emp in context.USERS select emp).ToList() : (from emp in context.USERS where emp.USERID == _userRoleCode select emp).ToList();
                    foreach (var item in assignUserRoleEmp)
                    {
                        string _getIcon = Convert.ToString(userRol.Where(m => m.USERID == item.USERID).FirstOrDefault());
                        var    assign   = new AssignUserRoleViewModel();
                        string icon     = "";
                        if (!string.IsNullOrEmpty(item.USERID) && !string.IsNullOrEmpty(_getIcon))
                        {
                            icon = "<i class=\"fa fa-check-circle\" style=\"color: #4277f4; font-size: 20px\"></i>";
                        }
                        assign.AssignUserCode     = item.USERID;
                        assign.AssignUserName     = item.USERNAME;
                        assign.UserName           = item.USERNAME;
                        assign.AssignUserRoleIcon = icon;

                        assign.AssignAvailableReason = ValidatorMessage.cannot_assignuserrole_action;
                        assignUserRoleList.Add(assign);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(assignUserRoleList);
        }
示例#18
0
        public List <PaymentItemsViewModel> GetPaymentItemsList(string companyCode)
        {
            List <PaymentItemsViewModel> pymItemsList = new List <PaymentItemsViewModel>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var entPaymentItems = (from m in context.PAYMENT_ITEMS orderby m.COMPANY_CODE, m.GROUP_SEQ_CHANNELS select m).ToList();
                    var entCompany      = (from m in context.COMPANies where m.IsPaymentFee == true select m).ToList();
                    var entUsers        = (from m in context.USERS select m).ToList();
                    if (!string.IsNullOrEmpty(companyCode))
                    {
                        entPaymentItems = entPaymentItems.Where(m => m.COMPANY_CODE == companyCode).ToList();
                        entCompany      = entCompany.Where(m => m.BAN_COMPANY == companyCode).ToList();
                    }
                    int seq = 1;
                    foreach (var item in entPaymentItems)
                    {
                        var getUsers   = entUsers.Where(m => m.USERID == item.LASTMODIFIED_BY).FirstOrDefault();
                        var getCompany = entCompany.Where(m => m.BAN_COMPANY == item.COMPANY_CODE).FirstOrDefault();
                        PaymentItemsViewModel pymItemsModel = new PaymentItemsViewModel();
                        MVMMappingService.MoveData(item, pymItemsModel);
                        pymItemsModel.COMPANY_NAME         = getCompany == null ? "" : getCompany.COMPANY_NAME_EN;
                        pymItemsModel.LASTMODIFIED_BY_NAME = getUsers == null ? "" : getUsers.NAME;
                        pymItemsModel.ITEM = seq;
                        pymItemsList.Add(pymItemsModel);

                        seq++;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(pymItemsList);
        }
示例#19
0
        public override PaymentItemsViewModel GetDetail(int id)
        {
            PaymentItemsViewModel pymItemsModel = NewFormData();
            //User Type
            User userInfo = UserService.GetSessionUserInfo();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var entPymItems = (from m in context.PAYMENT_ITEMS where m.ID == id select m).FirstOrDefault();
                    if (entPymItems != null)
                    {
                        MVMMappingService.MoveData(entPymItems, pymItemsModel);
                        pymItemsModel.LASTMODIFIED_BY   = userInfo.UserCode;
                        pymItemsModel.LASTMODIFIED_DATE = DateTime.Now;


                        var entPymItemsCharge = (from n in context.PAYMENT_ITEMS_CHAGE where n.COMPANY_CODE == entPymItems.COMPANY_CODE && n.PAYMENT_ITEMS_ID == id orderby n.SEQUENCE select n).ToList();
                        foreach (var item in entPymItemsCharge)
                        {
                            PaymentItemsChargeViewModel pymChargeModel = new PaymentItemsChargeViewModel();
                            MVMMappingService.MoveData(item, pymChargeModel);
                            pymChargeModel.ChargeTypeList = ValueHelpService.GetValueHelp(ConstantVariableService.CHARGETYPE).ToList();
                            pymChargeModel.IsActionList   = ValueHelpService.GetValueHelp(ConstantVariableService.ISACTIONTYPE);

                            pymItemsModel.pymItemsChargeList.Add(pymChargeModel);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(pymItemsModel);
        }
示例#20
0
        public void GeneratePaymentItemCode(PaymentItemsViewModel formData)
        {
            try
            {
                string fee     = formData.PAYMENT_ITEMS_NAME.Trim();
                string pymName = fee.Replace(" ", "").Length > 14 ? fee.Replace(" ", "").Substring(0, 15) : fee.Replace(" ", "");

                using (var context = new PYMFEEEntities())
                {
                    var entpymItemsData = (from m in context.PAYMENT_ITEMS select m).ToList();

                    var getNewpymItems = entpymItemsData.Where(m => m.COMPANY_CODE == formData.COMPANY_CODE).ToList();
                    if (getNewpymItems.Any())
                    {
                        //int seqgetNewpymItems = getNewpymItems.Count() + 1;
                        //formData.GROUP_SEQ_CHANNELS = seqgetNewpymItems;

                        formData.GROUP_SEQ_CHANNELS = getNewpymItems.Max(m => m.GROUP_SEQ_CHANNELS) + 1;
                        formData.SEQ_CHANNELS       = (getNewpymItems.Where(m => m.CHANNELS == formData.CHANNELS).ToList()).Any() ?
                                                      getNewpymItems.Where(m => m.CHANNELS == formData.CHANNELS).FirstOrDefault().SEQ_CHANNELS :
                                                      getNewpymItems.ToList().GroupBy(m => m.SEQ_CHANNELS).ToList().Max(m => m.Key) + 1;


                        formData.PAYMENT_ITEMS_CODE = formData.COMPANY_CODE + pymName + DateTime.Now.Date.ToString("yyyymmdd") + "_" + formData.GROUP_SEQ_CHANNELS;
                    }
                    else
                    {
                        formData.PAYMENT_ITEMS_CODE = formData.COMPANY_CODE + pymName + DateTime.Now.Date.ToString("yyyymmdd");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#21
0
        public PaymentItemsViewModel InitialListSearch()
        {
            PaymentItemsViewModel model = new PaymentItemsViewModel();

            try
            {
                model.COMPANY_CODE = "";

                var list = new List <SelectListItem>();
                using (var context = new PYMFEEEntities())
                {
                    var getCompanyList = (from data in context.COMPANies where data.IsPaymentFee == true orderby data.Bussiness_Unit select data).ToList();
                    list.AddRange(getCompanyList.Select(com => new SelectListItem {
                        Value = com.BAN_COMPANY.ToString(), Text = com.COMPANY_NAME_EN.ToString()
                    }).ToList());
                    model.CompanyLst = list;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(model);
        }
示例#22
0
        public override ValidationResult ValidateFormData(PaymentItemsViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();
            //User Type
            User user = UserService.GetSessionUserInfo();

            try
            {
                #region mark delete
                //if (string.Equals(formData.FormAction, ConstantVariableService.FormActionDelete, StringComparison.OrdinalIgnoreCase))
                //{
                //    using (var context = new PYMFEEEntities())
                //    {


                //        //FEE_ACCRUED_PLAN_ITEM
                //        var fund_inAccr = (from m in context.FEE_ACCRUED_PLAN_ITEM where m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == m.COMPANY_CODE select m).ToList();
                //        //FEE_ACCRUED_PLAN_ITEM_SUB
                //        var fund_inAccrSub = (from m in context.FEE_ACCRUED_PLAN_ITEM_SUB where m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == m.COMPANY_CODE select m).ToList();
                //        //FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG
                //        var fund_inAccrUpload = (from m in context.FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG where m.FEE == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == formData.COMPANY_CODE select m).ToList();
                //        //FEE_INVOICE
                //        var fund_inInv = (from m in context.FEE_INVOICE where m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == formData.COMPANY_CODE select m).ToList();
                //        //FEE_INVOICE_ITEM
                //        var fund_inInvitem = (from m in context.FEE_INVOICE_ITEM where m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == formData.COMPANY_CODE select m).ToList();
                //        //FEE_INVOICE_UPLOAD_ITEM_LOG
                //        var fund_inInvupload = (from m in context.FEE_INVOICE_UPLOAD_ITEM_LOG where m.FEE == formData.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == formData.COMPANY_CODE select m).ToList();

                //        if (
                //            fund_inAccr.Any() || fund_inAccrSub.Any() || fund_inAccrUpload.Any() || fund_inInv.Any() || fund_inInvitem.Any() || fund_inInvupload.Any()
                //            )
                //        {
                //            result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.cannot_request_delete, formData.PAYMENT_ITEMS_NAME)));
                //            result.ErrorFlag = true;
                //        }
                //    }
                //}
                //else
                //{ }
                #endregion
                if (!modelState.IsValid)
                {
                    result.ModelStateErrorList = UtilityService.GetModelStateErrors(modelState);
                    result.ErrorFlag           = true;
                }
                else
                {
                    //Get item => deleteFlag != true
                    var itemList = formData.pymItemsChargeList.Where(m => m.DeleteFlag != true).ToList();
                    if (itemList == null || !itemList.Any()) //Check list is null or empty
                    {
                        result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.item_listnull_error, ResourceText.TitlePaymentItemList)));

                        result.ErrorFlag = true;
                    }
                    else
                    {
                        //Check item
                        int line = 1;
                        foreach (var item in itemList)
                        {
                            //charge id not empty
                            if (item.PAYMENT_ITEMS_FEE_NAME == null)
                            {
                                result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.item_notempty_seq_at_error, ResourceText.PAYMENT_ITEMS_FEE_ITEM, line.ToString())));

                                result.ErrorFlag = true;
                            }
                            else
                            {
                                item.PAYMENT_ITEMS_FEE_NAME = item.PAYMENT_ITEMS_FEE_NAME.Trim();
                            }
                            //charge id not empty
                            if (item.CHARGE_TYPE == null)
                            {
                                result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.item_notempty_seq_at_error, ResourceText.Charge, line.ToString())));

                                result.ErrorFlag = true;
                            }
                            //charge id not empty
                            if (item.IS_ACTIVE == null)
                            {
                                result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.item_notempty_seq_at_error, ResourceText.Isactive, line.ToString())));

                                result.ErrorFlag = true;
                            }

                            if (user.AuthorizeAdmin != ConstantVariableService.AuthorizeAdmin && item.IS_ACTIVE == false)
                            {
                                InvoiceService servoice_inv  = new InvoiceService();
                                var            noneActivePro = servoice_inv.GetPaymentItemsList(formData.COMPANY_CODE, 1, DateTime.Now.Date.Month, 2018, DateTime.Now.Date.Year, formData.PAYMENT_ITEMS_NAME, "0", 0);

                                if (noneActivePro.Any())
                                {
                                    result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.cannot_action_status_cancel_error, ResourceText.Isactive, formData.PAYMENT_ITEMS_NAME, line.ToString())));

                                    result.ErrorFlag = true;
                                }
                            }

                            var dupPaymentItem = itemList.GroupBy(m => string.IsNullOrEmpty(m.PAYMENT_ITEMS_FEE_NAME) ? m.PAYMENT_ITEMS_FEE_NAME : m.PAYMENT_ITEMS_FEE_NAME.Trim()).Where(m => m.Count() > 1).ToList();
                            foreach (var itemDup in dupPaymentItem)
                            {
                                string payment_name = string.IsNullOrEmpty(item.PAYMENT_ITEMS_FEE_NAME) ? item.PAYMENT_ITEMS_FEE_NAME : item.PAYMENT_ITEMS_FEE_NAME.Trim();
                                //--wainting test upload invoice
                                if (payment_name == itemDup.Key)
                                {
                                    result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.item_duplicate_error, ResourceText.PAYMENT_ITEMS_FEE_ITEM + " " + itemDup.Key, line.ToString())));
                                    result.ErrorFlag = true;
                                }
                            }

                            line++;
                        }
                        using (var context = new PYMFEEEntities())
                        {
                            //Dup In Data Invoice
                            if (formData.FormAction == ConstantVariableService.FormActionCreate || formData.FormAction == ConstantVariableService.FormActionCopy)
                            {
                                var pymItems = (from m in context.PAYMENT_ITEMS where m.COMPANY_CODE == formData.COMPANY_CODE && m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME.Trim() select m).ToList();
                                if (pymItems.Any())
                                {
                                    result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.duplicate_error, ResourceText.PAYMENT_ITEMS_CODE + " " + formData.PAYMENT_ITEMS_NAME)));
                                    result.ErrorFlag = true;
                                }
                            }
                            //Dup In Data Invoice
                            if (formData.FormAction == ConstantVariableService.FormActionEdit)
                            {
                                var pymItems = (from m in context.PAYMENT_ITEMS where m.COMPANY_CODE == formData.COMPANY_CODE && m.PAYMENT_ITEMS_NAME == formData.PAYMENT_ITEMS_NAME.Trim() && m.ID != formData.ID select m).ToList();
                                if (pymItems.Any())
                                {
                                    result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.duplicate_error, ResourceText.PAYMENT_ITEMS_CODE + " " + formData.PAYMENT_ITEMS_NAME)));
                                    result.ErrorFlag = true;
                                }
                            }
                            //Delete Action
                            if (formData.FormAction == ConstantVariableService.FormActionDelete)
                            {
                                var inv_ent = (from m in context.FEE_INVOICE where m.PAYMENT_ITEMS_CODE == formData.PAYMENT_ITEMS_CODE select m).FirstOrDefault();
                                if (inv_ent != null)
                                {
                                    result.ModelStateErrorList.Add(new ModelStateError("", string.Format(ValidatorMessage.cannot_request_delete, formData.PAYMENT_ITEMS_NAME)));

                                    result.ErrorFlag = true;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
示例#23
0
        public override ValidationResult SaveCreate(PaymentItemsViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                result = ValidateFormData(formData, modelState);
                //Error
                if (result.ErrorFlag)
                {
                    return(result);
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    var entPYMItems = new PAYMENT_ITEMS();
                    //Generate Auto Code
                    GeneratePaymentItemCode(formData);
                    //Copy data from viewmodel to model - for header
                    MVMMappingService.MoveData(formData, entPYMItems);

                    //Save Header
                    using (var context = new PYMFEEEntities())
                    {
                        context.PAYMENT_ITEMS.Add(entPYMItems);
                        context.SaveChanges();

                        //Save Item
                        //Copy data from viewmodel to model - for line item
                        int sequence = 1;

                        foreach (var item in formData.pymItemsChargeList)
                        {
                            if (item.DeleteFlag)
                            {
                                continue;
                            }

                            var entPYMItemsCharge = new PAYMENT_ITEMS_CHAGE();
                            item.PAYMENT_ITEMS_ID   = entPYMItems.ID;
                            item.SEQUENCE           = sequence;
                            item.COMPANY_CODE       = formData.COMPANY_CODE;
                            item.PAYMENT_ITEMS_NAME = formData.PAYMENT_ITEMS_NAME;
                            MVMMappingService.MoveData(item, entPYMItemsCharge);
                            context.PAYMENT_ITEMS_CHAGE.Add(entPYMItemsCharge);
                            context.SaveChanges();

                            sequence++;
                        }
                    }

                    scope.Complete();

                    result.Message     = ResourceText.SuccessfulSave;
                    result.MessageType = "S";
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#24
0
        public override ValidationResult SaveEdit(AssignUserRoleViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                result = ValidateFormData(formData, modelState);
                //Error
                if (result.ErrorFlag)
                {
                    return(result);
                }
                var _context = new PYMFEEEntities();
                #region signal
                //var signal = _context.UserSignatures.Where(m => m.Username == formData.UserName).FirstOrDefault();
                //if (signal != null)
                //{
                //    formData.AssignUserRoleItem.PhotoFileName = signal.SignatureFileName;
                //}
                #endregion
                using (TransactionScope scope = new TransactionScope())
                {
                    //Save Header
                    using (var context = new PYMFEEEntities())
                    {
                        //Save Item
                        foreach (var item in formData.AssignUserRoleItemList)
                        {
                            var _entAssignUserRoleItem = new UserRole();
                            item.CREATE_BY     = formData.CREATE_BY;
                            item.CREATE_DATE   = formData.CREATE_DATE;
                            item.MODIFIED_BY   = formData.MODIFIED_BY;
                            item.MODIFIED_DATE = formData.MODIFIED_DATE;
                            MVMMappingService.MoveData(item, _entAssignUserRoleItem);
                            _entAssignUserRoleItem.USERID = formData.AssignUserCode;

                            if (item.DeleteFlag)
                            {
                                if (_entAssignUserRoleItem.ID != 0)
                                {
                                    context.Entry(_entAssignUserRoleItem).State = System.Data.Entity.EntityState.Deleted;
                                    context.SaveChanges();
                                }
                            }
                            else
                            {
                                if (_entAssignUserRoleItem.ID != 0)
                                {
                                    context.Entry(_entAssignUserRoleItem).State = System.Data.Entity.EntityState.Modified;
                                }
                                else
                                {
                                    context.UserRoles.Add(_entAssignUserRoleItem);
                                }
                                context.SaveChanges();
                            }

                            //context.SaveChanges();
                        }
                        #region Manage UserSignature

                        ////UserSignature
                        //var _entUserSignature = new UserSignature();

                        //_entUserSignature.Username = formData.UserName;
                        //_entUserSignature.CreateBy = formData.CREATE_BY;
                        //_entUserSignature.CreateDate = formData.CREATE_DATE;
                        //_entUserSignature.LastModifyBy = formData.MODIFIED_BY;
                        //_entUserSignature.LastModifyDate = formData.MODIFIED_DATE;
                        //_entUserSignature.SignatureFileName = formData.Photo.PhotoSavedFilename;
                        //if (formData.Photo.DeletedPhotoFlag)
                        //{
                        //    if (signal != null)
                        //    {
                        //        context.Entry(signal).State = System.Data.Entity.EntityState.Deleted;
                        //        context.SaveChanges();
                        //    }
                        //}
                        //else
                        //{
                        //    if (!string.IsNullOrEmpty(formData.Photo.PhotoSavedFilename))
                        //    {
                        //        if (signal != null)
                        //        {
                        //            context.Entry(_entUserSignature).State = System.Data.Entity.EntityState.Modified;
                        //        }
                        //        else
                        //        {
                        //            context.UserSignatures.Add(_entUserSignature);
                        //        }
                        //        context.SaveChanges();

                        //    }
                        //}
                        #endregion
                    }


                    //Commit Header and Item
                    scope.Complete();

                    //Manage photo file
                    ManagePhotoFile(formData);

                    result.Message     = ResourceText.SuccessfulEdit;
                    result.MessageType = "S";
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#25
0
        public static User GetUserInfo(string username, bool backgroundProcess = false)
        {
            User user = new User();

            user.ADUser = username;

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    //var employee = (from m in context.USERS
                    //                where m.ADUser == user.ADUser &&
                    //                      m.EmpStatus == "3" //Active
                    //                select m).FirstOrDefault();
                    //if (employee != null)
                    //{
                    //    user.UserType = ConstantVariableService.UserTypeEmployee;
                    //    user.UserCode = employee.EmpNo;
                    //    user.DisplayNameTH = employee.TitleTH + employee.FirstnameTH + " " + employee.LastnameTH;
                    //    user.DisplayNameEN = employee.TitleEN + employee.FirstnameEN + " " + employee.LastnameEN;
                    //    user.Email = employee.Email;
                    //}


                    ////Not employee then check with agent
                    //if (string.IsNullOrEmpty(user.UserCode))
                    //{
                    //    var agent = (from m in context.AgentInfoes
                    //                 join n in context.AgentMasters on m.AgentCode equals n.AgentCode
                    //                 where m.ADUser == user.ADUser &&
                    //                       m.Status == ConstantVariableService.AgentStatusOpen
                    //                 select new { AgentInfo = m, AgentMaster = n }).FirstOrDefault();
                    //    if (agent != null)
                    //    {
                    //        user.UserType = ConstantVariableService.UserTypeAgent;
                    //        user.UserCode = agent.AgentMaster.AgentCode;
                    //        user.DisplayNameTH = agent.AgentMaster.Name;
                    //        user.DisplayNameEN = agent.AgentInfo.NameEN;
                    //        user.Email = agent.AgentInfo.Email;
                    //    }
                    //}


                    ////Not employee, agent then check with external audit
                    //if (string.IsNullOrEmpty(user.UserCode))
                    //{
                    //    var today = DateTime.Today;
                    //    var externalAudit = (from m in context.ExternalAudits
                    //                         where m.ADUser == user.ADUser &&
                    //                               m.ADuserStartDate <= today &&
                    //                               m.ADUserEndDate >= today
                    //                         select m).FirstOrDefault();
                    //    if (externalAudit != null)
                    //    {
                    //        user.UserType = ConstantVariableService.UserTypeExternalAudit;
                    //        user.UserCode = externalAudit.ExternalAuditCode;
                    //        user.DisplayNameTH = externalAudit.NameTH;
                    //        user.DisplayNameEN = externalAudit.NameEN;
                    //        user.Email = externalAudit.Email;
                    //    }
                    //}

                    //Not employee, agent then check with user employee
                    if (string.IsNullOrEmpty(user.UserCode))
                    {
                        var today = DateTime.Today;
                        var emp   = (from m in context.USERS
                                     where m.USERNAME == username
                                     select m).FirstOrDefault();



                        if (emp != null)
                        {
                            user.UserType      = "";
                            user.UserCode      = emp.USERID;
                            user.DisplayNameTH = emp.NAME;
                            user.DisplayNameEN = emp.NAME;
                            user.Email         = emp.Email;

                            var userRole = (from r in context.UserRoles
                                            where r.USERID == user.UserCode
                                            select r).FirstOrDefault();

                            var compositeRole = (from n in context.AppCompositeRoles
                                                 select n).ToList();

                            var chkAuthirizeAdmin = compositeRole.Where(c => c.ID == (userRole == null?0: userRole.CompositeRoleID)).FirstOrDefault();


                            user.AuthorizeAdmin = (chkAuthirizeAdmin == null?"": chkAuthirizeAdmin.Name);
                        }
                    }

                    if (!backgroundProcess)
                    {
                        if (!string.IsNullOrEmpty(user.UserCode))
                        {
                            user.RoleList     = GetRole(username);
                            user.SideMenuHTML = GetSideMenuHTML(user);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

//            For test role for display only
//            if (string.Equals(username, "BOONRAWD_LOCAL\\user_spst04", StringComparison.OrdinalIgnoreCase))
//                {
//                    user.RoleList = GetDisplaySingleRole();
//                    user.SideMenuHTML = GetSideMenuHTML(user);
//                }
//            End for test role display only


            //user.RoleList = GetRole(username);
            //user.SideMenuHTML = GetSideMenuHTML(user);

            return(user);
        }
示例#26
0
        public override ValidationResult SaveEdit(PaymentItemsViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                result = ValidateFormData(formData, modelState);
                //Error
                if (result.ErrorFlag)
                {
                    return(result);
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    PAYMENT_ITEMS entPYMItems = new PAYMENT_ITEMS();



                    //Copy data from viewmodel to model - for header
                    MVMMappingService.MoveData(formData, entPYMItems);

                    //Save Header
                    using (var context = new PYMFEEEntities())
                    {
                        context.Entry(entPYMItems).State = System.Data.Entity.EntityState.Modified;
                        context.SaveChanges();


                        #region Update any Table
                        //Update

                        //#region //FEE_ACCRUED_PLAN_ITEM
                        //var entaccr = context.FEE_ACCRUED_PLAN_ITEM.Where(m => m.PAYMENT_ITEMS_NAME == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entaccr)
                        //{
                        //    FEE_ACCRUED_PLAN_ITEM ent_accr_item = new FEE_ACCRUED_PLAN_ITEM();
                        //    ent_accr_item = context.FEE_ACCRUED_PLAN_ITEM.Find(accr.ACCRUED_ITEM_ID) ;
                        //    ent_accr_item.PAYMENT_ITEMS_NAME = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.CCT_CODE = entPYMItems.CCT_CODE;
                        //    ent_accr_item.COST_CENTER = entPYMItems.COST_CENTER;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    ent_accr_item.CHANNELS = entPYMItems.CHANNELS;
                        //    context.FEE_ACCRUED_PLAN_ITEM.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion
                        //#region//FEE_ACCRUED_PLAN_ITEM_SUB
                        //var entaccrsub = context.FEE_ACCRUED_PLAN_ITEM_SUB.Where(m => m.PAYMENT_ITEMS_NAME == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entaccrsub)
                        //{
                        //    FEE_ACCRUED_PLAN_ITEM_SUB ent_accr_item = new FEE_ACCRUED_PLAN_ITEM_SUB();
                        //    ent_accr_item = context.FEE_ACCRUED_PLAN_ITEM_SUB.Find(accr.ID);
                        //    ent_accr_item.PAYMENT_ITEMS_NAME = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.CCT_CODE = entPYMItems.CCT_CODE;
                        //    ent_accr_item.COST_CENTER = entPYMItems.COST_CENTER;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    ent_accr_item.CHANNELS = entPYMItems.CHANNELS;
                        //    context.FEE_ACCRUED_PLAN_ITEM_SUB.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion
                        //#region //FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG
                        //var entaccrup = context.FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG.Where(m => m.FEE == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entaccrup)
                        //{
                        //    FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG ent_accr_item = new FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG();
                        //    ent_accr_item = context.FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG.Find(accr.ID);
                        //    ent_accr_item.FEE = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.CCT_CODE = entPYMItems.CCT_CODE;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    context.FEE_ACCRUED_PLAN_UPLOAD_ITEM_LOG.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion
                        //#region//FEE_INVOICE
                        //var entinv = context.FEE_INVOICE.Where(m => m.PAYMENT_ITEMS_NAME == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entinv)
                        //{
                        //    FEE_INVOICE ent_accr_item = new FEE_INVOICE();
                        //    ent_accr_item = context.FEE_INVOICE.Find(accr.ID);
                        //    ent_accr_item.PAYMENT_ITEMS_NAME = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.CCT_CODE = entPYMItems.CCT_CODE;
                        //    ent_accr_item.COST_CENTER = entPYMItems.COST_CENTER;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    ent_accr_item.CHANNELS = entPYMItems.CHANNELS;
                        //    context.FEE_INVOICE.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion
                        //#region //FEE_INVOICE_ITEM
                        //var entinvitem = context.FEE_INVOICE_ITEM.Where(m => m.PAYMENT_ITEMS_NAME == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entinvitem)
                        //{
                        //    FEE_INVOICE_ITEM ent_accr_item = new FEE_INVOICE_ITEM();
                        //    ent_accr_item = context.FEE_INVOICE_ITEM.Find(accr.INV_ITEM_NO);
                        //    ent_accr_item.PAYMENT_ITEMS_NAME = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.COST_CENTER = entPYMItems.COST_CENTER;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    ent_accr_item.CHANNELS = entPYMItems.CHANNELS;
                        //    context.FEE_INVOICE_ITEM.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion
                        //#region//FEE_INVOICE_UPLOAD_ITEM_LOG
                        //var entinvtup = context.FEE_INVOICE_UPLOAD_ITEM_LOG.Where(m => m.FEE == entPYMItems.PAYMENT_ITEMS_NAME && m.COMPANY_CODE == entPYMItems.COMPANY_CODE).ToList();
                        //foreach (var accr in entinvtup)
                        //{
                        //    FEE_INVOICE_UPLOAD_ITEM_LOG ent_accr_item = new FEE_INVOICE_UPLOAD_ITEM_LOG();
                        //    ent_accr_item = context.FEE_INVOICE_UPLOAD_ITEM_LOG.Find(accr.ID);
                        //    ent_accr_item.FEE = entPYMItems.PAYMENT_ITEMS_NAME;
                        //    ent_accr_item.CCT_CODE = entPYMItems.CCT_CODE;
                        //    ent_accr_item.FUND_CODE = entPYMItems.FUND_CODE;
                        //    ent_accr_item.GL_ACCOUNT = entPYMItems.GL_ACCOUNT;
                        //    ent_accr_item.CHANNELS = entPYMItems.CHANNELS;
                        //    context.FEE_INVOICE_UPLOAD_ITEM_LOG.Attach(ent_accr_item);
                        //    context.Entry(ent_accr_item).State = System.Data.Entity.EntityState.Modified;
                        //    context.SaveChanges();

                        //}
                        //#endregion

                        #endregion
                        //Save Item
                        int sequence = 1;

                        foreach (var item in formData.pymItemsChargeList)
                        {
                            var entPYMItemsCharge = new PAYMENT_ITEMS_CHAGE();
                            item.PAYMENT_ITEMS_ID   = entPYMItems.ID;
                            item.SEQUENCE           = sequence;
                            item.COMPANY_CODE       = formData.COMPANY_CODE;
                            item.PAYMENT_ITEMS_NAME = formData.PAYMENT_ITEMS_NAME;
                            MVMMappingService.MoveData(item, entPYMItemsCharge);
                            if (item.DeleteFlag)
                            {
                                ValidationResult resultdel = new ValidationResult();
                                resultdel = ValidateDeleteData(formData);
                                //Error
                                if (resultdel.ErrorFlag)
                                {
                                    return(resultdel);
                                }
                                else
                                {
                                    if (entPYMItemsCharge.ID != 0)
                                    {
                                        //Delete item
                                        context.Entry(entPYMItemsCharge).State = System.Data.Entity.EntityState.Deleted;
                                        context.SaveChanges();
                                    }
                                }
                            }
                            else
                            {
                                entPYMItemsCharge.SEQUENCE = sequence;
                                sequence++;
                                if (entPYMItemsCharge.ID != 0)
                                {
                                    context.Entry(entPYMItemsCharge).State = System.Data.Entity.EntityState.Modified;
                                }
                                else
                                {
                                    context.PAYMENT_ITEMS_CHAGE.Add(entPYMItemsCharge);
                                }
                            }

                            context.SaveChanges();
                        }
                    }

                    //Commit Header and Item
                    scope.Complete();

                    result.Message     = ResourceText.SuccessfulEdit;
                    result.MessageType = "S";
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#27
0
        public List <DahsboardBarchartViewModel> GetDataBarchartChannels()
        {
            List <DahsboardBarchartViewModel> dashboardList = new List <DahsboardBarchartViewModel>();

            try
            {
                using (var contex = new PYMFEEEntities())
                {
                    var ent_inv = (from m in contex.FEE_INVOICE
                                   orderby m.INV_MONTH, m.INV_YEAR
                                   select m).ToList();

                    var max_acc = (from m in contex.FEE_ACCRUED_PLAN_ITEM
                                   orderby m.INV_MONTH, m.INV_YEAR
                                   select m).ToList();

                    var ent_pym = (from m in contex.PAYMENT_ITEMS
                                   select m).ToList();
                    var get_pym = ent_pym.GroupBy(g => g.PAYMENT_ITEMS_NAME).ToList();


                    var getmax_acc = (max_acc.Any() ? max_acc.Max(n => (n.ACCRUED_YEAR * 12) + n.ACCRUED_MONTH) : 0);
                    var ent_acc    = (from m in contex.FEE_ACCRUED_PLAN_ITEM
                                      where ((m.ACCRUED_YEAR * 12) + m.ACCRUED_MONTH) == getmax_acc
                                      orderby m.INV_MONTH, m.INV_YEAR
                                      select m).ToList();
                    int monthS = 1;
                    int monthE = DateTime.Now.Month;

                    int yearS = 2018;
                    int yearE = DateTime.Now.Year;

                    int diffMonth = (((yearE * 12) + monthE) - ((yearS * 12) + monthS)) + 1;

                    int mnth         = monthS;
                    int yr           = yearS;
                    var culture      = CultureInfo.GetCultureInfo("en-US");
                    var dateTimeInfo = DateTimeFormatInfo.GetInstance(culture);


                    foreach (var item in get_pym)
                    {
                        var get_pymLst = ent_pym.Where(p => p.PAYMENT_ITEMS_NAME == item.Key).ToList();

                        //for (int i = 1; i <= diffMonth; i++)
                        //{
                        //    if (mnth == 13)
                        //    {
                        //        mnth = 1;
                        //        yr++;
                        //    }
                        var get_inv = ent_inv.Where(m => get_pymLst.Any(o => m.PAYMENT_ITEMS_CODE == o.PAYMENT_ITEMS_CODE)
                                                    //&&((m.INV_YEAR * 12) + m.INV_MONTH) == ((yr * 12) + mnth)
                                                    ).ToList();

                        var get_acc = ent_acc.Where(m => get_pymLst.Any(o => m.PAYMENT_ITEMS_CODE == o.PAYMENT_ITEMS_CODE)
                                                    //&&((m.INV_YEAR * 12) + m.INV_MONTH) == ((yr * 12) + mnth)
                                                    ).ToList();

                        decimal act = get_inv.Any() ? get_inv.Sum(s => (s.NET_AMOUNT ?? 0)) : 0;
                        decimal acc = get_acc.Any() ? get_acc.Sum(s => (s.INV_AMOUNT ?? 0)) : 0;


                        decimal sumall = act + acc;

                        decimal sumact = (sumall == 0) ? 0 : (act / sumall) * 100;
                        decimal sumacc = (sumall == 0) ? 0 : (acc / sumall) * 100;

                        sumact = Math.Round(sumact, 2, MidpointRounding.AwayFromZero);
                        sumacc = Math.Round(sumacc, 2, MidpointRounding.AwayFromZero);
                        DahsboardBarchartViewModel model = new DahsboardBarchartViewModel();

                        model.PriceCatalog = item.Key;

                        model.Actual  = sumact;
                        model.Accrued = sumacc;
                        //model.MonthNameFee = dateTimeInfo.AbbreviatedMonthNames[mnth - 1] + yr.ToString().Substring(2, 2);
                        //CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(mnth)+yr.ToString().Substring(2,2);
                        model.MonthFee = 100;


                        dashboardList.Add(model);

                        //    mnth++;
                        //}
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(dashboardList);
        }
示例#28
0
        public ValidationResult Login(AuthenticationViewModel authen, HttpResponseBase response)
        {
            ValidationResult result     = new ValidationResult();
            string           domainUser = "";

            result.ErrorFlag = true;

            //Clear previous login data
            this.Logout(response);

            byte[] passwordBytes     = MachineKey.Protect(Encoding.UTF8.GetBytes(authen.Password), WebConfigurationManager.AppSettings["UserdataSALT"]);
            string protectedPassword = UtilityService.ConvertBytesToString(passwordBytes);

#if DEBUG
            //Test convert bytes to string and decode
            string enct = UtilityService.ConvertBytesToString(passwordBytes);
            byte[] enc2 = UtilityService.ConvertStringToBytes(enct);

            byte[] dc             = MachineKey.Unprotect(enc2, WebConfigurationManager.AppSettings["UserdataSALT"]);
            string originalString = Encoding.UTF8.GetString(dc);

            result.ErrorFlag = false;
            domainUser       = authen.Username;
            #region mark
            //if (authen.Username.StartsWith("user", StringComparison.OrdinalIgnoreCase))
            //{
            //    domainUser = WebConfigurationManager.AppSettings["EmployeeDomain"] + authen.Username;
            //}
            //else if (authen.Username.StartsWith("agent", StringComparison.OrdinalIgnoreCase))
            //{
            //    domainUser = WebConfigurationManager.AppSettings["AgentDomain"] + authen.Username;
            //}
            //else if (authen.Username.StartsWith("audit", StringComparison.OrdinalIgnoreCase))
            //{
            //    domainUser = WebConfigurationManager.AppSettings["ExternalAuditDomain"] + authen.Username;
            //}
            #endregion

            string userData = string.Empty;
            using (var context = new PYMFEEEntities())
            {
                var validUser = context.ValidateUser(authen.Username, authen.Password).FirstOrDefault();

                if (!validUser.Equals("Non", StringComparison.OrdinalIgnoreCase))
                {
                    var userDataList = UserService.GetRole(authen.Username);
                    if (userDataList.Any())
                    {
                        userData = string.Join(",", userDataList.Select(m => m.RoleID).ToList());
                    }

                    result.ErrorFlag = false;
                }
                else
                {
                    result.Message = ValidatorMessage.login_fail;
                    result.ModelStateErrorList.Add(new ModelStateError("", ValidatorMessage.login_fail));
                    result.ErrorFlag = true;
                }
            }
            //FormsAuthentication.SetAuthCookie(authen.Username, false);

            //var debugTicket = new FormsAuthenticationTicket(1, authen.Username, DateTime.Now, DateTime.Now.AddMinutes(20), false, "Role_MA_Invoice,Role_DS_Invoice");
            //string encryptedDebugTicket = FormsAuthentication.Encrypt(debugTicket);
            //var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedDebugTicket);
            //response.Cookies.Add(authCookie);

            FormsAuthenticationTicket debugTicket = new FormsAuthenticationTicket
                                                    (
                1,                                             // version
                domainUser,                                    // name
                DateTime.Now,                                  // issueDate
                DateTime.Now.Add(FormsAuthentication.Timeout), // expiration
                false,                                         // isPersistent
                userData,                                      //"Role_MA_Invoice,Role_DS_Invoice",//protectedPassword, // userData
                FormsAuthentication.FormsCookiePath            // cookiePath
                                                    );

            string encryptedDebugTicket = FormsAuthentication.Encrypt(debugTicket);

            var debugCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedDebugTicket)
            {
                HttpOnly = true, // always set this to true!
                Secure   = false,
            };

            //GenericIdentity identity = new GenericIdentity(authen.Username);
            //string[] roles = { debugCookie.Value }; //or do it from the person object
            //GenericPrincipal principal = new System.Security.Principal.GenericPrincipal(identity, roles);
            //HttpContext.Current.User = principal;

            ////response.Cookies.Set(cookie);
            // Create the cookie.
            response.Cookies.Add(debugCookie);


            return(result);
#endif

            try
            {
                string systemID = WebConfigurationManager.AppSettings["SystemID"];
                //string url = "";
                //byte[] responseBytes;
                //string responsefromserver;
                //JObject json;
                //string checkResult;
                bool   loginOk      = false;
                string loginMessage = ValidatorMessage.login_fail;

                //Encode password to base64
                var passwordUTF8   = System.Text.Encoding.UTF8.GetBytes(authen.Password);
                var passwordBase64 = System.Convert.ToBase64String(passwordUTF8);


                using (WebClient webClient = new WebClient())
                {
                    NameValueCollection formData = new NameValueCollection();
                    formData["username"]  = authen.Username;
                    formData["password"]  = passwordBase64;
                    formData["system_id"] = systemID;

                    //    //First authenticate with employee
                    //    url = WebConfigurationManager.AppSettings["ADEmployeeURL"];
                    //    responseBytes = webClient.UploadValues(url, "POST", formData);
                    //    responsefromserver = Encoding.UTF8.GetString(responseBytes);

                    //    json = JObject.Parse(responsefromserver);
                    //    checkResult = json["result"].Value<string>();

                    //    if (string.Equals(checkResult, "success", StringComparison.OrdinalIgnoreCase))
                    //    {
                    //        domainUser = WebConfigurationManager.AppSettings["EmployeeDomain"] + authen.Username;
                    //        loginOk = true;
                    //    }

                    //    if (!loginOk)
                    //    {
                    //        //Second authenticate with agent
                    //        url = WebConfigurationManager.AppSettings["ADAgentURL"];
                    //        responseBytes = webClient.UploadValues(url, "POST", formData);
                    //        responsefromserver = Encoding.UTF8.GetString(responseBytes);

                    //        json = JObject.Parse(responsefromserver);
                    //        checkResult = json["result"].Value<string>();

                    //        if (string.Equals(checkResult, "success", StringComparison.OrdinalIgnoreCase))
                    //        {
                    //            domainUser = WebConfigurationManager.AppSettings["AgentDomain"] + authen.Username;
                    //            loginOk = true;
                    //        }
                    //    }

                    //    if (!loginOk)
                    //    {
                    //        //Third authenticate with external audit
                    //        url = WebConfigurationManager.AppSettings["ADExternalAuditURL"];
                    //        responseBytes = webClient.UploadValues(url, "POST", formData);
                    //        responsefromserver = Encoding.UTF8.GetString(responseBytes);

                    //        json = JObject.Parse(responsefromserver);
                    //        checkResult = json["result"].Value<string>();

                    //        if (string.Equals(checkResult, "success", StringComparison.OrdinalIgnoreCase))
                    //        {
                    //            domainUser = WebConfigurationManager.AppSettings["ExternalAuditDomain"] + authen.Username;
                    loginOk = true;
                    //        }
                    //    }

                    //Check UserRole

                    string _userData = string.Empty;
                    if (loginOk)
                    {
                        using (var context = new PYMFEEEntities())
                        {
                            var userDataList = UserService.GetRole(authen.Username);
                            if (userDataList.Any())
                            {
                                _userData = string.Join(",", userDataList.Select(m => m.RoleID).ToList());
                            }
                            var    entUser          = (from m in context.USERS where m.USERNAME == authen.Username select m).FirstOrDefault();
                            string userId           = entUser == null ? "" : entUser.USERID;
                            var    userCompRoleList = (from m in context.UserRoles
                                                       join n in context.AppCompositeRoles on m.CompositeRoleID equals n.ID
                                                                                //Older UserName
                                                       where m.USERID == userId //&&
                                                                                //n.Status == ConstantVariableService.ConfigStatusActive
                                                       select m).ToList();

                            if (!userCompRoleList.Any())
                            {
                                loginOk      = false;
                                loginMessage = ValidatorMessage.login_fail_no_user_role;
                            }
                        }
                    }

                    if (!loginOk)
                    {
                        result.Message = ValidatorMessage.login_fail;
                        result.ModelStateErrorList.Add(new ModelStateError("", loginMessage));
                        result.ErrorFlag = true;
                    }
                    else
                    {
                        result.ErrorFlag = false;

                        //Set cookie
                        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket
                                                           (
                            1,                                             // version
                            authen.Username,                               //domainUser, // name
                            DateTime.Now,                                  // issueDate
                            DateTime.Now.Add(FormsAuthentication.Timeout), // expiration
                            false,                                         // isPersistent
                            _userData,                                     //protectedPassword, // userData
                            FormsAuthentication.FormsCookiePath            // cookiePath
                                                           );

                        string encryptedTicket = FormsAuthentication.Encrypt(ticket);

                        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
                        {
                            HttpOnly = true, // always set this to true!
                            Secure   = false,
                        };

                        // Create the cookie.
                        response.Cookies.Add(cookie);
                    }
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }
示例#29
0
        public List <AccruedDetailReportViewModel> GetInvoiceList()
        {
            List <AccruedDetailReportViewModel> modelList = new List <AccruedDetailReportViewModel>();

            try
            {
                using (var context = new PYMFEEEntities())
                {
                    var ent_company = (from m in context.COMPANies where m.IsPaymentFee == true select m).ToList();

                    var ent_invList = (from m in context.FEE_INVOICE orderby m.INV_MONTH, m.INV_YEAR select m).ToList();

                    //var ent_invItemList = (from m in context.FEE_INVOICE_ITEM orderby m.INV_MONTH, m.INV_YEAR select m).ToList();

                    var ent_pymList = (from m in context.PAYMENT_ITEMS where m.IS_ACTIVE == true orderby m.GROUP_SEQ_CHANNELS select m).ToList();

                    //var ent_pymChargeList = (from m in context.PAYMENT_ITEMS_CHAGE select m).ToList();


                    string getComp = "TI";

                    var get_invList = (from m in ent_invList where m.INV_MONTH >= 1 && m.INV_MONTH <= DateTime.Now.Date.Month && m.COMPANY_CODE == getComp select m).ToList();

                    ent_pymList = ent_pymList.Where(m => m.COMPANY_CODE == getComp).ToList();

                    var culture      = CultureInfo.GetCultureInfo("en-US");
                    var dateTimeInfo = DateTimeFormatInfo.GetInstance(culture);
                    var get_month    = (DateTime.Now.Date.Year * 12 + DateTime.Now.Date.Month) - (DateTime.Now.Date.Year * 12 + 1);

                    foreach (var item in ent_pymList)
                    {
                        var data_inv = get_invList.Where(m => m.PAYMENT_ITEMS_CODE == item.PAYMENT_ITEMS_CODE).ToList();

                        var model = new AccruedDetailReportViewModel();
                        model.FEE = "Inv. No.";
                        for (int i = 0; i <= get_month; i++)
                        {
                            string inv = "";
                            //Convert.ToString(string.Format("{0:#,##0.####}", amt)));
                            var data_invMonth = data_inv.Where(m => m.INV_MONTH == i + 1 && m.INV_YEAR == DateTime.Now.Date.Year).FirstOrDefault();
                            inv = data_invMonth == null ? "" : data_invMonth.INV_NO;
                            string monthIndex = dateTimeInfo.AbbreviatedMonthNames[i];

                            model.GetType().GetProperty(monthIndex).SetValue(model, inv);
                        }
                        model.CHARGE = "1";
                        modelList.Add(model);

                        model     = new AccruedDetailReportViewModel();
                        model.FEE = "Inv. Pro.";
                        for (int i = 0; i <= get_month; i++)
                        {
                            string pro = "";
                            //Convert.ToString(string.Format("{0:#,##0.####}", amt)));
                            var data_invMonth = data_inv.Where(m => m.INV_MONTH == i + 1 && m.INV_YEAR == DateTime.Now.Date.Year).FirstOrDefault();
                            pro = data_invMonth == null ? "" : data_invMonth.PRO_NO;
                            string monthIndex = dateTimeInfo.AbbreviatedMonthNames[i];

                            model.GetType().GetProperty(monthIndex).SetValue(model, pro);
                        }
                        model.CHARGE = "2";
                        modelList.Add(model);

                        model     = new AccruedDetailReportViewModel();
                        model.FEE = item.PAYMENT_ITEMS_NAME;
                        for (int i = 0; i <= get_month; i++)
                        {
                            decimal amt = 0;
                            //Convert.ToString(string.Format("{0:#,##0.####}", amt)));
                            var data_invMonth = data_inv.Where(m => m.INV_MONTH == i + 1 && m.INV_YEAR == DateTime.Now.Date.Year).FirstOrDefault();
                            amt = data_invMonth == null ?0 :(data_invMonth.NET_AMOUNT ?? 0);
                            string monthIndex = dateTimeInfo.AbbreviatedMonthNames[i];

                            model.GetType().GetProperty(monthIndex).SetValue(model, Convert.ToString(string.Format("{0:#,##0.####}", amt)));
                        }
                        model.CHARGE = "3";
                        modelList.Add(model);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(modelList);
        }
示例#30
0
        public override ValidationResult SaveEdit(AppCompositeRoleViewModel formData, ModelStateDictionary modelState)
        {
            ValidationResult result = new ValidationResult();

            try
            {
                result = ValidateFormData(formData, modelState);
                //Error
                if (result.ErrorFlag)
                {
                    return(result);
                }

                if (formData.ID <= 0)
                {
                    result.Message = ValidatorMessage.id_not_found;
                    result.ModelStateErrorList.Add(new ModelStateError("", result.Message));
                    result.ErrorFlag = true;
                    return(result);
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    using (var context = new PYMFEEEntities())
                    {
                        var appCompositeRole = new AppCompositeRole();
                        MVMMappingService.MoveData(formData, appCompositeRole);
                        context.Entry(appCompositeRole).State = System.Data.Entity.EntityState.Modified;
                        context.SaveChanges();

                        //Delete Items
                        context.AppCompositeRoleItems.RemoveRange(context.AppCompositeRoleItems.Where(m => m.CompositeRoleID == appCompositeRole.ID).ToList());
                        context.SaveChanges();

                        //Save Items
                        if (appCompositeRole.ID > 0)
                        {
                            List <string> roleList = new List <string>();
                            if (!string.IsNullOrEmpty(formData.AppMenuSelectedJSON))
                            {
                                roleList = GetRoleListFromJSON(formData.AppMenuSelectedJSON);
                                List <AppCompositeRoleItem> items = new List <AppCompositeRoleItem>();
                                foreach (var role in roleList)
                                {
                                    if (string.IsNullOrEmpty(role))
                                    {
                                        continue;
                                    }
                                    var item = new AppCompositeRoleItem();
                                    item.CompositeRoleID = appCompositeRole.ID;
                                    item.RoleID          = role;
                                    items.Add(item);
                                }
                                if (items.Count > 0)
                                {
                                    context.AppCompositeRoleItems.AddRange(items);
                                    context.SaveChanges();
                                }
                            }
                        }//End Save Items

                        scope.Complete();
                    }//End Transaction
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.ModelStateErrorList.Add(new ModelStateError("", ex.ToString()));
                result.ErrorFlag = true;
            }

            return(result);
        }