using Microsoft.AspNetCore.Mvc; using RDBMS_lab4.Models; using RDBMS_lab4.ViewModels; using static System.Runtime.InteropServices.JavaScript.JSType; namespace RDBMS_lab4.Controllers { [Route("api/[controller]")] public class TimetablesController : Controller { public TimetablesController() { } [HttpGet("get")] public IActionResult get() { try { using var context = new beautySalonContext(); var res = context.Timetables.Select(b => new TimetableViue(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.Timetables.FirstOrDefault(b => b.Id == Id); if (res == null) { return Ok(null); } return Ok(new TimetableViue(res)); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("create")] public IActionResult create([FromBody] TimetableViue timetable) { try { using var context = new beautySalonContext(); var res = context.Timetables.Add(new() { Date = (DateTime)timetable.Date, Buyerid = (int)(timetable.Buyerid), Serviceid = (int)(timetable.Serviceid), Workerid = (int)(timetable.Workerid) }); context.SaveChanges(); if (res == null) { return BadRequest(new NullReferenceException()); } return Ok(new TimetableViue(res.Entity)); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPut("update")] public IActionResult update([FromBody] TimetableViue timetable) { try { using var context = new beautySalonContext(); var res = context.Timetables.FirstOrDefault(b => b.Id == timetable.Id); res.Date = (DateTime)timetable.Date; res.Buyerid = (int)(timetable.Buyerid); res.Serviceid = (int)(timetable.Serviceid); res.Workerid = (int)(timetable.Workerid); context.SaveChanges(); return Ok(new TimetableViue(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.Timetables.FirstOrDefault(b => b.Id == Id); if (res != null) { context.Timetables.Remove(res); context.SaveChanges(); } if (res == null) { return BadRequest(new NullReferenceException()); } return Ok(new TimetableViue(res)); } catch (Exception ex) { return BadRequest(ex.Message); } } } }