Пример #1
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var i   = 0;
            var res = (from r in results
                       select new
            {
                Id = i++,
                r.TableName,
                r.CodeName,
                r.Value1,
                Value2 = r.Value2 ?? "",
                Value3 = r.Value3 ?? "",
                Order = r.DisplayOrder ?? "",
                Status = r.Status ? "check colorGreen" : "close colorRed",
                Protected = r.IsProtected ? "lock colorRed" : "unlock-alt colorGreen"
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #2
0
        public EmployeeVm Init(long userId, long?id)
        {
            var user = BlUser.LoadSingle(userId);

            var toRet = new EmployeeVm
            {
                Branches   = BlBranch.GetLov(userId, true).ToDictionary(i => i.value, i => i.label),
                Titles     = BlCode.LoadTable(userId, "Title"),
                Genders    = BlCode.LoadTable(userId, "Gender"),
                IdTypes    = BlCode.LoadTable(userId, "IdType"),
                Maritals   = BlCode.LoadTable(userId, "Marital"),
                Statuses   = BlCode.LoadTable(userId, "Status"),
                Levels     = BlCode.LoadTable(userId, "EmployeeLevel"),
                ActionMode = Enumerations.ActionMode.Add,
                Employee   = new Employee {
                    Status = "A", Entity = new Entity {
                        BranchId = user.BranchId, Nationality = 422, Status = "A"
                    }, Level = "0"
                }
            };

            if (id != null)
            {
                var obj = LoadSingle(userId, Convert.ToInt64(id));
                toRet.Employee   = obj;
                toRet.ActionMode = Enumerations.ActionMode.Edit;
                toRet.Signature  = BlCommon.GetSignature(toRet.Employee.UserId, toRet.Employee.EntryDate);
            }

            return(toRet);
        }
Пример #3
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                ModuleId = r.Module.Id,
                r.Action,
                Text = r.Text ?? "",
                User = r.UserId == 0 ? "" : BlUser.LoadSingle(r.UserId).UserName,
                branch = BlBranch.GetBranchName(user.Id, r.BranchId),
                LogDate = r.EntryDate.ToString(true)
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #4
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                Gender = r.Entity.Gender == null ? "" : BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "Gender", r.Entity.Gender)),
                Name = BlEntity.FormatFullName(r.Entity),
                Number = r.Entity.IdType == "M" ? r.Entity.IdNum : "",
                r.Entity.FullEnLongName,
                Level = r.Level == null ? "" : BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "EmployeeLevel", r.Level)),
                Status = r.Status == "A" ? "check colorGreen" : "close colorRed"
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #5
0
        public static DdlVm.DdlOption LoadQs(long userId, long id, string parameters)
        {
            var user       = BlUser.LoadSingle(userId);
            var serializer = new JavaScriptSerializer();
            var dict       = serializer.Deserialize <Dictionary <string, object> >(parameters);
            var returnPin  = CheckEmpty.Boolean(ref dict, "returnPin");
            var item       = returnPin ? LoadByPin(userId, id) : LoadSingle(userId, id);

            return(FormatForQs(user.LanguageId, item, returnPin));
        }
Пример #6
0
        private static IEnumerable <TreeItemVm> ConstructTreeNode(long userId, IEnumerable <Help> helps, bool allowView, bool allowAdd, bool allowEdit, bool allowDelete)
        {
            var user  = BlUser.LoadSingle(userId);
            var toRet = new List <TreeItemVm>();

            foreach (var help in helps)
            {
                TreeItemVm treeNode;
                var        actions = "</span>";
                actions += "<span id='actions_" + help.Id + "' style='display:none'>&nbsp;";
                actions += "<a class='treeAction' onclick='javascript:ViewAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblView", user.LanguageId) + "</span></a>&nbsp;";

                if (allowAdd)
                {
                    actions += "<a class='treeAction' onclick='javascript:AddAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblAdd", user.LanguageId) + "</span></a>&nbsp;";
                }
                if (allowEdit)
                {
                    actions += "<a class='treeAction' onclick='javascript:EditAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblEdit", user.LanguageId) + "</span></a>&nbsp;";
                }
                if (allowDelete)
                {
                    actions += "<a class='treeAction' onclick='javascript:DeleteAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblDelete", user.LanguageId) + "</span></a>&nbsp;";
                }
                actions += "<span>";

                if (help.Id == 0)
                {
                    treeNode = new TreeItemVm
                    {
                        id      = "0",
                        parent  = "#",
                        text    = "<span onclick='ShowDetails(0);'>Root" + actions + "</span>",
                        icon    = "fa fa-briefcase fa-lg colorMain",
                        state   = "{\"opened\": \"true\"}",
                        li_attr = "{\"class\" : \"form-control-label\"}"
                    };
                }
                else
                {
                    treeNode = new TreeItemVm
                    {
                        id      = help.Id.ToUiString(),
                        parent  = help.ParentId == null ? "0" : help.ParentId.ToString(),
                        text    = "<span onclick='ShowDetails(" + help.Id + ");'>" + (help.Title == "" ? Path.GetFileNameWithoutExtension(help.Page) : help.Title) + actions + "</span>",
                        icon    = "fa fa-info fa-lg colorMain",
                        li_attr = "{\"class\" : \"form-control-label\"}"
                    };
                }
                toRet.Add(treeNode);
            }
            return(toRet);
        }
Пример #7
0
        private static DdlVm.DdlOption FormatForQs(long userId, Code item)
        {
            var user = BlUser.LoadSingle(userId);

            var toRet = new DdlVm.DdlOption
            {
                value = item.CodeName,
                label = user.LanguageId == 1 ? item.Value1 : item.Value2
            };

            return(toRet);
        }
Пример #8
0
        public Log Create(long userId, Log toAdd)
        {
            using (var tran = new TransactionScope())
            {
                toAdd.UserId    = userId;
                toAdd.BranchId  = BlUser.LoadSingle(toAdd.UserId).BranchId;
                toAdd.EntryDate = BlCommon.GetServerDateTime();
                var toRet = _repository.Create(toAdd);

                tran.Complete();
                return(toRet);
            }
        }
Пример #9
0
        private static void PreSave(long userId, ref Xtra toSave, Enumerations.ActionMode action)
        {
            var user = BlUser.LoadSingle(userId);

            if (action == Enumerations.ActionMode.Add)
            {
                //Check if previously exists
                if (LoadSingle(userId, toSave.Object, toSave.Id, toSave.Property) != null)
                {
                    throw new BusinessException("AlreadyExists1", BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblProperty", user.LanguageId));
                }
            }
        }
Пример #10
0
        public static string GetBranchName(long userId, long branchId)
        {
            var user   = BlUser.LoadSingle(userId);
            var branch = BlBranch.LoadSingle(user.Id, branchId);

            if (user.LanguageId == 1)
            {
                return(branch.Entity.FullEnShortName);
            }
            else
            {
                return(branch.Entity.FullArShortName);
            }
        }
Пример #11
0
        public bool AddLocation(long userId, long employeeId, long locationId)
        {
            var user = BlUser.LoadSingle(userId);

            using (var tran = new TransactionScope())
            {
                var employee = LoadSingle(userId, employeeId);

                //Adjust the employee
                Edit(userId, employee);

                tran.Complete();
                return(true);
            }
        }
Пример #12
0
        public static List <DdlVm.DdlOption> GetLov(long userId, string operation, bool required, string relCode = "")
        {
            if (operation.ToUpper() == "CODETABLES")
            {
                return(GetLovTables(userId, required).ToList());
            }

            if (operation.ToUpper() == "BRANCHES")
            {
                return(BlBranch.GetLov(userId, required).ToList());
            }

            var user      = BlUser.LoadSingle(userId);
            var fieldName = user.LanguageId == 1 ? "Value1" : "Value2";

            var blCode    = new BlCode();
            var predicate = PredicateBuilder.True <Code>();

            predicate = predicate.And(p => p.TableName == operation);

            if (relCode != "")
            {
                predicate = predicate.And(p => p.RelCode == relCode);
            }

            var result = blCode.LoadSearch(userId, predicate).ToList();

            if (!result.Any())
            {
                return(null);
            }

            var results = (from a in result.Where(m => m.Status)
                           orderby a.DisplayOrder ascending
                           select new DdlVm.DdlOption
            {
                value = a.CodeName,
                label = a.GetType().GetProperty(fieldName).GetValue(a, null).ToString()
            }).ToList();

            if (!required)
            {
                results.Insert(0, new DdlVm.DdlOption("...", ""));
            }

            return(results.ToList());
        }
Пример #13
0
        public static List <DdlVm.DdlOption> LoadQs(long userId, string parameters, string searchTerm, int pageSize, int pageNum, out long count)
        {
            var user     = BlUser.LoadSingle(userId);
            var blObject = new BlEmployee();

            var serializer = new JavaScriptSerializer();
            var dict       = serializer.Deserialize <Dictionary <string, object> >(parameters);
            var isActive   = CheckEmpty.Boolean(ref dict, "isActive");
            var gender     = CheckEmpty.String(ref dict, "Gender");
            var returnPin  = CheckEmpty.Boolean(ref dict, "returnPin");
            var locationId = CheckEmpty.Numeric(ref dict, "locationId");

            var predicate = PredicateBuilder.True <Employee>();

            predicate = predicate.And(p => p.Id != 1); //Exclude employee presidential palace

            if (isActive)
            {
                predicate = predicate.And(c => c.Status == "A");
            }

            if (gender != "")
            {
                predicate = predicate.And(c => gender.Split(',').Contains(c.Entity.Gender));
            }

            if (CheckEmpty.String(searchTerm) != "")
            {
                var tokens = searchTerm.Tokens();
                foreach (var token in tokens)
                {
                    var predicate2 = PredicateBuilder.False <Employee>();
                    predicate2 = predicate2.Or(m => m.Entity.FirstName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.FatherName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.FamilyName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFirstName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFatherName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFamilyName.Contains(token));
                    predicate  = predicate.And(predicate2);
                }
            }

            var items = blObject.LoadPaging(userId, predicate, pageSize, (pageNum - 1), out count);

            return(items.Select(i => FormatForQs(user.LanguageId, i, returnPin)).ToList());
        }
Пример #14
0
        public bool Delete(long userId, Comment toDelete)
        {
            using (var tran = new TransactionScope())
            {
                //Only note owner and full administrator can delete
                if (userId != toDelete.UserId && !BlUser.LoadSingle(userId).IsFullPermission)
                {
                    throw new BusinessException("NoteCannotBeDeletedUnlessByOwner");
                }

                var toRet = _repository.Delete(toDelete);

                BlLog.Log(userId, Module, "Delete comment", "CommentDleted", new object[] { toDelete.Text.ManageTextLength(100), toDelete.Reference });
                tran.Complete();
                return(toRet);
            }
        }
Пример #15
0
        public EventVm Init(long userId, long id)
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            var eventLog = LoadSingle(userId, id);
            var toRet    = new EventVm
            {
                Module   = eventLog.Module.Id,
                Action   = eventLog.Action,
                Text     = eventLog.Text,
                UserName = BlUser.LoadSingle(eventLog.UserId).UserName,
                Branch   = BlBranch.GetBranchName(user.Id, eventLog.BranchId),
                Date     = eventLog.EntryDate.ToString(true)
            };

            return(toRet);
        }
Пример #16
0
        public ErrorVm Init(long userId, long id)
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            var error = LoadSingle(userId, id);
            var toRet = new ErrorVm
            {
                Type     = BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "ErrorType", error.Type.ToUiString())),
                Severity = BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "ErrorSeverity", error.Severity.ToUiString())),
                Source   = error.Source,
                Text     = error.Text,
                UserName = BlUser.LoadSingle(error.UserId).UserName,
                Branch   = BlBranch.GetBranchName(user.Id, error.BranchId),
                Date     = error.EntryDate.ToString(true)
            };

            return(toRet);
        }
Пример #17
0
        public bool DeleteLocation(long userId, long employeeId, long locationId)
        {
            var user = BlUser.LoadSingle(userId);

            using (var tran = new TransactionScope())
            {
                var employee = LoadSingle(userId, employeeId);

                //Check if employee location had some stock in it
                //var blStock = new BlStock();
                //var employeeLocationStock = blStock.LoadByLocationEmployee(userId, locationId, employee.Id, new[] { "I" });
                //if (employeeLocationStock.Any())
                //{ throw new BusinessException("CannotDeleteRelatedStock"); }

                //Adjust the employee
                Edit(userId, employee);

                tran.Complete();
                return(true);
            }
        }
Пример #18
0
        public static List <DdlVm.DdlOption> GetLov(long userId, bool isMandatory = false)
        {
            var user           = BlUser.LoadSingle(userId);
            var canCrossBranch = BlPermission.CanDo(userId, Module, "CrossBranches");

            var blBranch  = new BlBranch();
            var predicate = PredicateBuilder.True <Branch>();

            predicate = predicate.And(p => p.Status == "A");

            //Retrieve only user branch if cannot cross branch
            if (!canCrossBranch)
            {
                predicate = predicate.And(p => p.Id == user.BranchId);
            }

            var result = blBranch.LoadSearch(userId, predicate).ToList();

            if (!result.Any())
            {
                return(null);
            }

            var results = (from a in result
                           orderby a.Name ascending
                           select new DdlVm.DdlOption
            {
                value = a.Id.ToUiString(),
                label = user.LanguageId == 1 ? a.Entity.FullEnShortName : a.Entity.FullArShortName
            }).ToList();

            //Add empty value if can cross branch
            if (canCrossBranch && !isMandatory)
            {
                results.Insert(0, new DdlVm.DdlOption("...", ""));
            }

            return(results.ToList());
        }
Пример #19
0
        public static List <DdlVm.DdlOption> LoadDdl(long userId, string parameters, string searchTerm, int pageSize, int pageNum, out long count)
        {
            var user     = BlUser.LoadSingle(userId);
            var blObject = new BlEntity();

            var serializer = new JavaScriptSerializer();
            var dict       = serializer.Deserialize <Dictionary <string, object> >(parameters);
            var isActive   = CheckEmpty.Boolean(ref dict, "isActive");
            var gender     = CheckEmpty.String(ref dict, "Gender");

            var predicate = PredicateBuilder.True <Entity>();

            if (isActive)
            {
                predicate = predicate.And(c => c.Status == "A");
            }

            if (gender != "")
            {
                predicate = predicate.And(c => gender.Split(',').Contains(c.Gender));
            }

            if (CheckEmpty.String(searchTerm) != "")
            {
                var predicate2 = PredicateBuilder.False <Entity>();
                predicate2 = predicate2.Or(m => m.FirstName.Contains(searchTerm));
                predicate2 = predicate2.Or(m => m.FatherName.Contains(searchTerm));
                predicate2 = predicate2.Or(m => m.FamilyName.Contains(searchTerm));
                predicate2 = predicate2.Or(m => m.ArFirstName.Contains(searchTerm));
                predicate2 = predicate2.Or(m => m.ArFatherName.Contains(searchTerm));
                predicate2 = predicate2.Or(m => m.ArFamilyName.Contains(searchTerm));
                predicate  = predicate.And(predicate2);
            }

            var items = blObject.LoadPaging(userId, predicate, pageSize, (pageNum - 1), out count);

            return(items.Select(i => FormatForDdl(user.LanguageId, i)).ToList());
        }
Пример #20
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadSearch(userId, CreateFilter(search));

            totalRecords = results.Count();

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                Name = r.Property,
                r.Value
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #21
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                Language = BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "Language", r.LanguageId.ToUiString())),
                Parent = BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "DescriptionParent", r.Parent)),
                r.Code,
                r.Text
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #22
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Pin,
                r.FullEnLongName,
                name = FormatFullName(r),
                EntryDate = r.EntryDate.ToString(true),
                Status = r.Status == "A" ? "check colorGreen" : "close colorRed"
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #23
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                Url = "<a class='text-primary' href=" + BlCode.LoadSingle(userId, "_System", "DocumentsRootUrl").Value1 + "documents/" + r.Path + " target='_blank' >" + r.Name + "</a>",
                Type = BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "DocumentType", r.Type)),
                EntryDate = r.EntryDate.ToString(true),
                User = r.UserId == 0 ? "" : BlUser.LoadSingle(r.UserId).UserName,
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
Пример #24
0
        public static Dictionary <string, string> LoadTable(long userId, string tableName, string toRetColumn = "Value1", string relCode = "")
        {
            var user = BlUser.LoadSingle(userId);

            toRetColumn = (toRetColumn == "Value1" || CheckEmpty.String(toRetColumn) == "") ? user.LanguageId == 1 ? "Value1" : "Value2" : toRetColumn;

            List <Code> results;

            if (!CacheHelper.Get(Module + "_Table_" + tableName + "_" + relCode, out results))
            {
                var codeRepository = new CodeRepository();
                var predicate      = PredicateBuilder.True <Code>();
                predicate = predicate.And(p => p.TableName == tableName);
                predicate = predicate.And(p => p.Status);

                if (relCode != "")
                {
                    predicate = predicate.And(p => p.RelCode == relCode);
                }

                results = codeRepository.LoadSearch(predicate);
                if (results != null)
                {
                    CacheHelper.Add(Module + "_Table_" + tableName + "_" + relCode, results, BlCommon.DefaultTimeOut());
                }
            }

            Dictionary <string, string> toRet = null;

            if (results != null)
            {
                toRet = results.ToDictionary(k => k.CodeName, v => v.GetType().GetProperty(toRetColumn).GetValue(v, null).ToString());
            }

            return(toRet);
        }
Пример #25
0
        public static DdlVm.DdlOption LoadDdl(long userId, long pin)
        {
            var user = BlUser.LoadSingle(userId);

            return(FormatForDdl(user.LanguageId, LoadSingle(userId, pin)));
        }