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);
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 7
0
        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();
        }