using Microsoft.AspNetCore.Mvc; using RDBMS_lab4.Models; using RDBMS_lab4.ViewModels; using System.Xml.Linq; namespace RDBMS_lab4.Controllers { public class ServicesController : Controller { public ServicesController() { } [HttpGet("get")] public IActionResult get() { try { using var context = new beautySalonContext(); var res = context.Services.Select(b => new ServiceViue(b)).ToList(); return Ok(res); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpGet("get/{Id}")] public IActionResult get([FromRoute] int Id) { try { using var context = new beautySalonContext(); var res = context.Services.FirstOrDefault(b => b.Id == Id); if (res == null) { return Ok(null); } return Ok(new ServiceViue(res)); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("create")] public IActionResult create([FromBody] ServiceViue service) { try { using var context = new beautySalonContext(); var res = context.Services.Add(new() { Name = service.Name, Price = (decimal)service.Price, Duration = new TimeSpan(service.Duration) }); context.SaveChanges(); if (res == null) { return BadRequest(new NullReferenceException()); } return Ok(new ServiceViue(res.Entity)); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPut("update")] public IActionResult update([FromBody] ServiceViue service) { try { using var context = new beautySalonContext(); var res = context.Services.FirstOrDefault(b => b.Id == service.Id); res.Name = service.Name; res.Price = (decimal)service.Price; res.Duration = new TimeSpan(service.Duration); context.SaveChanges(); return Ok(new ServiceViue(res)); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpDelete("delete/{Id}")] public IActionResult delete([FromRoute] int Id) { try { using var context = new beautySalonContext(); var res = context.Services.FirstOrDefault(b => b.Id == Id); if (res != null) { context.Services.Remove(res); context.SaveChanges(); } if (res == null) { return BadRequest(new NullReferenceException()); } return Ok(new ServiceViue(res)); } catch (Exception ex) { return BadRequest(ex.Message); } } } }