public Solicitacao RealizarAprovacao(Solicitacao solicitacao, Cliente responsavel, bool aprovado, string observacoes, Programa programa) { if (solicitacao.Situacao == SituacaoDaSolicitacao.Aprovacao) { if (responsavel == null) solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmClientePodeAprovar); var aprovacao = new AprovacaoDeSolicitacao { Aprovado = aprovado, DataDeAprovacao = SystemTime.Now, Observacoes = observacoes, Responsavel = responsavel, Programa = programa }; solicitacao.Aprovacao = aprovacao; solicitacao.Situacao = aprovado ? SituacaoDaSolicitacao.Processo : SituacaoDaSolicitacao.Cancelado; return solicitacao; } solicitacao.AdicionarRegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoParaAprovacao); return solicitacao; }
public Solicitacao RealizarAprovacao(Solicitacao solicitacao, Cliente responsavel, bool aprovado, string observacoes, Programa programa) { if (solicitacao.Situacao == SituacaoDaSolicitacao.Aprovacao) { if (responsavel == null) { solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmClientePodeAprovar); } var aprovacao = new AprovacaoDeSolicitacao { Aprovado = aprovado, DataDeAprovacao = SystemTime.Now, Observacoes = observacoes, Responsavel = responsavel, Programa = programa }; solicitacao.Aprovacao = aprovacao; solicitacao.Situacao = aprovado ? SituacaoDaSolicitacao.Processo : SituacaoDaSolicitacao.Cancelado; return(solicitacao); } solicitacao.AdicionarRegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoParaAprovacao); return(solicitacao); }