public async Task <OperationDataResult <CustomersModel> > Index(
            CustomersRequestModel pnRequestModel)
        {
            try
            {
                // CustomerModel customerModel = new CustomerModel();
                var customersQuery = _dbContext.Customers
                                     .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                                     .AsQueryable();

                customersQuery = QueryHelper.AddSortToQuery(customersQuery, pnRequestModel.SortColumnName,
                                                            pnRequestModel.IsSortDsc);

                if (!string.IsNullOrEmpty(pnRequestModel.Name))
                {
                    customersQuery = customersQuery.Where(x =>
                                                          x.CompanyName.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                          x.ContactPerson.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                          x.CompanyAddress.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                          x.CompanyAddress2.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                          x.CityName.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                          x.Phone.Contains(pnRequestModel.Name) ||
                                                          x.VatNumber.Contains(pnRequestModel.Name) ||
                                                          x.EanCode.Contains(pnRequestModel.Name) ||
                                                          x.Email.ToLower().Contains(pnRequestModel.Name.ToLower()));
                }

                customersQuery = customersQuery
                                 .Skip(pnRequestModel.Offset)
                                 .Take(pnRequestModel.PageSize);

                var customers = await customersQuery.Select(x => new CustomerModel
                {
                    Id                    = x.Id,
                    Description           = x.Description,
                    Email                 = x.Email,
                    ContactPerson         = x.ContactPerson,
                    CompanyName           = x.CompanyName,
                    Phone                 = x.Phone,
                    CityName              = x.CityName,
                    CompanyAddress        = x.CompanyAddress,
                    CompanyAddress2       = x.CompanyAddress2,
                    CountryCode           = x.CountryCode,
                    CreatedBy             = x.CreatedBy,
                    CreatedDate           = x.CreatedDate,
                    CustomerNo            = x.CustomerNo,
                    EanCode               = x.EanCode,
                    VatNumber             = x.VatNumber,
                    ZipCode               = x.ZipCode,
                    CrmId                 = x.CrmId,
                    CadastralNumber       = x.CadastralNumber,
                    PropertyNumber        = x.PropertyNumber,
                    ApartmentNumber       = x.ApartmentNumber,
                    CompletionYear        = x.CompletionYear,
                    FloorsWithLivingSpace = x.FloorsWithLivingSpace,
                    CreatedAt             = x.CreatedAt,
                    UpdateAt              = x.UpdatedAt,
                    RelatedEntityId       = x.RelatedEntityId,
                    CreatedByUserId       = x.CreatedByUserId,
                    UpdatedByUserId       = x.UpdatedByUserId,
                    WorkflowState         = x.WorkflowState,
                    Version               = x.Version,
                    CadastralType         = x.CadastralType,
                    FullName              = $"{x.CompanyName} - {x.ContactPerson} - {x.CompanyAddress} - {x.CityName} - {x.Phone}"
                }).ToListAsync();

                var customersPnModel = new CustomersModel
                {
                    Total     = await customersQuery.Select(x => x.Id).CountAsync(),
                    Customers = customers
                };
                return(new OperationDataResult <CustomersModel>(true, customersPnModel));
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <CustomersModel>(false,
                                                                _customersLocalizationService.GetString("ErrorObtainingCustomersInfo") + e.Message));
            }
        }
 public async Task <OperationDataResult <CustomersModel> > Index(CustomersRequestModel pnRequestModel)
 {
     return(await _customersService.Index(pnRequestModel));
 }