Files
WhiteLagoon/WhiteLagoon.Web/Controllers/VillaNumberController.cs
T
2025-05-20 11:46:50 -04:00

142 lines
4.6 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using WhiteLagoon.Application.Common.Interfaces;
using WhiteLagoon.Application.Services.Interface;
using WhiteLagoon.Domain.Entities;
using WhiteLagoon.Infrastructure.Data;
using WhiteLagoon.Web.ViewModels;
namespace WhiteLagoon.Web.Controllers
{
public class VillaNumberController : Controller
{
private readonly IVillaNumberService _villaNumberService;
private readonly IVillaService _villaService;
public VillaNumberController(IVillaNumberService villaNumberService, IVillaService villaService)
{
_villaService = villaService;
_villaNumberService = villaNumberService;
}
public IActionResult Index()
{
var villaNumbers = _villaNumberService.GetAllVillaNumbers();
return View(villaNumbers);
}
public IActionResult Create()
{
VillaNumberVM villaNumberVM = new()
{
VillaList = _villaService.GetAllVillas().Select(u => new SelectListItem
{
Text = u.Name,
Value = u.Id.ToString()
})
};
return View(villaNumberVM);
}
[HttpPost]
public IActionResult Create(VillaNumberVM obj)
{
//ModelState.Remove("Villa");
bool roomNumberExists = _villaNumberService.CheckVillaNumberExists(obj.VillaNumber.Villa_Number);
if (ModelState.IsValid && !roomNumberExists)
{
_villaNumberService.CreateVillaNumber(obj.VillaNumber);
TempData["success"] = "The villa Number has been created successfully.";
return RedirectToAction(nameof(Index));
}
if (roomNumberExists)
{
TempData["error"] = "The villa Number already exists.";
}
obj.VillaList = _villaService.GetAllVillas().Select(u => new SelectListItem
{
Text = u.Name,
Value = u.Id.ToString()
});
return View(obj);
}
public IActionResult Update(int villaNumberId)
{
VillaNumberVM villaNumberVM = new()
{
VillaList = _villaService.GetAllVillas().Select(u => new SelectListItem
{
Text = u.Name,
Value = u.Id.ToString()
}),
VillaNumber = _villaNumberService.GetVillaNumberById(villaNumberId)
};
if (villaNumberVM.VillaNumber == null)
{
return RedirectToAction("Error", "Home");
}
return View(villaNumberVM);
}
[HttpPost]
public IActionResult Update(VillaNumberVM villaNumberVM)
{
if (ModelState.IsValid)
{
_villaNumberService.UpdateVillaNumber(villaNumberVM.VillaNumber);
TempData["success"] = "The villa Number has been updated successfully.";
return RedirectToAction(nameof(Index));
}
villaNumberVM.VillaList = _villaService.GetAllVillas().Select(u => new SelectListItem
{
Text = u.Name,
Value = u.Id.ToString()
});
return View(villaNumberVM);
}
public IActionResult Delete(int villaNumberId)
{
VillaNumberVM villaNumberVM = new()
{
VillaList = _villaService.GetAllVillas().Select(u => new SelectListItem
{
Text = u.Name,
Value = u.Id.ToString()
}),
VillaNumber = _villaNumberService.GetVillaNumberById(villaNumberId)
};
if (villaNumberVM.VillaNumber == null)
{
return RedirectToAction("Error", "Home");
}
return View(villaNumberVM);
}
[HttpPost]
public IActionResult Delete(VillaNumberVM villaNumberVM)
{
VillaNumber? objFromDb = _villaNumberService.GetVillaNumberById(villaNumberVM.VillaNumber.Villa_Number);
if (objFromDb is not null)
{
_villaNumberService.DeleteVillaNumber(objFromDb.Villa_Number);
TempData["success"] = "The villa number has been deleted successfully.";
return RedirectToAction(nameof(Index));
}
TempData["error"] = "The villa number could not be deleted.";
return View();
}
}
}