Beispiel #1
0
        public async Task <Result> Handle(ListProductionSiteQuery request, CancellationToken cancellationToken)
        {
            Result result;

            try
            {
                Expression <Func <ProductionSite, bool> > filter = _productionSiteOdataProvider.GetFilterPredicate(request.Filter);
                int?skip = request.Skip.ToNullableInt();
                int?top  = request.Top.ToNullableInt();

                var productionSiteDomains = await _productionSiteReadRepository.ListAsync(filter, skip, top);

                var productionSiteModels = _mapper.Map <IEnumerable <ProductionSiteModel> >(productionSiteDomains);
                var count         = productionSiteModels.Count();
                var customerModel = new ProductionSitesModel {
                    Value = productionSiteModels, Count = count, NextLink = null
                };

                result = Result.Ok(customerModel);
            }
            catch (FilterODataException)
            {
                result = Result.Fail(new System.Collections.Generic.List <Failure>()
                {
                    new HandlerFault()
                    {
                        Code    = HandlerFaultCode.InvalidQueryFilter.Name,
                        Message = HandlerFailures.InvalidQueryFilter,
                        Target  = "$filter"
                    }
                }
                                     );
            }
            catch
            {
                result = Result.Fail(CustomFailures.ListProductionSiteFailure);
            }
            return(result);
        }