public async Task <ISaida> AlterarPeriodo([FromBody, SwaggerParameter("Informações para alteração de um período.", Required = true)] AlterarPeriodoViewModel model) { var alterarEntrada = new AlterarPeriodoEntrada( model.IdPeriodo, model.Nome, model.DataInicio.Value, model.DataFim.Value, base.ObterIdUsuarioClaim()); return(await _periodoServico.AlterarPeriodo(alterarEntrada)); }
public void Alterar(AlterarPeriodoEntrada alterarEntrada) { if (alterarEntrada.Invalido || alterarEntrada.IdPeriodo != this.Id) { return; } this.Nome = alterarEntrada.Nome; this.DataInicio = alterarEntrada.DataInicio; this.DataFim = alterarEntrada.DataFim; }
public void Nao_Deve_Alterar_Periodo_Com_Parametros_Invalidos() { var idUsuario = 0; var alterarEntrada = new AlterarPeriodoEntrada(0, string.Empty, DateTime.Now, DateTime.Now.AddDays(-2), idUsuario); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == Mensagem.Id_Usuario_Invalido), string.Join(", ", saida.Mensagens)); }
public void Nao_Deve_Alterar_Periodo_Com_Id_Inexistente() { var idUsuario = 1; var idPeriodo = 1; _periodoRepositorio.ObterPorId(idPeriodo, true) .Returns((Periodo)null); var alterarEntrada = new AlterarPeriodoEntrada(idPeriodo, "Período 1", DateTime.Now, DateTime.Now.AddDays(2), idUsuario); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == string.Format(PeriodoMensagem.Id_Periodo_Nao_Existe, idPeriodo)), string.Join(", ", saida.Mensagens)); }
public async Task <ISaida> AlterarPeriodo(AlterarPeriodoEntrada alterarEntrada) { // Verifica se as informações para alteração foram informadas corretamente if (alterarEntrada.Invalido) { return(new Saida(false, alterarEntrada.Mensagens, null)); } var periodo = await _periodoRepositorio.ObterPorId(alterarEntrada.IdPeriodo, true); // Verifica se o período existe this.NotificarSeNulo(periodo, PeriodoMensagem.Id_Periodo_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se o período pertece ao usuário informado. this.NotificarSeDiferentes(periodo.IdUsuario, alterarEntrada.IdUsuario, PeriodoMensagem.Periodo_Alterar_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se já existe um período que abrange as datas informadas this.NotificarSeVerdadeiro( await _periodoRepositorio.VerificarExistenciaPorDataInicioFim(alterarEntrada.IdUsuario, alterarEntrada.DataInicio, alterarEntrada.DataFim, alterarEntrada.IdPeriodo), PeriodoMensagem.Datas_Abrangidas_Outro_Periodo); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } periodo.Alterar(alterarEntrada); _periodoRepositorio.Atualizar(periodo); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { PeriodoMensagem.Periodo_Alterado_Com_Sucesso }, new PeriodoSaida(periodo))); }
public void Deve_Alterar_Periodo() { var idUsuario = 1; var idPeriodo = 1; var periodo = new Periodo(new CadastrarPeriodoEntrada(idUsuario, "Período 1", DateTime.Now, DateTime.Now.AddDays(5))); typeof(Periodo).GetProperty("Id").SetValue(periodo, idPeriodo); _periodoRepositorio.ObterPorId(idPeriodo, true) .Returns(periodo); var alterarEntrada = new AlterarPeriodoEntrada(idPeriodo, "Período 1 alterado", DateTime.Now.Date, DateTime.Now.Date.AddDays(5), idUsuario); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result; Assert.IsTrue(saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Periodo_Alterado_Com_Sucesso), string.Join(", ", saida.Mensagens)); }