Задание
Необходимо автоматизировать работу ресторана.
Функционал программы
Программа имеет несколько модулей:
- Модуль клиент;
- Модуль повара;
- Модуль официанта
Последовательность их работы:
Клиент делает заказ, потом официанту необходимо подтвердить его, отметив галочку в программе, далее заказ уходит на кухню повару.
Тот в свою очередь готовит блюдо и подтверждает в программе что оно готово.
Офциант увидев готовность блюда в программе, забирает заказ и уносит его клиенту.
Также в модуле повара можно добавлять и убирать наличие ингридиентов, что изменяет меню клиента и не позволяет заказать блюда, которые нельзя приготовить,
также эта функция показывает повару какие рецепты ему доступны.
Фрагмент программного кода
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Npgsql; //Класс для обработки модуля клиента namespace Ресторан.classes { public class Client { public int id { get; set; } public string namemenu { get; set; } public double massa { get; set; } public decimal buy { get; set; } public Client() { } public Client (int id, string namemenu, double massa, decimal buy) { this.id = id; this.namemenu = namemenu; this.massa = massa; this.buy = buy; } public static List<Client> Fetch(string conn) { using (NpgsqlConnection con = new NpgsqlConnection(conn)) { con.Open(); string Q = ""; Q += " create temp table Peace on commit drop as "; Q += " select distinct recipe.namemenu as name, ingredient.checks as checks "; Q += " from recipe join ingredient on recipe.foodname=ingredient.idц322 "; Q += " join menu on recipe.namemenu=menu.id ; "; Q += " create temp table PeaceOfPeace on commit drop as "; Q += " select p.name as pname "; Q += " from (select name from Peace where Peace.checks = 'true') as p "; Q += " where p.name not in (select name from Peace where Peace.checks = 'false'); "; Q += " select id, namemenu, massa, buy "; Q += ""; NpgsqlCommand npgc = new NpgsqlCommand("select id, namemenu, massa, buy from(select p.name from (select distinct recipe.namemenu as name from recipe join ingredient on recipe.foodname=ingredient.id join menu on recipe.namemenu=menu.id where ingredient.checks = 'true') as p where p.name not in (select distinct recipe.namemenu as name from recipe join ingredient on recipe.foodname=ingredient.id join menu on recipe.namemenu=menu.id where ingredient.checks = 'false')) as p join menu on p.name = menu.id ", con); NpgsqlDataReader reader = npgc.ExecuteReader(); List<classes.Client> list = new List<classes.Client>(); if (reader.HasRows) { while (reader.Read()) list.Add(new classes.Client { id = reader.GetInt32(0), namemenu = reader.GetString(1), massa = reader.GetDouble(2), buy = reader.GetDecimal(3), }); } reader.Close(); return list; } } } }
Скриншот архива с проектом
Пояснения по запуску программы
Для успешного запуска программы необходимо установить СУБД PostgreSQL далее зайти в pgAdmin и в запроснике по порядку выполнить действия описанные в мануале для базы данных.
Если необходимо редактировать программу нужно установить Visual Studio и через нее открыть файл с расширением .sln
anna220699