public void AddClientActiveOrder(ActiveOrderDTO _order, ClientDTO _client) { if (_order is null) { throw new ArgumentNullException("_order"); } if (_client is null) { throw new ArgumentException("_client"); } ActiveOrder order = Mapper.Map <ActiveOrder>(_order); Client client = UnitOfWork.Clients.FindByPhoneNumber(_client.PhoneNumber); if (client is null) { client = Mapper.Map <Client>(_client); client.ActiveOrders.Add(order); UnitOfWork.Clients.Insert(client); } else { client.ActiveOrders.Add(order); UnitOfWork.Clients.Update(client); } UnitOfWork.Save(); }
public IActionResult GetOrder(int id) { ActiveOrderDTO order = orderAdminService.FindOrder(id); if (order is null) { return(NotFound()); } return(Ok(mapper.Map <ActiveOrderModel>(order))); }
public ActiveOrderDTO InsertOrder(ActiveOrderDTO order) { if (order is null) { throw new ArgumentNullException(nameof(order)); } ActiveOrder newOrder = Mapper.Map <ActiveOrder>(order); UnitOfWork.ActiveOrders.Insert(newOrder); UnitOfWork.Save(); return(Mapper.Map <ActiveOrderDTO>(newOrder)); }
public bool UpdateOrder(ActiveOrderDTO order) { if (order is null) { throw new ArgumentNullException(nameof(order)); } if (!UnitOfWork.Clients.CheckAvailability(order.ActiveOrderId)) { return(false); } ActiveOrder editOrder = Mapper.Map <ActiveOrder>(order); UnitOfWork.ActiveOrders.Update(editOrder); UnitOfWork.Save(); return(true); }
public IActionResult MakeOrder(ClientOrderViewModel request) { if (request.order.CheckOutDate != null && request.order.CheckInDate >= request.order.CheckOutDate) { ModelState.AddModelError("", "CheckInDate can't be more or equal than CheckOutDate"); } if (!ModelState.IsValid) { return(View(request.order)); } ClientDTO client = mapper.Map <ClientDTO>(request.client); ActiveOrderDTO order = mapper.Map <ActiveOrderDTO>(request.order); clientOrderService.AddClientActiveOrder(order, client); return(View("~/Views/Home/Index.cshtml")); }
public IActionResult PostOrder(ClientOrderViewModel request) { if (request is null || request.Client is null || request.Order is null) { return(BadRequest()); } if (request.Order.CheckOutDate != null && request.Order.CheckInDate >= request.Order.CheckOutDate) { ModelState.AddModelError("", "CheckInDate can't be more or equal than CheckOutDate"); } if (!ModelState.IsValid) { return(BadRequest()); } ClientDTO client = mapper.Map <ClientDTO>(request.Client); ActiveOrderDTO order = mapper.Map <ActiveOrderDTO>(request.Order); clientOrderService.AddClientActiveOrder(order, client); return(Ok()); }
public static void MakeOrder(IHotelService service) { int inputInt; Console.WriteLine("Такс заполните форму для поиска нужной комнаты"); HotelRoomSeachFilterDTO roomFilter = new HotelRoomSeachFilterDTO(); Console.WriteLine("Какого типа комфорта вы желаете?\n1 - Standart, 2 - Suite, 3 - De_Luxe, 4 - Duplex, 5 - Family_Room, 6 - Honeymoon_Room, 0 - Not important"); while (true) { Console.Write("Введите номер: "); if (int.TryParse(Console.ReadLine(), out inputInt)) { if (inputInt >= 0 && inputInt <= 6) { break; } } Console.WriteLine("Try again"); continue; } roomFilter.TypeComfort = (TypeComfortEnumDTO)inputInt; Console.WriteLine("Какого типа размера вы желаете?\n1 - SGL, 2 - DBL, 3- DBL_TWN, 4 - TRPL, 5 - DBL_EXB, 6 - TRPL_EXB, 0 - Not important"); while (true) { Console.Write("Введите номер: "); if (int.TryParse(Console.ReadLine(), out inputInt)) { if (inputInt >= 0 && inputInt <= 6) { break; } } Console.WriteLine("Try again"); continue; } roomFilter.TypeSize = (TypeSizeEnumDTO)inputInt; Console.WriteLine("На которую дату хотите заселится?"); Console.Write("Год: "); int year = int.Parse(Console.ReadLine()); Console.Write("Месяц: "); int month = int.Parse(Console.ReadLine()); Console.Write("День: "); int day = int.Parse(Console.ReadLine()); roomFilter.CheckInDate = new DateTime(year, month, day); var rooms = service.SearchFreeRooms(roomFilter); if (!rooms.Any()) { Console.WriteLine("К сожалению свободных подобных комнат нет на данную дату"); } else { Console.WriteLine("Найденные комнаты:"); foreach (var t in rooms) { Console.WriteLine("Номер: " + t.Number + " Цена за день: " + t.PricePerDay + " Комфорт: " + t.TypeComfort.ToString() + " Размер: " + t.TypeSize.ToString() + " Дата заезда: " + t.CheckInDate + " Макс дата отъезда: " + t.MaxCheckOutDate); } FreeHotelRoomDTO room; string inputString; while (true) { Console.Write("Какой номер предпочитаете: "); inputString = Console.ReadLine(); room = rooms.SingleOrDefault(p => p.Number == inputString); if (!(room is null)) { break; } Console.WriteLine("У Вас проблемы с цифрами))) Try Again"); continue; } ActiveOrderDTO order = new ActiveOrderDTO(); order.HotelRoomId = room.HotelRoomId; order.ChecknInDate = room.CheckInDate; Console.Write("На которое количество дней: "); int days = int.Parse(Console.ReadLine()); order.CheckOutDate = room.CheckInDate.AddDays(days); //order.DateRegistration = DateTime.Now; ClientDTO client = new ClientDTO(); Console.Write("Ваше имя: "); inputString = Console.ReadLine(); client.FirstName = inputString; Console.Write("Ваша фамилия: "); inputString = Console.ReadLine(); client.LastName = inputString; Console.Write("Ваш номер телефона: "); inputString = Console.ReadLine(); client.PhoneNumber = inputString; //order.Client = client; Console.Write("Бронь или оплата: 1 - Paid, 2 - Booked\n"); while (true) { Console.Write("Введите номер: "); if (int.TryParse(Console.ReadLine(), out inputInt)) { if (inputInt >= 1 && inputInt <= 2) { break; } } Console.WriteLine("Try again"); continue; } order.PaymentState = (PaymentStateEnumDTO)inputInt; service.AddClientActiveOrder(order, client); } service.Dispose(); }