private void FinalizarRegistro(TipoFinalizacaoEnum tipoFinalizacao)
        {
            if (tipoFinalizacao == TipoFinalizacaoEnum.LANCAMENTO)
            {
                return;
            }

            if (!ModoEdicao)
            {
                ModeloRegistro.Id = DataSaveManager.Instance.GetModeloNextId();
            }

            CurrentScreen.Save(ModeloRegistro);

            if (!ModoEdicao)
            {
                DataSaveManager.Instance.SalvarModelo(ModeloRegistro);
            }
            else
            {
                DataSaveManager.Instance.AtualizarModelo(ModeloRegistro);
            }

            ModoEdicao = false;
            Messenger.Default.Send(new InserirModeloMessage()
            {
                Modelo = ModeloRegistro
            });

            ModeloRegistro = new Modelo();
            CurrentRegisterStep.Cleanup();
        }
        private void CommandReturn()
        {
            if (ModoEdicao)
            {
                ModoEdicao = false;
            }

            MessageBoxResult result = MessageBox.Show("Deseja salvar as alterações realizadas para continuar mais tarde ?", "Atenção", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);

            if (result == MessageBoxResult.Cancel)
            {
                return;
            }

            if (result == MessageBoxResult.Yes)
            {
                FinalizarRegistro(TipoFinalizacaoEnum.LANCAMENTO, false);

                WindowManager.Instance.CloseLancamentoCreate();
                return;
            }

            LancamentoRegistro = new Lancamento();
            CurrentRegisterStep.Cleanup();

            WindowManager.Instance.CloseLancamentoCreate();
        }
        private void CommandReturn()
        {
            MessageBoxResult result = MessageBox.Show("Cuidado ! Caso tenha feito alguma mudança elas não serão salvas. Deseja mesmo sair ?", "Atenção", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.No)
            {
                return;
            }

            if (ModoEdicao)
            {
                ModoEdicao = false;
            }

            ModeloRegistro = new Modelo();
            CurrentRegisterStep.Cleanup();

            WindowManager.Instance.CloseModelCreate();
        }
        private void FinalizarRegistro(TipoFinalizacaoEnum tipoFinalizacao, bool conclusaoRegistro = true)
        {
            if (tipoFinalizacao == TipoFinalizacaoEnum.MODELO)
            {
                return;
            }

            if (!ModoEdicao)
            {
                LancamentoRegistro.Id = DataSaveManager.Instance.GetLancamentoNextId();
            }

            if (conclusaoRegistro)
            {
                Algoritmo.Algoritmo.Instance.CalcularDecisao(LancamentoRegistro);
                LancamentoRegistro.Estado         = EstadoLancamentoEnum.CONCLUIDO;
                LancamentoRegistro.DataLancamento = DateTime.Now;
            }
            else
            {
                LancamentoRegistro.Estado = Enum.EstadoLancamentoEnum.PROCESSANDO;
            }

            CurrentScreen.Save(LancamentoRegistro);

            if (!ModoEdicao)
            {
                DataSaveManager.Instance.SalvarLancamento(LancamentoRegistro);
            }
            else
            {
                DataSaveManager.Instance.AtualizarLancamento(LancamentoRegistro);
            }

            ModoEdicao = false;
            Messenger.Default.Send(new InserirLancamentoMessage()
            {
                Lancamento = LancamentoRegistro
            });

            LancamentoRegistro = new Lancamento();
            CurrentRegisterStep.Cleanup();
        }