Ejemplo n.º 1
0
        public async Task <IResult> ListAttributes(DataHelperModel dataHelper, bool getAll)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var listAttr = _productAttributeRepository.ListAttributes(dataHelper.Search, getAll);
                if (!getAll)
                {
                    var list        = DataSortExtention.SortBy(listAttr, dataHelper.SortColumn, dataHelper.SortOrder);
                    var resultCount = list.Count();
                    var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                    var resultList  = await pagedList.ToListAsync();

                    var pdtAttrViewModels = new List <ProductAttributeViewModel>();
                    pdtAttrViewModels = resultList.Select(p =>
                    {
                        var pdtAttrViewModel = new ProductAttributeViewModel();
                        pdtAttrViewModel.MapFromModel(p);
                        return(pdtAttrViewModel);
                    }).ToList();
                    ResultModel resultModel = new ResultModel();
                    resultModel.ProductAttributeResult = pdtAttrViewModels;
                    resultModel.TotalCount             = resultCount;
                    if (resultList.Count == 0)
                    {
                        result.Status     = Status.Fail;
                        result.StatusCode = HttpStatusCode.BadRequest;
                        result.Message    = "No records present.";
                        return(result);
                    }
                    result.Body = resultModel;
                }
                else
                {
                    var attributeList = await listAttr.ToListAsync();

                    result.Body = attributeList;
                }
                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.OK;
                return(result);
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(result);
            }
        }