示例#1
0
        public ActionResult <Result <List <GetGoodDto> > > GetAll()
        {
            var resultFromRepository = goodsRepository.Get();

            if (resultFromRepository.IsSuccess)
            {
                var listOfGoodDto = resultFromRepository.Value.ConvertAll(g => goodConverter.ToGetDto(g));
                return(new Result <List <GetGoodDto> >
                {
                    IsSuccess = true,
                    Message = resultFromRepository.Message,
                    Value = listOfGoodDto
                });
            }
            return(new Result <List <GetGoodDto> >
            {
                IsSuccess = false,
                Message = resultFromRepository.Message
            });
        }
示例#2
0
        public decimal CalculateOrderPrice(List <OrderGoodDto> orderGoods)
        {
            var listOfOrderGoodIds  = orderGoods.Select(g => g.Id).ToList();
            var resultWithGoodsInfo = goodsRepository.Get(g => listOfOrderGoodIds.Contains(g.Id));

            if (resultWithGoodsInfo.IsSuccess)
            {
                return(resultWithGoodsInfo.Value.Sum(g =>
                {
                    var orderGood = orderGoods.FirstOrDefault(og => og.Id == g.Id);
                    return g.UnitPrice * orderGood.Quantity;
                }));
            }

            return(0.0M);
        }
示例#3
0
        public IActionResult Edit(decimal id)
        {
            ViewData["GoodsCategories"] = _repository.GetGoodsCategories();
            ViewData["Dimensions"]      = _repository.GetDimensions();
            var providers = _repository.GetProviders().ToList();

            providers.Insert(0, new Item(null, "Выберите поставщика или оставьте пустым"));
            ViewData["Providers"] = providers;

            var goods = _repository.Get(id);

            if (goods == null)
            {
                return(BadRequest());
            }
            return(View(new GoodsViewModel(goods)));
        }
示例#4
0
        public void SetStock(string goodsId, int increment, string operatorId)
        {
            var goods = _goodsRepository.Get(goodsId);

            if (goods == null)
            {
                throw new Exception("找不到指定的商品。");
            }

            goods.IncrementStock(increment, operatorId);

            _goodsRepository.Update(goods);

            _dbUnitOfWork.Commit();
        }
示例#5
0
        public static void ChooseOperationForGoodsRepository(IGoodsRepository goodsRepository, OperationForGoodsRepository goodsRepositoryOperation)
        {
            switch (goodsRepositoryOperation)
            {
            case OperationForGoodsRepository.ShowAll:
                ShowAllGoods(goodsRepository.Get());
                break;

            case OperationForGoodsRepository.ShowById:
                Console.WriteLine("Enter good Id: ");
                if (int.TryParse(Console.ReadLine(), out var getGoodId))
                {
                    Console.WriteLine(goodsRepository.Get(getGoodId));
                }
                break;

            case OperationForGoodsRepository.Add:
                Good goodToAdd = CreateGoodToAdd();
                goodsRepository.Add(goodToAdd);
                Console.WriteLine("New good added");
                break;

            case OperationForGoodsRepository.Update:

                Good goodToUpdate = null;
                Console.Write("Enter good Id to update: ");
                if (int.TryParse(Console.ReadLine(), out var getGoodIdToUpdate))
                {
                    goodToUpdate = goodsRepository.Get(getGoodIdToUpdate);
                }
                var fieldToUpdate = ShowGoodUpdateMenu();
                ChooseFieldToUpdate(goodToUpdate, fieldToUpdate);

                goodsRepository.Update(goodToUpdate);
                Console.WriteLine("Good updated");
                break;

            case OperationForGoodsRepository.Delete:
                Console.WriteLine("Enter good Id: ");
                if (int.TryParse(Console.ReadLine(), out var deleteGoodId))
                {
                    goodsRepository.Delete(deleteGoodId);
                    Console.WriteLine("Good deleted");
                }
                break;

            case OperationForGoodsRepository.ShowMaxQuantityGood:
                var goodMaxQuantity = goodsRepository.GetMaxQuantityGood();
                Console.WriteLine($" Max quantity Good: Name: {goodMaxQuantity.Name} Quantity: {goodMaxQuantity.Quantity}");
                break;

            case OperationForGoodsRepository.ShowMinQuantityGood:
                var goodMinQuantity = goodsRepository.GetMinQuantityGood();
                Console.WriteLine($" Min quantity Good: Name: {goodMinQuantity.Name} Quantity: {goodMinQuantity.Quantity}");
                break;

            case OperationForGoodsRepository.ShowMaxCostGood:
                var goodMaxCost = goodsRepository.GetMaxCostGood();
                Console.WriteLine($" Max cost Good: Name: {goodMaxCost.Name} Cost: {goodMaxCost.Cost}");
                break;

            case OperationForGoodsRepository.ShowMinCostGood:
                var goodMinCost = goodsRepository.GetMinCostGood();
                Console.WriteLine($" Min cost Good: Name: {goodMinCost.Name} Cost: {goodMinCost.Cost}");
                break;

            case OperationForGoodsRepository.ShowGoodsByType:
                IEnumerable <Good> goodsByTypeId = null;
                Console.Write("Enter type Id: ");
                if (int.TryParse(Console.ReadLine(), out var typeId))
                {
                    goodsByTypeId = goodsRepository.GetGoodsByType(typeId);
                }
                ShowAllGoods(goodsByTypeId);
                break;

            case OperationForGoodsRepository.ShowGoodsBySupplier:
                IEnumerable <Good> goodsBySupplier = null;
                Console.Write("Enter supplier Id: ");
                if (int.TryParse(Console.ReadLine(), out var supplierId))
                {
                    goodsBySupplier = goodsRepository.GetGoodsBySupplier(supplierId);
                }
                ShowAllGoods(goodsBySupplier);
                break;

            case OperationForGoodsRepository.ShowGoodsByPassedDays:
                IEnumerable <Good> goodsByPassedDays = null;
                Console.Write("Enter number of days: ");
                if (int.TryParse(Console.ReadLine(), out var numberOfDays))
                {
                    goodsByPassedDays = goodsRepository.GetGoodsByPassedDays(numberOfDays);
                }
                ShowAllGoods(goodsByPassedDays);
                break;

            case OperationForGoodsRepository.ShowGoodsByPassedMaxDays:
                var theOldestGood = goodsRepository.GetTheOldestGood();
                Console.WriteLine($" The oldest Good: Name: {theOldestGood.Name} DeliveryDate: {theOldestGood.DeliveryDate}");
                break;

            case OperationForGoodsRepository.ShowAverageGoodsQuantityByType:
                goodsRepository.GetAvgGoodsQuantityByType();
                break;

            default:
                Environment.Exit(0);
                break;
            }
        }
示例#6
0
 public GoodViewModel Get(int id)
 {
     return(new GoodViewModel(_goodsRepository.Get(id)));
 }
示例#7
0
 public Task <Goods> Get(int goodsId)
 {
     return(_goodsRepository.Get(goodsId));
 }