public void UpdateRolls(Roll roll) { try { var existingRoll = rolls.SingleOrDefault(item => item.Id == roll.Id); if (existingRoll == null) { throw new NullReferenceException(); } existingRoll.Name = roll.Name; existingRoll.HalfPosition = roll.HalfPosition; existingRoll.Others = roll.Others; existingRoll.Weight = roll.Weight; existingRoll.Cost = roll.Cost; } catch (NullReferenceException ex) { MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); } catch (Exception ex) { MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); } }
public void DeleteRollfromOrder(int id) { try { var roll = rollOrder.SingleOrDefault(item => item.Id == id); if (roll == null) { throw new NullReferenceException(); } rollOrder.Remove(roll); } catch (NullReferenceException exception) { Console.WriteLine("Эти роллы отсутствуют в заказе."); MyLogger.Logger($"{exception.Message}\n{exception.StackTrace}"); } catch (Exception exception) { Console.WriteLine("У вас больше одной позиции"); MyLogger.Logger($"Entered more than 1 order this kind of roll" + $"\n{exception.Message}\n{exception.StackTrace}"); var roll = rollOrder.FirstOrDefault(item => item.Id == id); rollOrder.Remove(roll); } }
public void UpdateRollinOrder(int id, RollRepository rolls) { try { var roll = rollOrder.SingleOrDefault(item => item.Id == id); if (roll == null) { throw new NullReferenceException(); } Roll mainRoll = rolls.GetRollID(roll.Id); Roll tempRoll = new Roll (mainRoll.Name, mainRoll.Weight, mainRoll.Cost, mainRoll.Others, mainRoll.HalfPosition, mainRoll.Description); tempRoll.Id = roll.Id; AddRollinOrder(tempRoll); } catch (Exception exception) { Console.WriteLine("Нет в заказе."); MyLogger.Logger($"Entered invalid roll ID! Repiting going!\n" + $"{exception.Message}\n{exception.StackTrace}"); } }
static void Main(string[] args) { MyLogger.directory.Create(); MyLogger.Logger("Start"); try { RollRepository rollRepository = new RollRepository(); rollRepository = Menu.MenuList(rollRepository); MyLogger.Logger("MenuList done!"); OrdersRepository orders = new OrdersRepository(); do { MyLogger.Logger("AddNewOrder start"); orders.AddNewOrder(MakeNewOrder(rollRepository)); MyLogger.Logger("AddNewOrder finish"); Console.WriteLine("Нажмите Enter если хотите добавить еще заказ."); }while (Console.ReadKey(true).Key == ConsoleKey.Enter); } catch (Exception ex) { MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); } MyLogger.Logger("Order finish"); Console.Read(); }
public OrderCreatorRepository CreateRollOrder(RollRepository rolls) { Greeting.Greetins(); Greeting.AllRolls(rolls); do { do { try { AddRollsOrNo(rolls); } catch (Exception exception) { Console.WriteLine("Вам надо ввести порядковый номер вида ролл"); MyLogger.Logger($"Entered invalid roll ID" + $"{exception.Message}\n{exception.StackTrace}"); continue; } OrderCreatorRepository.GetRollsinOrder(); Console.WriteLine("Цена заказа {0: 0.00}", SumCounter(OrderCreatorRepository)); if (AnythingElse(rolls)) { continue; } break; } while (true); Console.WriteLine("Завершить заказ?\n" + "Нажмите Enter если да"); if (Console.ReadKey(true).Key == ConsoleKey.Y) { OrderCreatorRepository.GetRollsinOrder(); Console.WriteLine("Цена заказа {0: 0.00}", SumCounter(OrderCreatorRepository)); break; } } while (true); return OrderCreatorRepository; }
public Roll GetRollID(int id) { try { Roll roll = rolls.SingleOrDefault(item => item.Id == id); if (roll == null) { Console.WriteLine("Простите,нет информации,выберите другую позицию"); } return(roll == null ? null : (Roll)roll); } catch (Exception ex) { Console.WriteLine("Что-то не так,выберите другую позицию"); MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); return(null); } }
public void DeleteRoll(int id) { try { var roll = rolls.SingleOrDefault(item => item.Id == id); if (roll == null) { throw new NullReferenceException(); } rolls.Remove(roll); } catch (NullReferenceException ex) { MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); } catch (Exception ex) { MyLogger.Logger($"OOOPPS smth wrong\n{ex.Message}\n{ex.StackTrace}"); } }
static Order MakeNewOrder(RollRepository sushiRepository) { OrderCreator newOrder = new OrderCreator(); MyLogger.Logger("newOrder.CreateRollOrder start"); newOrder.CreateRollOrder(sushiRepository); MyLogger.Logger("newOrder.CreateRollOrder finish, newOrder.CreatiningRollOrder start"); Order order = newOrder.CreatiningRollOrder(newOrder.OrderCreatorRepository); MyLogger.Logger("newOrder.CreatiningRollOrder finish"); newOrder.RollOrderMakingEvent += (string name) => { Console.WriteLine($"{name}, заказ готов"); }; MyLogger.Logger("newOrder.Done start"); newOrder.Done(order, 10); return(order); }
public void AddRollinOrder(Roll roll) { float summaryOfRoll = 0.0f; if (roll.HalfPosition) { do { Console.WriteLine($"Сколько {roll.Name} вы бы хотели заказать?\n" + $"Можете заказать половину порции." + $"\nВведите количество порций (0,5) и нажмите Enter.\n" + $"Нажмите Escape если не хотите эти роллы."); if (Console.ReadKey(true).Key == ConsoleKey.Escape) { break; } try { summaryOfRoll = Convert.ToSingle(Console.ReadLine()); if (summaryOfRoll == 0) { Console.WriteLine("Вы не добавили роллы"); return; } else if (summaryOfRoll % 0.5f == 0) { break; } Console.WriteLine("Только кратное количество.Попробуйте снова."); } catch (Exception exception) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid quantity of roll!\n" + $"{exception.Message}\n{exception.StackTrace}"); continue; } }while (true); } else { do { Console.WriteLine($"Сколько {roll.Name} вы бы хотели заказать?\n" + $"Заказать половину порции нельзя,sorry." + $"\nВведите количество порций и нажмите Enter.\n" + $"Нажмите Escape если не хотите эти роллы."); if (Console.ReadKey(true).Key == ConsoleKey.Escape) { break; } try { summaryOfRoll = Convert.ToSingle(Console.ReadLine()); if (summaryOfRoll == 0) { Console.WriteLine("Вы не добавили роллы"); return; } if (summaryOfRoll % 1 == 0) { break; } Console.WriteLine("Только полная порция,попробуйте снова"); } catch (Exception exception) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid quantity of roll!\n" + $"{exception.Message}\n{exception.StackTrace}"); continue; } }while (true); } roll.Others = Convert.ToInt32(roll.Others * summaryOfRoll); roll.Cost = roll.Cost * summaryOfRoll; roll.Weight = roll.Weight * summaryOfRoll; rollOrder.Add(roll); try { var tempRoll = rollOrder.SingleOrDefault(item => item.Id == roll.Id); } catch (Exception exception) { DeleteRollfromOrder(roll.Id); MyLogger.Logger($"Delete method done!\n{exception.Message}\n{exception.StackTrace}"); } }
public Order CreatiningRollOrder(OrderCreatorRepository orderRepository) { string name = string.Empty, adress = string.Empty; long phone = 0; string email = string.Empty; do { do { try { Console.WriteLine("Введи ваше имя"); name = Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid name\n" + $"{ex.Message}\n{ex.StackTrace}"); continue; } break; } while (true); do { try { Console.WriteLine("Введите номер вашего телефона"); phone = Convert.ToInt32(Console.ReadLine()); } catch (Exception ex) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid phone number!\n" + $"{ex.Message}\n{ex.StackTrace}"); continue; } break; } while (true); do { try { Console.WriteLine("Укажите адрес доставки:улица,дом,квартира"); adress = Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid adress!" + $"\n{ex.Message}\n{ex.StackTrace}"); continue; } break; } while (true); do { try { Console.WriteLine("Укажите email"); email = Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Неверный ввод,попробуйте снова."); MyLogger.Logger($"Entered invalid adress!" + $"\n{ex.Message}\n{ex.StackTrace}"); continue; } break; } while (true); Console.WriteLine(); Console.WriteLine($"Вот ваш заказ,проверьте его:\n" + $"Имя заказчика : {name}\t Номер телефона : {phone}\t" + $"Адрес доставки : {adress}\t Email : {email}"); Extantions.WatchExtantion(orderRepository.rollOrder); Console.WriteLine("Нажмите Enter для подтверждения данных"); } while (Console.ReadKey(true).Key != ConsoleKey.Enter); float summary = SumCounter(orderRepository); Order order = new Order(name, phone, adress, email, orderRepository.rollOrder, summary); order.dayOfWeek = (DayOfWeek)DateTime.Now.DayOfWeek;