Beispiel #1
0
 public IHttpActionResult GetAccountList([FromBody] AccountConditionSearch conditionSearch)
 {
     try
     {
         return(Ok(_accountManagementService.GetListAccount(conditionSearch)));
     }
     catch (System.Exception e)
     {
         return(InternalServerError(e));
     }
 }
Beispiel #2
0
        public List <AccountReponseDto> GetListAccount(AccountConditionSearch conditionSearch)
        {
            // Nếu không tồn tại điều kiện tìm kiếm thì khởi tạo giá trị tìm kiếm ban đầu
            if (conditionSearch == null)
            {
                conditionSearch = new AccountConditionSearch();
            }

            // Lấy các thông tin dùng để phân trang
            var paging = new Paging(context.Accounts.Count(x => !x.DelFlag &&
                                                           (conditionSearch.KeySearch == null ||
                                                            (conditionSearch.KeySearch != null && (x.UserName.Contains(conditionSearch.KeySearch) || (x.UserInfo.FirstName + x.UserInfo.LastName).Contains(conditionSearch.KeySearch) ||
                                                                                                   x.UserInfo.IdentityInfo.IdentityNumber.Contains(conditionSearch.KeySearch)))) &&
                                                           (conditionSearch.GroupId == 0 ||
                                                            conditionSearch.GroupId != 0 && x.AccountGroupId == conditionSearch.GroupId))
                                    , conditionSearch.CurrentPage, conditionSearch.PageSize);

            // Tìm kiếm và lấy dữ liệu theo trang
            var listOfAccount = context.Accounts.Where(x => !x.DelFlag &&
                                                       (conditionSearch.KeySearch == null ||
                                                        (conditionSearch.KeySearch != null && (x.UserName.Contains(conditionSearch.KeySearch) || (x.UserInfo.FirstName + x.UserInfo.LastName).Contains(conditionSearch.KeySearch) ||
                                                                                               x.UserInfo.IdentityInfo.IdentityNumber.Contains(conditionSearch.KeySearch)))) &&
                                                       (conditionSearch.GroupId == 0 ||
                                                        conditionSearch.GroupId != 0 && x.AccountGroupId == conditionSearch.GroupId))
                                .OrderBy(x => x.Id)
                                .Skip((paging.CurrentPage - 1) * paging.PageSize)
                                .Take(paging.PageSize).Select(x => new AccountReponseDto
            {
                Id               = x.Id,
                UserName         = x.UserName,
                FirstName        = x.UserInfo.FirstName,
                LastName         = x.UserInfo.LastName,
                IdentityNumber   = x.UserInfo.IdentityInfo.IdentityNumber,
                Email            = x.UserInfo.ContactInfo.Email,
                PhoneNumber      = x.UserInfo.ContactInfo.PhoneNumber,
                AccountGroupId   = x.AccountGroupId,
                AccountGroupName = x.AccountGroup.Name
            }).ToList();

            return(listOfAccount);
        }