/// <summary> /// Cria o token sem fazer referência ao usuário, ele só trará os dados do usuário ao ser buscado no banco. /// </summary> /// <param name="usuarioEmail">Email utilizado no login do usuário.</param> /// <param name="validadeToken">Validade do token em dias, será contado a partir da data de criação.</param> public TokenSenha(string usuarioEmail, int validadeToken) { DataCadastro = DateTime.Now; UsuarioEmail = usuarioEmail.ToLower(); Token = Guid.NewGuid().ToString().ToLower(); Ativo = true; Validade = DataCadastro.AddDays(validadeToken); }
public DateTime CalcularDataEstimada() { if (Complexidade == Complexidade.Baixa) { return(DataCadastro.AddDays(3)); } else if (Complexidade == Complexidade.Media) { return(DataCadastro.AddDays(10)); } else { return(DataCadastro.AddDays(20)); } }
/// <summary> /// Método responsável por calcular a data prevista de conclusão da meta, de acordo com as atualizações do usuário /// </summary> /// <param name="meta"></param> public void SetDataPrevista(MetasPorLivros meta, Livros livro) { var diferencaEntreDatas = DateTime.Now.Subtract(DataCadastro); var leituraEsperada = diferencaEntreDatas.Days * PaginasDiarias; if (PaginasDiarias > 0) { if (PaginasOuCapitulosLidos < leituraEsperada) { var diasEsperados = livro.QuantidadePaginas / PaginasDiarias; var diasAtrasados = diasEsperados - ((livro.QuantidadePaginas - PaginasOuCapitulosLidos) / PaginasDiarias); var dias = Math.Ceiling((double)diasAtrasados); if (DataFim != null) { DataPrevista = DataFim.Value.AddDays(dias); } } else { var diasAdiantados = (livro.QuantidadePaginas - PaginasOuCapitulosLidos) / PaginasDiarias; DataPrevista = DataCadastro.AddDays(diasAdiantados); } } else if (CapitulosDiarios > 0) { if (PaginasOuCapitulosLidos < leituraEsperada) { var diasEsperados = livro.QuantidadeCapitulos / CapitulosDiarios; var diasAtrasados = diasEsperados - ((livro.QuantidadeCapitulos - PaginasOuCapitulosLidos) / CapitulosDiarios); var dias = Math.Ceiling((double)diasAtrasados); if (DataFim != null) { DataPrevista = DataFim.Value.AddDays(dias); } } else { var diasAdiantados = (livro.QuantidadeCapitulos - PaginasOuCapitulosLidos) / CapitulosDiarios; DataPrevista = DataCadastro.AddDays(diasAdiantados); } } }