public async Task <WarehouseSearchResponse> Search(WarehouseSearchRequest request)
        {
            WarehouseSearchResponse response = new WarehouseSearchResponse();

            try
            {
                List <WarehouseViewModel> warehouseViewModels = new List <WarehouseViewModel>();
                RefSqlPaging paging = new RefSqlPaging(request.PageIndex, request.PageSize);
                var          data   = await _warehouseService.Search(request.Code, request.Email, request.Phone, request.Name, request.Status, request.Type, paging);

                var venderIds = data.Select(p => p.VendorId).ToArray();
                Dictionary <string, string> vendorNameByIds = new Dictionary <string, string>();
                if (venderIds.Length > 0)
                {
                    var vendors = await _vendorService.GetFromDb(venderIds);

                    vendorNameByIds = vendors.ToDictionary(p => p.Id, p => p.Name);
                }
                response.TotalRow = paging.TotalRow;
                foreach (var item in data)
                {
                    //item.VendorName = dataVendor.Where(x => x.Id == item.VendorId.ToString()).FirstOrDefault().Name;
                    var province = await _locationService.GetProvinceById(item.ProvinceId.ToString());

                    var district = await _locationService.GetDistrictById(item.DistrictId.ToString());

                    var village = await _locationService.GetWardById(item.VillageId.ToString());

                    RStreet road = await _locationService.GetStreetById(item.RoadId.ToString());

                    string venderName = string.Empty;
                    if (!string.IsNullOrEmpty(item.VendorId))
                    {
                        venderName = vendorNameByIds.ContainsKey(item.VendorId)
                            ? vendorNameByIds[item.VendorId]
                            : string.Empty;
                    }
                    var warehouseModel = item.ToModel(province.ProvinceName, district.DistrictName, village.WardName, road.StreetName, venderName);

                    warehouseViewModels.Add(warehouseModel);
                }

                response.Warehouses = warehouseViewModels.ToArray();

                response.PageIndex = request.PageIndex;
                response.PageSize  = request.PageSize;
                response.SetSucess();
            }
            catch (Exception e)
            {
                response.SetFail(e);
                _logger.LogError(e, e.Message, request);
            }
            return(response);
        }
        public static StreetViewModel ToModelStreet(this RStreet street)
        {
            if (street == null)
            {
                return(null);
            }

            return(new StreetViewModel()
            {
                StreetName = street.StreetName,
                Id = street.Id
            });
        }
        public static LocationDetailResponse ToModelStreetDetail(this RStreet street)
        {
            if (street == null)
            {
                return(null);
            }

            return(new LocationDetailResponse()
            {
                Id = street.Id,
                StreetName = street.StreetName,
                StreetNameEN = street.StreetNameEN,
            });
        }
        public async Task <WarehouseGetResponse> Get(WarehouseGetRequest request)
        {
            WarehouseGetResponse response = new WarehouseGetResponse();

            try
            {
                if (!string.IsNullOrEmpty(request.Id))
                {
                    var warehouse = await _warehouseService.GetById(request.Id);

                    if (warehouse == null)
                    {
                        response.SetFail(BaseResponse.ErrorCodeEnum.UserNotFound);
                        return(response);
                    }
                    var province = await _locationService.GetProvinceById(warehouse.ProvinceId.ToString());

                    var district = await _locationService.GetDistrictById(warehouse.DistrictId.ToString());

                    var village = await _locationService.GetWardById(warehouse.VillageId.ToString());

                    RStreet road = await _locationService.GetStreetById(warehouse.RoadId.ToString());

                    response.Warehouse = warehouse.ToModel(province.ProvinceName, district.DistrictName, village.WardName, road.StreetName);
                    response.SetSucess();
                }
                else
                {
                    response.Warehouse = new WarehouseViewModel();
                }
            }
            catch (Exception e)
            {
                response.SetFail(e);
                _logger.LogError(e, e.Message, request);
            }
            return(response);
        }
Exemple #5
0
 public async Task <bool> AddToEs(RProvince province, RDistrict district, RWard ward, RStreet street)
 {
     //RLocation location = CreateLocation(province, district, ward, street);
     //IndexEs<RLocation> indexEs = new IndexEs<RLocation>(EnumDefine.EsIndexName.AddressesBase, EnumDefine.EsIndexType.AddressBase, location.Key, location);
     //string response = await _esStorage.Add(indexEs);
     //var obj = Serialize.JsonDeserializeObject<EsAddResultDetail>(response);
     //return obj._shards.successful > 0 && obj._shards.failed <= 0;
     return(false);
 }