public async Task <ISaida> CadastrarPeriodo(CadastrarPeriodoEntrada cadastroEntrada) { // Verifica se as informações para cadastro foram informadas corretamente if (cadastroEntrada.Invalido) { return(new Saida(false, cadastroEntrada.Mensagens, null)); } // Verifica se já existe um período que abrange as datas informadas this.NotificarSeVerdadeiro( await _periodoRepositorio.VerificarExistenciaPorDataInicioFim(cadastroEntrada.IdUsuario, cadastroEntrada.DataInicio, cadastroEntrada.DataFim), PeriodoMensagem.Datas_Abrangidas_Outro_Periodo); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var periodo = new Periodo(cadastroEntrada); await _periodoRepositorio.Inserir(periodo); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { PeriodoMensagem.Periodo_Cadastrado_Com_Sucesso }, new PeriodoSaida(periodo))); }
public async Task <ISaida> CadastrarPeriodo([FromBody, SwaggerParameter("Informações de cadastro do período.", Required = true)] CadastrarPeriodoViewModel model) { var cadastrarEntrada = new CadastrarPeriodoEntrada( base.ObterIdUsuarioClaim(), model.Nome, model.DataInicio.Value, model.DataFim.Value); return(await _periodoServico.CadastrarPeriodo(cadastrarEntrada)); }
public void Nao_Deve_Cadastrar_Periodo_Com_Parametros_Invalidos() { var cadastroEntrada = new CadastrarPeriodoEntrada(0, string.Empty, DateTime.Now, DateTime.Now.AddDays(-2)); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.CadastrarPeriodo(cadastroEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Data_Periodo_Invalidas), string.Join(", ", saida.Mensagens)); }
public Periodo(CadastrarPeriodoEntrada cadastrarEntrada) { if (cadastrarEntrada.Invalido) { return; } this.IdUsuario = cadastrarEntrada.IdUsuario; this.Nome = cadastrarEntrada.Nome; this.DataInicio = cadastrarEntrada.DataInicio; this.DataFim = cadastrarEntrada.DataFim; }
public void Nao_Deve_Cadastrar_Periodo_Com_Datas_Abrangidas_Por_Outro_Periodo() { var idUsuario = 1; _periodoRepositorio.VerificarExistenciaPorDataInicioFim(idUsuario, DateTime.Now.Date, DateTime.Now.Date.AddDays(5)) .Returns(true); var cadastroEntrada = new CadastrarPeriodoEntrada(idUsuario, "Período X", DateTime.Now.Date, DateTime.Now.Date.AddDays(5)); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.CadastrarPeriodo(cadastroEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Datas_Abrangidas_Outro_Periodo), string.Join(", ", saida.Mensagens)); }