private SemanaUsuariosDTO PrepareSemanaUsuario(int IDUsuario, DateTime DataInicio, int IDSemana, int IDTipo) { SemanaUsuariosDTO _SemanaUsuarioAdd = new SemanaUsuariosDTO(); List <TreinoUsuariosDTO> _treinoUsuarios = SelectTreinoUsuariosIDSemana(IDSemana); _SemanaUsuarioAdd.IDUsuario = IDUsuario; _SemanaUsuarioAdd.DataInicio = DataInicio; _SemanaUsuarioAdd.DataFim = DataInicio.AddDays(_treinoUsuarios.Count()); _SemanaUsuarioAdd.IDTipo = IDTipo; _SemanaUsuarioAdd.IDSemana = IDSemana; return(_SemanaUsuarioAdd); }
public void UpdateTreino(int IDUsuario, DateTime DataInicio, int IDSemana, int IDTipo) { try { SemanaUsuariosDTO _SemanaUsuarioAdd = PrepareSemanaUsuario(IDUsuario, DataInicio, IDSemana, IDTipo); DbTreino.Add(_SemanaUsuarioAdd); } catch { throw; } DbTreino.SaveChanges(); }
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); }
public void InsertTreinoSemanas(int IDUsuario, DateTime DataInicio, int IDSemana, int IDSemanaDia, int IDTipo) { try { PopulaTreinoUsuarios(IDUsuario); SemanaUsuariosDTO _SemanaUsuarioAdd = PrepareSemanaUsuario(IDUsuario, DataInicio, IDSemana, IDTipo); List <TreinoUsuariosDTO> _TreinoUsuarios = DbTreino.TreinoUsuarios.Where((item) => item.IDUsuario == IDUsuario).ToList(); List <SemanaUsuariosDTO> _SemanaUsuarios = DbTreino.SemanaUsuarios.Where((item) => item.IDUsuario == IDUsuario).ToList(); _SemanaUsuarios.ForEach((item) => item.Ativo = false); List <TreinoUsuariosDTO> _TreinoUsuariosAntigo = _TreinoUsuarios.Where((item) => item.IDUsuario == IDUsuario && item.Ativo == true).ToList(); _TreinoUsuariosAntigo.ForEach((item) => item.Ativo = false); List <TreinoUsuariosDTO> _TreinoUsuariosNovo = _TreinoUsuarios.Where((item) => item.IDUsuario == IDUsuario && item.IDSemana == IDSemana).ToList(); int _IDSemanaDia = IDSemanaDia; _TreinoUsuariosNovo.ForEach((item) => { item.IDSemanaDia = _IDSemanaDia; item.Ativo = true; if (_IDSemanaDia == 7) { _IDSemanaDia = 1; } else { _IDSemanaDia = _IDSemanaDia + 1; } }); DbTreino.UpdateRange(_TreinoUsuariosAntigo); DbTreino.UpdateRange(_TreinoUsuariosNovo); DbTreino.UpdateRange(_SemanaUsuarios); DbTreino.Add(_SemanaUsuarioAdd); } catch { throw; } DbTreino.SaveChanges(); }