public ListModel <LanguageModel> List(FilterModel filterModel) { var startDate = filterModel.StartDate.ResetTimeToStartOfDay(); var endDate = filterModel.EndDate.ResetTimeToEndOfDay(); Expression <Func <Language, bool> > expression; if (filterModel.Status != -1) { var status = filterModel.Status.ToString().ToBoolean(); if (filterModel.Searched != null) { if (status) { expression = c => c.IsApproved && c.Name.Contains(filterModel.Searched); } else { expression = c => c.IsApproved == false && c.Name.Contains(filterModel.Searched); } } else { if (status) { expression = c => c.IsApproved; } else { expression = c => c.IsApproved == false; } } } else { if (filterModel.Searched != null) { expression = c => c.Name.Contains(filterModel.Searched); } else { expression = c => c.Id != Guid.Empty; } } expression = expression.And(e => e.CreationTime >= startDate && e.CreationTime <= endDate); var listModel = filterModel.CreateMapped <FilterModel, ListModel <LanguageModel> >(); listModel.Paging ??= new Paging { PageSize = filterModel.PageSize, PageNumber = filterModel.PageNumber }; var sortHelper = new SortHelper <Language>(); sortHelper.OrderBy(x => x.DisplayOrder); var query = (IOrderedQueryable <Language>)_repositoryLanguage .Get().Where(expression); query = sortHelper.GenerateOrderedQuery(query); listModel.Paging.TotalItemCount = query.Count(); var items = listModel.Paging.PageSize > 0 ? query.Skip((listModel.Paging.PageNumber - 1) * listModel.Paging.PageSize).Take(listModel.Paging.PageSize) : query; var modelItems = new HashSet <LanguageModel>(); foreach (var item in items) { var modelItem = item.CreateMapped <Language, LanguageModel>(); modelItems.Add(modelItem); } listModel.Items = modelItems.ToList(); var pageSizeDescription = _serviceMain.ApplicationSettings.PageSizeList; var pageSizes = pageSizeDescription.Split(',').Select(s => new KeyValuePair <int, string>(s.ToInt(), s)).ToList(); pageSizes.Insert(0, new KeyValuePair <int, string>(-1, "[" + Dictionary.All + "]")); listModel.Paging.PageSizes = pageSizes; listModel.Paging.PageCount = (int)Math.Ceiling((float)listModel.Paging.TotalItemCount / listModel.Paging.PageSize); if (listModel.Paging.TotalItemCount > listModel.Items.Count) { listModel.Paging.HasNextPage = true; } if (listModel.Paging.PageNumber == 1) { if (listModel.Paging.TotalItemCount > 0) { listModel.Paging.IsFirstPage = true; } if (listModel.Paging.PageCount == 1) { listModel.Paging.IsLastPage = true; } } else if (listModel.Paging.PageNumber == listModel.Paging.PageCount) { listModel.Paging.HasNextPage = false; if (listModel.Paging.PageCount > 1) { listModel.Paging.IsLastPage = true; listModel.Paging.HasPreviousPage = true; } } else { listModel.Paging.HasNextPage = true; listModel.Paging.HasPreviousPage = true; } if (listModel.Paging.TotalItemCount > listModel.Items.Count && listModel.Items.Count <= 0) { listModel.Message = Messages.DangerRecordNotFoundInPage; } if (listModel.Paging.TotalItemCount == 0) { listModel.Message = Messages.DangerRecordNotFound; } return(listModel); }
private ListModel <CategoryModel> List(DateTime startDate, DateTime endDate, int pageNumber, int pageSize, int status, string searched, Guid languageId, ListModel <CategoryModel> listModel) { var resetedStartDate = startDate.ResetTimeToStartOfDay(); var resetedEndDate = endDate.ResetTimeToEndOfDay(); var language = languageId != Guid.Empty ? _repositoryLanguage.Get(x => x.Id == languageId) : _serviceMain.DefaultLanguage; Expression <Func <Category, bool> > expression; if (status != -1) { var bStatus = status.ToString().ToBoolean(); if (searched != null) { if (bStatus) { expression = c => c.CategoryLanguageLines.Any(x => x.Name.Contains(searched) && x.IsApproved); } else { expression = c => c.CategoryLanguageLines.Any(x => x.Name.Contains(searched) && x.IsApproved == false); } } else { if (bStatus) { expression = c => c.CategoryLanguageLines.Any(x => x.IsApproved); } else { expression = c => c.CategoryLanguageLines.Any(x => x.IsApproved == false); } } } else { if (searched != null) { expression = c => c.CategoryLanguageLines.Any(x => x.Name.Contains(searched)); } else { expression = c => c.Id != Guid.Empty; } } expression = expression.And(e => e.CreationTime >= resetedStartDate && e.CreationTime <= resetedEndDate); listModel.Paging ??= new Paging { PageSize = pageSize, PageNumber = pageNumber }; var sortHelper = new SortHelper <Category>(); sortHelper.OrderBy(x => x.Code); var query = (IOrderedQueryable <Category>)_repositoryCategory .Join(x => x.Creator.Person) .Join(x => x.LastModifier.Person) .Join(z => z.CategoryLanguageLines) .ThenJoin(x => x.Language) .Where(expression); query = sortHelper.GenerateOrderedQuery(query); listModel.Paging.TotalItemCount = query.Count(); var items = listModel.Paging.PageSize > 0 ? query.Skip((listModel.Paging.PageNumber - 1) * listModel.Paging.PageSize).Take(listModel.Paging.PageSize) : query; var modelItems = new HashSet <CategoryModel>(); foreach (var item in items) { CategoryModel modelItem; if (item.CategoryLanguageLines == null) { modelItem = new CategoryModel(); } else { var itemLine = item.CategoryLanguageLines.FirstOrDefault(x => x.Language.Id == language.Id); modelItem = itemLine != null?itemLine.CreateMapped <CategoryLanguageLine, CategoryModel>() : new CategoryModel(); } modelItem.Creator = new IdName(item.Creator.Id, item.Creator.Person.DisplayName); modelItem.LastModifier = new IdName(item.LastModifier.Id, item.LastModifier.Person.DisplayName); modelItem.Language = new IdCodeName(language.Id, language.Code, language.Name); modelItem.Category = new IdCode(item.Id, item.Code); modelItems.Add(modelItem); } listModel.Items = modelItems.ToList(); var pageSizeDescription = _serviceMain.ApplicationSettings.PageSizeList; var pageSizes = pageSizeDescription.Split(',').Select(s => new KeyValuePair <int, string>(s.ToInt(), s)).ToList(); pageSizes.Insert(0, new KeyValuePair <int, string>(-1, "[" + Dictionary.All + "]")); listModel.Paging.PageSizes = pageSizes; listModel.Paging.PageCount = (int)Math.Ceiling((float)listModel.Paging.TotalItemCount / listModel.Paging.PageSize); if (listModel.Paging.TotalItemCount > listModel.Items.Count) { listModel.Paging.HasNextPage = true; } // ilk sayfa ise if (listModel.Paging.PageNumber == 1) { if (listModel.Paging.TotalItemCount > 0) { listModel.Paging.IsFirstPage = true; } // tek sayfa ise if (listModel.Paging.PageCount == 1) { listModel.Paging.IsLastPage = true; } } // son sayfa ise else if (listModel.Paging.PageNumber == listModel.Paging.PageCount) { listModel.Paging.HasNextPage = false; // tek sayfa değilse if (listModel.Paging.PageCount > 1) { listModel.Paging.IsLastPage = true; listModel.Paging.HasPreviousPage = true; } } // ara sayfa ise else { listModel.Paging.HasNextPage = true; listModel.Paging.HasPreviousPage = true; } if (listModel.Paging.TotalItemCount > listModel.Items.Count && listModel.Items.Count <= 0) { listModel.Message = Messages.DangerRecordNotFoundInPage; } if (listModel.Paging.TotalItemCount == 0) { listModel.Message = Messages.DangerRecordNotFound; } return(listModel); }
private ListModel <ParameterModel> List(DateTime startDate, DateTime endDate, int pageNumber, int pageSize, int status, string searched, Guid parentId, ListModel <ParameterModel> model) { var resetedStartDate = startDate.ResetTimeToStartOfDay(); var resetedEndDate = endDate.ResetTimeToEndOfDay(); Expression <Func <Parameter, bool> > expression; if (model.Paging == null) { model.Paging = new Paging { PageSize = pageSize, PageNumber = pageNumber }; } if (status != -1) { var bStatus = status.ToString().ToBoolean(); if (searched != null) { if (bStatus) { expression = c => c.IsApproved && c.Key.Contains(searched); } else { expression = c => c.IsApproved == false && c.Key.Contains(searched); } } else { if (bStatus) { expression = c => c.IsApproved; } else { expression = c => c.IsApproved == false; } } } else { if (searched != null) { expression = c => c.Key.Contains(searched); } else { expression = c => c.Id != Guid.Empty; } } expression = expression.And(e => e.CreationTime >= resetedStartDate && e.CreationTime <= resetedEndDate); if (parentId != Guid.Empty) { expression = expression.And(e => e.ParameterGroup.Id == parentId); } var sortHelper = new SortHelper <Parameter>(); sortHelper.OrderBy(x => x.DisplayOrder); var query = (IOrderedQueryable <Parameter>)_repositoryParameter .Join(x => x.Creator.Person) .Join(x => x.LastModifier.Person) .Join(x => x.ParameterGroup) .Where(expression); query = sortHelper.GenerateOrderedQuery(query); model.Paging.TotalItemCount = query.Count(); var items = model.Paging.PageSize > 0 ? query.Skip((model.Paging.PageNumber - 1) * model.Paging.PageSize).Take(model.Paging.PageSize) : query; var modelItems = new HashSet <ParameterModel>(); foreach (var item in items) { var modelItem = item.CreateMapped <Parameter, ParameterModel>(); modelItem.Creator = new IdName(item.Creator.Id, item.Creator.Person.DisplayName); modelItem.LastModifier = new IdName(item.LastModifier.Id, item.LastModifier.Person.DisplayName); modelItem.ParameterGroup = new IdCodeName(item.ParameterGroup.Id, item.ParameterGroup.Code, item.ParameterGroup.Name); modelItems.Add(modelItem); } model.Items = modelItems.ToList(); var pageSizeDescription = _serviceMain.ApplicationSettings.PageSizeList; var pageSizes = pageSizeDescription.Split(',').Select(s => new KeyValuePair <int, string>(s.ToInt(), s)).ToList(); pageSizes.Insert(0, new KeyValuePair <int, string>(-1, "[" + Dictionary.All + "]")); model.Paging.PageSizes = pageSizes; model.Paging.PageCount = (int)Math.Ceiling((float)model.Paging.TotalItemCount / model.Paging.PageSize); if (model.Paging.TotalItemCount > model.Items.Count) { model.Paging.HasNextPage = true; } // ilk sayfa ise if (model.Paging.PageNumber == 1) { if (model.Paging.TotalItemCount > 0) { model.Paging.IsFirstPage = true; } // tek sayfa ise if (model.Paging.PageCount == 1) { model.Paging.IsLastPage = true; } } // son sayfa ise else if (model.Paging.PageNumber == model.Paging.PageCount) { model.Paging.HasNextPage = false; // tek sayfa değilse if (model.Paging.PageCount > 1) { model.Paging.IsLastPage = true; model.Paging.HasPreviousPage = true; } } // ara sayfa ise else { model.Paging.HasNextPage = true; model.Paging.HasPreviousPage = true; } if (model.Paging.TotalItemCount > model.Items.Count && model.Items.Count <= 0) { model.Message = Messages.DangerRecordNotFoundInPage; } if (model.Paging.TotalItemCount == 0) { model.Message = Messages.DangerRecordNotFound; } return(model); }
private ListModel <UserModel> List(DateTime startDate, DateTime endDate, int pageNumber, int pageSize, int status, string searched, ICollection <Guid> parentIds, ListModel <UserModel> model) { var resetedStartDate = startDate.ResetTimeToStartOfDay(); var resetedEndDate = endDate.ResetTimeToEndOfDay(); Expression <Func <User, bool> > expression; model.Paging ??= new Paging { PageSize = pageSize, PageNumber = pageNumber }; if (status != -1) { var bStatus = status.ToString().ToBoolean(); if (searched != null) { if (bStatus) { expression = c => c.IsApproved && c.Username.Contains(searched); } else { expression = c => c.IsApproved == false && c.Username.Contains(searched); } } else { if (bStatus) { expression = c => c.IsApproved; } else { expression = c => c.IsApproved == false; } } } else { if (searched != null) { expression = c => c.Username.Contains(searched); } else { expression = c => c.Id != Guid.Empty; } } expression = expression.And(e => e.CreationTime >= resetedStartDate && e.CreationTime <= resetedEndDate); if (parentIds != null) { if (parentIds.Count > 0) { expression = expression.And(e => e.RoleUserLines.Any(x => parentIds.Contains(x.Role.Id))); } } var identityUserMinRoleLevel = _serviceMain.IdentityUserMinRoleLevel; expression = expression.And(x => x.RoleUserLines.All(t => t.Role.Level > identityUserMinRoleLevel)); var sortHelper = new SortHelper <User>(); sortHelper.OrderBy(x => x.DisplayOrder); var query = (IOrderedQueryable <User>)_repositoryUser .Join(x => x.Person) .Join(x => x.Creator.Person) .Join(x => x.LastModifier.Person) .Join(x => x.RoleUserLines) .ThenJoin(x => x.Role) .Where(expression); query = sortHelper.GenerateOrderedQuery(query); model.Paging.TotalItemCount = query.Count(); var items = model.Paging.PageSize > 0 ? query.Skip((model.Paging.PageNumber - 1) * model.Paging.PageSize).Take(model.Paging.PageSize) : query; var modelItems = new HashSet <UserModel>(); foreach (var item in items) { var modelItem = item.CreateMapped <User, UserModel>(); modelItem.Creator = new IdName(item.Creator.Id, item.Creator.Person.DisplayName); modelItem.LastModifier = new IdName(item.LastModifier.Id, item.LastModifier.Person.DisplayName); modelItem.IdentityCode = item.Person.IdentityCode; modelItem.FirstName = item.Person.FirstName; modelItem.LastName = item.Person.LastName; modelItem.Roles = item.RoleUserLines.Select(t => t.Role).Select(role => new IdCodeNameSelected(role.Id, role.Code, role.Name, true)).ToList(); modelItems.Add(modelItem); } model.Items = modelItems.ToList(); var pageSizeDescription = _serviceMain.ApplicationSettings.PageSizeList; var pageSizes = pageSizeDescription.Split(',').Select(s => new KeyValuePair <int, string>(s.ToInt(), s)).ToList(); pageSizes.Insert(0, new KeyValuePair <int, string>(-1, "[" + Dictionary.All + "]")); model.Paging.PageSizes = pageSizes; model.Paging.PageCount = (int)Math.Ceiling((float)model.Paging.TotalItemCount / model.Paging.PageSize); if (model.Paging.TotalItemCount > model.Items.Count) { model.Paging.HasNextPage = true; } if (model.Paging.PageNumber == 1) { if (model.Paging.TotalItemCount > 0) { model.Paging.IsFirstPage = true; } if (model.Paging.PageCount == 1) { model.Paging.IsLastPage = true; } } else if (model.Paging.PageNumber == model.Paging.PageCount) { model.Paging.HasNextPage = false; if (model.Paging.PageCount > 1) { model.Paging.IsLastPage = true; model.Paging.HasPreviousPage = true; } } else { model.Paging.HasNextPage = true; model.Paging.HasPreviousPage = true; } if (model.Paging.TotalItemCount > model.Items.Count && model.Items.Count <= 0) { model.Message = Messages.DangerRecordNotFoundInPage; } if (model.Paging.TotalItemCount == 0) { model.Message = Messages.DangerRecordNotFound; } return(model); }