Skip to content

AlienRouge/ShoppingCartHandler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Программный модуль: Обработчик товарной корзины

Выполняемая задача: Рассчет скидочных предложений для корзины покупок и печать кассового чека

Входные данные: Список товаров корзины через запятую

Выходные данные: Кассовый чек с рассчитаной промежуточной и итоговой стоимостью

Хранилище данных: JSON строка с информацией о стоимости товаров и действующих скидках

Примененные паттрены: Цепочка обязанностей (Chain Of Responsibility), Фабрика

Цель применения: Рассчет скидок для потребительской корзины

Реализация: Для каждого скидочного предложения создается его отображение в виде объекта с помощью фабрики DiscountHandlerFactory Затем, создается цепочка этих объектов, каждое звено которой проверяет, есть ли в поступившей корзине скидочные продукты и,если необходимо рассчитывает скидку. В противном случае, передает управление следующему звену цепи. Таким образом реализован паттерн Цепочка обязанностей.

Как запустить/использовать: В архиве в папке ShoppingCartHandlerBuild лежит уже собранный проект, советую использовать его:

  1. Настроить(при необходимости) конфигурационный файл во вложенной папке Setup.
  2. Из папки с необходимо запустить терминал.
  3. С помощью терминала запустить ShoppingCartHandler.exe с аргументами - товарами пользовательской корзины Например: .\ShoppingCartHandler.exe Cake, Cake, Bread, Bread, Apple, Apple, Apple
  4. В папке Bill сохранится расситанный чек.

Если все же необходимо собрать проект вручную:

  1. Необходимо собрать проект в VisualStudio ( https://imgur.com/a/oGZMNpJ )
  2. Во время сборки программа выдаст ошибку о пустом конфигурационном файле. Её необходимо пропустить. ( https://imgur.com/a/KS8NBy8 )
  3. В папке с собранным проектом (ShoppingCart\bin\Debug\netcoreapp3.1) или (ShoppingCart\bin\Release\netcoreapp3.1) необходимо сконфигурировать JSON файл в папке Setup (ну или просто закинуть туда готовый из папки Test в архиве)
  4. Profit. Переходим к иструкции выше.

GitHub: https://github.com/AlienRouge/ShoppingCartHandler

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages