Example #1
0
        public Solicitacao RealizarEntrega(Solicitacao solicitacao, Cliente responsavel, bool aceita, string observacoes, Programa programa)
        {
            if (solicitacao.Situacao == SituacaoDaSolicitacao.Entregue)
            {
                if (responsavel == null)
                {
                    solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteClientePodeAceitarEntrega);
                }

                var entrega = new EntregaDaSolicitacao
                {
                    Aceita       = aceita,
                    DataDoAceite = SystemTime.Now,
                    Observacoes  = observacoes,
                    Responsavel  = responsavel,
                    Programa     = programa
                };
                solicitacao.Entrega  = entrega;
                solicitacao.Situacao = entrega.Aceita
                                           ? SituacaoDaSolicitacao.Finalizado
                                           : SituacaoDaSolicitacao.Cancelado;
                return(solicitacao);
            }
            solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEntrege);
            return(solicitacao);
        }
        public Solicitacao RealizarEntrega(Solicitacao solicitacao, Cliente responsavel, bool aceita, string observacoes, Programa programa)
        {
            if (solicitacao.Situacao == SituacaoDaSolicitacao.Entregue)
            {
                if (responsavel == null)
                    solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteClientePodeAceitarEntrega);

                var entrega = new EntregaDaSolicitacao
                                  {
                                      Aceita = aceita,
                                      DataDoAceite = SystemTime.Now,
                                      Observacoes = observacoes,
                                      Responsavel = responsavel,
                                      Programa = programa
                                  };
                solicitacao.Entrega = entrega;
                solicitacao.Situacao = entrega.Aceita
                                           ? SituacaoDaSolicitacao.Finalizado
                                           : SituacaoDaSolicitacao.Cancelado;
                return solicitacao;
            }
            solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEntrege);
            return solicitacao;
        }