public IActionResult PostTreinoSemana([FromBody] TreinoSemanaAddDTO TreinoSemanaAdd, [FromServices] TreinosDAO TreinosDAO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } TreinoSemanaInsertDTO TreinoSemanaInsert = new TreinoSemanaInsertDTO(); try { int _IDUsuario = User.Identity.GetIDUsuario(); TreinoSemanaInsert = TreinosEVR.InsertTreinoSemanaEVR(_IDUsuario, TreinoSemanaAdd, TreinosDAO); if (!TreinoSemanaInsert.Status) { return(BadRequest(TreinoSemanaInsert.Msg)); } TreinosDAO.InsertTreinoSemanas(_IDUsuario, TreinoSemanaInsert.DataInicio, TreinoSemanaInsert.IDSemana, TreinoSemanaAdd.IDSemanaDia, TreinoSemanaInsert.IDTipo); } catch (Exception ex) { return(BadRequest(ex.InnerException)); } return(Ok(TreinoSemanaInsert)); }
public static TreinoSemanaInsertDTO InsertTreinoSemanaEVR(int IDUsuario, TreinoSemanaAddDTO TreinoSemanaAdd, TreinosDAO TreinosDAO) { TreinoSemanaInsertDTO _TreinoSemanaInsert = new TreinoSemanaInsertDTO(); SemanaDiasDTO _SemanaDias = TreinosDAO.SelectSemanaDiaPorIDSemana(TreinoSemanaAdd.IDSemanaDia); if (_SemanaDias == null) { _TreinoSemanaInsert.Status = false; _TreinoSemanaInsert.Msg = "Dia da semana inválido!"; return(_TreinoSemanaInsert); } DateHelpers _DateHelpers = new DateHelpers(); DateTime DataInicio = _DateHelpers.GetNextDateForDay(TreinoSemanaAdd.IDSemanaDia); List <SemanaUsuariosDTO> _SemanaUsuarios = TreinosDAO.SelectSemanasUsuarioPorIDUsuario(IDUsuario); if (DataInicio < DateTime.Now) { _TreinoSemanaInsert.Status = false; _TreinoSemanaInsert.Msg = "Data Inicio deve ser maior ou igual a data de hoje!"; return(_TreinoSemanaInsert); } SemanaUsuariosDTO _SemanaUsuario = _SemanaUsuarios.Where((semana) => semana.IDUsuario == IDUsuario && semana.Ativo == true).FirstOrDefault(); if (_SemanaUsuario != null) { if (_SemanaUsuario.DataFim > DateTime.Now) { _TreinoSemanaInsert.Status = false; _TreinoSemanaInsert.Msg = "Voce só poderá solicitar um novo treino a partir de: " + _SemanaUsuario.DataFim; return(_TreinoSemanaInsert); } } List <SemanasDTO> _Semanas = TreinosDAO.SelectSemanas(); List <SemanaUsuariosDTO> _SemanasUsuarios = TreinosDAO.SelectSemanasUsuarioPorIDUsuario(IDUsuario); var Semanas = _Semanas.Where(item => !_SemanasUsuarios.Any(item2 => item2.IDSemana == item.IDSemana)); int _IDSemana = Semanas.Min((semana) => semana.IDSemana); int _IDTipo = TreinosDAO.SelectTreinosPorIDSemana(_IDSemana).FirstOrDefault().IDTipo; _TreinoSemanaInsert.IDTipo = _IDTipo; _TreinoSemanaInsert.DataInicio = DataInicio; _TreinoSemanaInsert.IDSemana = _IDSemana; return(_TreinoSemanaInsert); }