Exemplo n.º 1
0
        public async Task <PagedResults <IEnumerable <WarehouseServiceModel> > > GetByIdsAsync(GetWarehousesByIdsServiceModel model)
        {
            var warehouses = from c in this.context.Warehouses
                             where model.Ids.Contains(c.Id) && c.SellerId == model.OrganisationId.Value && c.IsActive
                             select new WarehouseServiceModel
            {
                Id               = c.Id,
                Name             = c.Name,
                Location         = c.Location,
                LastModifiedDate = c.LastModifiedDate,
                CreatedDate      = c.CreatedDate
            };

            return(warehouses.PagedIndex(new Pagination(warehouses.Count(), model.ItemsPerPage), model.PageIndex));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Get(string ids, string searchTerm, int pageIndex, int itemsPerPage, string orderBy)
        {
            var sellerClaim = this.User.Claims.FirstOrDefault(x => x.Type == AccountConstants.Claims.OrganisationIdClaim);

            var warehouseIds = ids.ToEnumerableGuidIds();

            if (warehouseIds != null)
            {
                var serviceModel = new GetWarehousesByIdsServiceModel
                {
                    Ids            = warehouseIds,
                    PageIndex      = pageIndex,
                    ItemsPerPage   = itemsPerPage,
                    OrderBy        = orderBy,
                    Language       = CultureInfo.CurrentCulture.Name,
                    OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value)
                };

                var validator        = new GetWarehousesByIdsModelValidator();
                var validationResult = await validator.ValidateAsync(serviceModel);

                if (validationResult.IsValid)
                {
                    var warehouses = await this.warehouseService.GetByIdsAsync(serviceModel);

                    if (warehouses != null)
                    {
                        var response = new PagedResults <IEnumerable <WarehouseResponseModel> >(warehouses.Total, warehouses.PageSize)
                        {
                            Data = warehouses.Data.OrEmptyIfNull().Select(x => new WarehouseResponseModel
                            {
                                Id               = x.Id,
                                Name             = x.Name,
                                Location         = x.Location,
                                LastModifiedDate = x.LastModifiedDate,
                                CreatedDate      = x.CreatedDate
                            })
                        };

                        return(this.StatusCode((int)HttpStatusCode.OK, response));
                    }
                }

                throw new CustomException(string.Join(ErrorConstants.ErrorMessagesSeparator, validationResult.Errors.Select(x => x.ErrorMessage)), (int)HttpStatusCode.UnprocessableEntity);
            }
            else
            {
                var serviceModel = new GetWarehousesServiceModel
                {
                    Language       = CultureInfo.CurrentCulture.Name,
                    SearchTerm     = searchTerm,
                    PageIndex      = pageIndex,
                    ItemsPerPage   = itemsPerPage,
                    OrderBy        = orderBy,
                    OrganisationId = GuidHelper.ParseNullable(sellerClaim?.Value)
                };

                var warehouses = await this.warehouseService.GetAsync(serviceModel);

                if (warehouses != null)
                {
                    var response = new PagedResults <IEnumerable <WarehouseResponseModel> >(warehouses.Total, warehouses.PageSize)
                    {
                        Data = warehouses.Data.OrEmptyIfNull().Select(x => new WarehouseResponseModel
                        {
                            Id               = x.Id,
                            Name             = x.Name,
                            Location         = x.Location,
                            LastModifiedDate = x.LastModifiedDate,
                            CreatedDate      = x.CreatedDate
                        })
                    };

                    return(this.StatusCode((int)HttpStatusCode.OK, response));
                }
                throw new CustomException("", (int)HttpStatusCode.UnprocessableEntity);
            }
        }