public DataTablesResponse GetListAuthor(IDataTablesRequest dataTableParam, ResourceAuthorSearchViewModel searchViewModel)
        {
            try
            {
                var query = ResourceRepository.GetAll(x => x.IsDeleted == false && x.Type == (int)ResourceType.Author, null, x => x.Authors);
                if (searchViewModel.AuthorId > 0)
                {
                    query = query.Where(x => x.Authors.Any(g => g.IsDeleted == false && g.Id == searchViewModel.AuthorId));
                }

                var dataTableHelper = new DataTableHelper<ResourceAuthorViewModel, Resource>(query, x => new ResourceAuthorViewModel
                {
                    Id = x.Id,
                    Url = x.Url,
                    Tag = x.Tag,
                    Author = x.Authors.AsQueryable().Any(y => y.IsDeleted == false) ? x.Authors.AsQueryable().FirstOrDefault().Name : ""
                });

                var entities = dataTableHelper.GetDataVMForResponse(dataTableParam);
                var result = dataTableHelper.GetDataToList(dataTableParam, entities);

                return new DataTablesResponse(dataTableParam.Draw, result, entities.Count(), entities.Count());
            }
            catch (Exception ex)
            {
                Provider.Instance.LogError(ex);
                return new DataTablesResponse(dataTableParam.Draw, new List<ResourceAuthorViewModel>(), 0, 0);
            }
        }
Beispiel #2
0
        public DataTablesResponse GetList(IDataTablesRequest dataTableParam, UserSearchViewModel searchViewModel)
        {
            try
            {
                var query = UserRepository.GetAll(x => x.IsDeleted == false, null, x => x.Role);

                if (searchViewModel.ActiveType != (int)ActiveType.All)
                {
                    switch (searchViewModel.ActiveType)
                    {
                        case (int)ActiveType.Active:
                            {
                                query = query.Where(x => x.IsActive);
                                break;
                            }

                        case (int)ActiveType.InActive:
                            {
                                query = query.Where(x => !x.IsActive);
                                break;
                            }
                    }
                }

                if (searchViewModel.RoleName != Constants.AllValue.ToString())
                {
                    query = query.Where(x => x.Role.Name == searchViewModel.RoleName);
                }

                var dataTableHelper = new DataTableHelper<UserViewModel, User>(query, x => new UserViewModel
                {
                    Id = x.Id,
                    Email = x.Email,
                    FullName = x.FirstName + " " + x.LastName,
                    Role = x.Role.Name,
                    IsActive = x.IsActive
                });

                var entities = dataTableHelper.GetDataVMForResponse(dataTableParam);
                var result = dataTableHelper.GetDataToList(dataTableParam, entities);

                return new DataTablesResponse(dataTableParam.Draw, result, entities.Count(), entities.Count());
            }
            catch (Exception ex)
            {
                Provider.Instance.LogError(ex);
                return new DataTablesResponse(dataTableParam.Draw, new List<UserViewModel>(), 0, 0);
            }
        }