Exemplo n.º 1
0
        public ApiResult <IEnumerable <MaterialAmountView> > FetchMaterials(QueryMaterialsRequest queryMaterialsRequest)
        {
            var client       = new HttpClient();
            var httpResult   = client.GetAsync(ConfigurationManager.AppSettings["fetchMaterialsUrl"]).Result;
            var apiResult    = httpResult.Content.ReadAsStringAsync().Result;
            var actualResult = JsonConvert.DeserializeObject <ApiResult <IEnumerable <PythonMaterialView> > >(apiResult);

            var entities         = actualResult.Data ?? new List <PythonMaterialView>();
            var pageSize         = queryMaterialsRequest.PageSize;
            var pageNumber       = queryMaterialsRequest.PageNumber - 1;
            var materialIds      = queryMaterialsRequest.MaterialIds;
            var filteredEntities = materialIds != null && materialIds.Any()
                ? entities.Where(d => materialIds.Contains(d.Id))
                : entities;
            var pagedEntities = filteredEntities.Skip(pageNumber * pageSize).Take(pageSize);
            var filtered      = new ApiResult <IEnumerable <MaterialAmountView> >()
            {
                Errors = actualResult.Errors,
                Data   = pagedEntities.Select(pm => new MaterialAmountView()
                {
                    Capacity    = pm.Attributes.Capacity,
                    Description = pm.Attributes.Description,
                    Id          = pm.Id,
                    Name        = pm.Attributes.Name
                }),
                StatusCode = actualResult.StatusCode,
                Total      = entities.Count()
            };

            return(filtered);
        }
Exemplo n.º 2
0
        private MaterialAmountView FetchMaterial(int materialId)
        {
            var materialsRequest = new QueryMaterialsRequest()
            {
                PageNumber  = 1,
                PageSize    = int.MaxValue,
                MaterialIds = new List <int>()
                {
                    materialId
                }
            };
            var result = _storeService.FetchMaterials(materialsRequest).ThrowIfError();

            return(result.Data?.FirstOrDefault());
        }
Exemplo n.º 3
0
        public IHttpActionResult Read(QueryMaterialsRequest queryMaterialsRequest)
        {
            var result = _storeService.FetchMaterials(queryMaterialsRequest).ThrowIfError();

            return(Ok(result));
        }