Exemplo n.º 1
0
    public async Task <IActionResult> Settle(int apartmentId, string name)
    {
        //IQueryable<Visitors> allVisitors = _dbContext.Visitors.Select(x => x);
        Apartment apartment = await _dbContext.Apartments.FirstOrDefaultAsync(x => x.Id == apartmentId);

        SettleViewModel settlerModel = new SettleViewModel
        {
            Apartment = apartment,
            Visitor   = new Visitor {
                Name = name
            }
        };

        return(View(settlerModel));
    }
Exemplo n.º 2
0
    public async Task <IActionResult> Settle(SettleViewModel settleModel, int id, string name)
    {
        Apartment apartment = _dbContext.Apartments.FirstOrDefault(x => x.Id == id);
        Visitor   visitor   = new Visitor {
            ArrivalDate = settleModel.Apartment.ArrivalDate, Name = name
        };

        //Заполняем дату заселения и убытия
        apartment.ArrivalDate     = settleModel.Apartment.ArrivalDate;
        apartment.DateOfDeparture = settleModel.Apartment.DateOfDeparture;
        apartment.FinalPrice      = ((apartment.DateOfDeparture.Day * 24 + apartment.DateOfDeparture.Hour) - (apartment.ArrivalDate.Day * 24 + apartment.ArrivalDate.Hour)) * apartment.PricePerHour
                                    + (apartment.PricePerHour * Int32.Parse(apartment.ApartmentType));
        apartment.Visitor = name;
        apartment.Free    = false;
        //Добавляем в БД нового посетителя
        _dbContext.Visitors.Add(visitor);
        //Обновляем информаю об аппартаментах
        _dbContext.Update(apartment);
        //Срхраняем изменения
        await _dbContext.SaveChangesAsync();

        return(RedirectToAction("Main"));
    }
Exemplo n.º 3
0
 public IActionResult CheckNumberOfRooms(SettleViewModel appartmentNumber)
 {
     //Контролируем, чтобы постояльцев было не больше, чем вместимость аппартамента
     return(Json(appartmentNumber.Apartment.MaxTenants >= appartmentNumber.Apartment.CurrentTenants));
 }