예제 #1
0
        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);
        }
예제 #2
0
        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();
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
        }