Ejemplo n.º 1
0
        async Task ExecuteLoadDepartamentosCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Departamentos.Clear();
                var departamentos = await DataDepartamento.GetItemsAsync(true);

                foreach (var departamento in departamentos)
                {
                    Departamentos.Add(departamento);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
        private void Valores_porDefecto()
        {
            dtpEstudianteFechaNac.MaxDate = new DateTime(System.DateTime.Now.Year - 1, 12, 31);
            padre2_habilidato_desabilitado(false);
            chkPadreSecundario.Checked = false;
            mostrarpanel_siguiente(panelPadreApoderado);
            ocultarpanel(panelEstudiante);
            ocultarpanel(panelSegundoPadre);
            this.AcceptButton = btnAvanzar1;

            //Cargar los combos con los tipos de identificaciones
            cmbTipoDoc.Items.Clear();
            cmbPadreSecTipoDoc.Items.Clear();
            cmbEstudianteTipoDoc.Items.Clear();
            tiposidentificaciones.Clear();
            foreach (clsIdentificacion elemento in clsIdentificacion.Listar())
            {
                cmbTipoDoc.Items.Add(elemento.Nombre);
                cmbPadreSecTipoDoc.Items.Add(elemento.Nombre);
                cmbEstudianteTipoDoc.Items.Add(elemento.Nombre);
                tiposidentificaciones.Add(elemento);
            }
            cmbEstudianteTipoDoc.SelectedIndex = 0;
            cmbTipoDoc.SelectedIndex           = 0;
            cmbPadreSecTipoDoc.SelectedIndex   = 0;

            //Cargar los combos con los GRADOS
            cmbGrado.Items.Clear();
            Grados.Clear();
            foreach (clsGradoAcademico elemento in clsGradoAcademico.ListarGrados())
            {
                cmbGrado.Items.Add(elemento.Grado);
                Grados.Add(elemento);
            }
            cmbSeccion.Items.Clear();
            cmbSeccion.Items.Add("Selecione Grado ...");
            cmbSeccion.SelectedIndex = 0;

            Departamentos.Clear();
            cmbDepartamento.Items.Clear();
            cmbPadreSecDepartamento.Items.Clear();
            foreach (clsDepartemento elemento in clsDepartemento.listar())
            {
                cmbPadreSecDepartamento.Items.Add(elemento.Nombre);
                cmbDepartamento.Items.Add(elemento.Nombre);
                Departamentos.Add(elemento);
            }

            txtNumeroDocumento.Focus();
        }
        public ReactiveCadastroContratoViewModel(IReactiveRepository repository, DispatcherScheduler dispatcherScheduler)
            : base(repository, dispatcherScheduler)
        {
            // NOTE: Inicialização dos campos

            // Carrega os contratos do banco
            Repository.GetAll <Contrato>()
            .Busy(this)
            .Subscribe(contratos =>
            {
                foreach (var contrato in contratos)
                {
                    ContratosSalvos.Add(contrato);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega as naturalidades do banco de maneira assíncrona
            Repository.GetAll <Naturalidade>()
            .Busy(this)
            .Subscribe(naturalidades =>
            {
                foreach (var naturalidade in naturalidades)
                {
                    Naturalidades.Add(naturalidade);
                }
                NaturalidadeSelecionada = Naturalidades.First();
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            Repository.GetAll <EstadoCivil>()
            .Busy(this)
            .Subscribe(estadosCivis =>
            {
                foreach (var estadoCivil in estadosCivis)
                {
                    EstadosCivis.Add(estadoCivil);
                }
                EstadoCivilSelecionado = EstadosCivis.First();
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega os estados do banco de maneira assíncrona
            Repository.GetAll <Estado>()
            .Busy(this)
            .Subscribe(estados =>
            {
                foreach (var estado in estados)
                {
                    Estados.Add(estado);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega os bairros do banco de maneira assíncrona
            Repository.GetAll <Bairro>()
            .Busy(this)
            .Subscribe(bairros =>
            {
                foreach (var bairro in bairros)
                {
                    Bairros.Add(bairro);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega os cidades do banco de maneira assíncrona
            Repository.GetAll <Cidade>()
            .Busy(this)
            .Subscribe(cidades =>
            {
                foreach (var cidade in cidades)
                {
                    Cidades.Add(cidade);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega as secretarias do banco de maneira assíncrona
            Repository.GetAll <Secretaria>()
            .Busy(this)
            .Subscribe(secretarias =>
            {
                foreach (var secretaria in secretarias)
                {
                    Secretarias.Add(secretaria);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });

            // Carrega as jornadas do banco de maneira assíncrona
            Repository.GetAll <Jornada>()
            .Busy(this)
            .Subscribe(jornadas =>
            {
                foreach (var jornada in jornadas)
                {
                    Jornadas.Add(jornada);
                }
            },
                       ex =>
            {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
            });


            // NOTE: Validação dos campos.
            // Para cada campo abaixo é criado um fluxo que verifica se o campo está preenchido. Caso não esteja
            // uma notificação de erro será propagada. O fluxo é acionado de maneira reativa, através da interação
            // do usuário na aplicação.

            var nomeHasErrors = this.WhenAnyValue(s => s.Nome, texto => string.IsNullOrEmpty(texto));

            ObservarErroCampoObrigatorio(nomeHasErrors, nameof(Nome));


            var cpfHasErros = this.WhenAnyValue(s => s.Cpf, texto => string.IsNullOrEmpty(texto));

            ObservarErroCampoObrigatorio(cpfHasErros, nameof(Cpf));


            var rgHasErros = this.WhenAnyValue(s => s.Rg, texto => string.IsNullOrEmpty(texto));

            ObservarErroCampoObrigatorio(rgHasErros, nameof(Rg));


            var orgExpHasErros = this.WhenAnyValue(s => s.OrgExp, texto => string.IsNullOrEmpty(texto));

            ObservarErroCampoObrigatorio(orgExpHasErros, nameof(OrgExp));


            var enderecoHasErros = this.WhenAnyValue(s => s.Endereco, texto => string.IsNullOrEmpty(texto));

            ObservarErroCampoObrigatorio(enderecoHasErros, nameof(Endereco));


            var estadoCivilHasErros = this.WhenAny(s => s.EstadoCivilSelecionado, e => e.Value is null);


            var naturalidadeHasErros = this.WhenAny(s => s.NaturalidadeSelecionada, e => e.Value is null);


            var estadoHasErros = this.WhenAny(s => s.EstadoSelecionado, e => e.Value is null);


            var bairroHasErros = this.WhenAny(s => s.BairroSelecionado, e => e.Value is null);


            var cidadeHasErros = this.WhenAny(s => s.CidadeSelecionada, e => e.Value is null);


            var secretariaHasErros = this.WhenAny(s => s.SecretariaSelecionada, e => e.Value is null);


            var orgaoHasErros = this.WhenAny(s => s.OrgaoSelecionado, e => e.Value is null);


            var deparmentoHasErros = this.WhenAny(s => s.DepartamentoSelecionado, e => e.Value is null);


            var dotacaoHasErros = this.WhenAny(s => s.DotacaoSelecionado, e => e.Value is null);


            var descricaoVinculoHasErros = this.WhenAny(s => s.DescricaoVinculoSelecionado, e => e.Value is null);


            var cargoHasErros = this.WhenAny(s => s.CargoSelecionado, e => e.Value is null);

            var jornadaHasErros = this.WhenAny(s => s.JornadaSelecionada, e => e.Value is null);


            // Criamos um fluxo que é a combinação de todos os fluxos de validação acima.
            // Caso algum fluxo apresente o valor verdadeiro, isto é, caso algum fluxo notifique uma mensagem de erro,
            // este fluxo irá propagar uma notificação que fará com que o comando abaixo não possa ser executado.

            var salvarCanExecute = Observable.CombineLatest(
                this.WhenAnyValue(s => s.IsBusy),
                nomeHasErrors,
                cpfHasErros,
                rgHasErros,
                orgExpHasErros,
                estadoCivilHasErros,
                naturalidadeHasErros,
                estadoHasErros,
                enderecoHasErros,
                bairroHasErros,
                cidadeHasErros,
                secretariaHasErros,
                orgaoHasErros,
                deparmentoHasErros,
                dotacaoHasErros,
                descricaoVinculoHasErros,
                cargoHasErros,
                jornadaHasErros)
                                   .Select(observables => !observables.Any(r => r == true));

            SalvarCommand = ReactiveCommand.Create(SalvarExecute, salvarCanExecute);



            // Regras de negócio

            // Ao selecionar uma nova secretaria carregamos dados referentes a esta secretaria
            this.WhenAnyValue(s => s.SecretariaSelecionada)
            .Subscribe(newSecretaria =>
            {
                if (newSecretaria != null)
                {
                    Repository.Get <DescricaoVinculo>(e => e.SecretariaId == newSecretaria.SecretariaId)
                    .Busy(this)
                    .Subscribe(descricaoVinculos =>
                    {
                        foreach (var descricaoVinculo in descricaoVinculos)
                        {
                            DescricaoVinculos.Add(descricaoVinculo);
                        }
                    },
                               ex =>
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
                    });

                    Repository.Get <Orgao>(e => e.SecretariaId == newSecretaria.SecretariaId)
                    .Busy(this)
                    .Subscribe(orgaos =>
                    {
                        foreach (var orgao in orgaos)
                        {
                            Orgaos.Add(orgao);
                        }
                    },
                               ex =>
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
                    });

                    Repository.Get <Departamento>(e => e.SecretariaId == newSecretaria.SecretariaId)
                    .Busy(this)
                    .Subscribe(departamentos =>
                    {
                        foreach (var departamento in departamentos)
                        {
                            Departamentos.Add(departamento);
                        }
                    },
                               ex =>
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
                    });

                    Repository.Get <Dotacao>(e => e.SecretariaId == newSecretaria.SecretariaId)
                    .Busy(this)
                    .Subscribe(dotacoes =>
                    {
                        foreach (var dotacao in dotacoes)
                        {
                            Dotacoes.Add(dotacao);
                        }
                    },
                               ex =>
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
                    });

                    Repository.Get <Cargo>(e => e.SecretariaId == newSecretaria.SecretariaId)
                    .Busy(this)
                    .Subscribe(cargos =>
                    {
                        foreach (var cargo in cargos)
                        {
                            Cargos.Add(cargo);
                        }
                    },
                               ex =>
                    {
                        System.Windows.Forms.MessageBox.Show(ex.Message, "Erro");
                    });
                }
            });
        }
Ejemplo n.º 4
0
        // Isso é um construtor, presente em qualquer linguagem de programação.
        // Todo o código escrito aqui será chamado SOMENTE UMA VEZ durante a inicialização da janela
        public CadastroContratoViewModel() : base(new Repository())
        {
            // Carregamos todos os Contratos gravados no banco de dados. isso é similar a um "SELECT * FROM Contrato";
            var contratos = Repository.GetAll <Contrato>();

            // Populamos o combobox com os contatos recuperados
            foreach (var contrato in contratos)
            {
                ContratosSalvos.Add(contrato);
            }

            // Carregamos todas as Naturalidades gravados no banco de dados. isso é similar a um "SELECT * FROM Naturalidade";
            var naturalidades = Repository.GetAll <Naturalidade>();

            // Populamos o combobox com as naturalidades recuperados
            foreach (var naturalidade in naturalidades)
            {
                Naturalidades.Add(naturalidade);
            }

            // Carregamos todas os estados civis gravados no banco de dados. isso é similar a um "SELECT * FROM EstadoCivil";
            var estadosCivis = Repository.GetAll <EstadoCivil>();

            // Populamos o combobox com os estadosCivis recuperados
            foreach (var estadoCivil in estadosCivis)
            {
                EstadosCivis.Add(estadoCivil);
            }
            // Aqui definimos que inicialmente o estado civil selecionado será o primeiro elemento do combobox
            EstadoCivilSelecionado = EstadosCivis.First();

            // Carregamos todas os Estados gravados no banco de dados. isso é similar a um "SELECT * FROM Estado";
            var estados = Repository.GetAll <Estado>();

            // Populamos o combobox com os estados recuperados
            foreach (var estado in estados)
            {
                Estados.Add(estado);
            }

            // Carregamos todas os Bairros gravados no banco de dados. isso é similar a um "SELECT * FROM Bairro";
            var bairros = Repository.GetAll <Bairro>();

            // Populamos o combobox com os bairros recuperados
            foreach (var bairro in bairros)
            {
                Bairros.Add(bairro);
            }

            // Carregamos todas as Cidades gravados no banco de dados. isso é similar a um "SELECT * FROM Cidade";
            var cidades = Repository.GetAll <Cidade>();

            // Populamos o combobox com as cidades recuperados
            foreach (var cidade in cidades)
            {
                Cidades.Add(cidade);
            }

            // Carregamos todas as Secretarias gravados no banco de dados. isso é similar a um "SELECT * FROM Secretaria";
            var secretarias = Repository.GetAll <Secretaria>();

            // Populamos o combobox com as secretarias recuperados
            foreach (var secretaria in secretarias)
            {
                Secretarias.Add(secretaria);
            }

            // Carregamos todas as Jornadas gravados no banco de dados. isso é similar a um "SELECT * FROM Jornada";
            var jornadas = Repository.GetAll <Jornada>();

            // Populamos o combobox com as jornadas recuperados
            foreach (var jornada in jornadas)
            {
                Jornadas.Add(jornada);
            }

            // Criamos um comando para o botão de Salvar. O método "SalvarExecute" será chamado sempre que o usuário acionar o botão
            SalvarCommand = new DelegateCommand(SalvarExecute);


            // Criamos uma rotina que será executada sempre que a secretaria selecionada mudar.
            // Diferente dos demais códigos escritos no construtor, esse código pode ser chamado mais de uma vez.
            this.WhenAnyValue(s => s.SecretariaSelecionada)
            .Subscribe(newSecretaria =>
            {
                // Atenção: O código de todo esse bloco será executado sempre que uma nova secretaria for selecionada.
                // "newSecretaria" representa a nova secretaria selecionada pelo usuário.


                // Caso a nova secretaria selecionada não seja null, isto é, não seja uma secretária inválida
                if (newSecretaria != null)
                {
                    // Carregamos todas as descrições associadas a nova secretaria selecionada. isso é similar a um "SELECT * FROM DescricaoVinculo WHERE SecretariaId = @newSecretariaId";
                    var descricaoVinculos = Repository.Get <DescricaoVinculo>(e => e.SecretariaId == newSecretaria.SecretariaId);
                    // Populamos o combobox com as descricaoVinculos recuperados
                    foreach (var descricaoVinculo in descricaoVinculos)
                    {
                        DescricaoVinculos.Add(descricaoVinculo);
                    }

                    // Carregamos todos os orgãos associados a nova secretaria selecionada. isso é similar a um "SELECT * FROM Orgao WHERE SecretariaId = @newSecretariaId";
                    var orgaos = Repository.Get <Orgao>(e => e.SecretariaId == newSecretaria.SecretariaId);
                    // Populamos o combobox com os orgaos recuperados
                    foreach (var orgao in orgaos)
                    {
                        Orgaos.Add(orgao);
                    }

                    // Carregamos todos os departamentos associados a nova secretaria selecionada. isso é similar a um "SELECT * FROM Departamento WHERE SecretariaId = @newSecretariaId";
                    var departamentos = Repository.Get <Departamento>(e => e.SecretariaId == newSecretaria.SecretariaId);
                    // Populamos o combobox com os departamentos recuperados
                    foreach (var departamento in departamentos)
                    {
                        Departamentos.Add(departamento);
                    }

                    // Carregamos todos as dotações associadas a nova secretaria selecionada. isso é similar a um "SELECT * FROM Dotacao WHERE SecretariaId = @newSecretariaId";
                    var dotacoes = Repository.Get <Dotacao>(e => e.SecretariaId == newSecretaria.SecretariaId);
                    // Populamos o combobox com os departamentos recuperados
                    foreach (var dotacao in dotacoes)
                    {
                        Dotacoes.Add(dotacao);
                    }

                    // Carregamos todos os Cargos associados a nova secretaria selecionada. isso é similar a um "SELECT * FROM Cargo WHERE SecretariaId = @newSecretariaId";
                    var cargos = Repository.Get <Cargo>(e => e.SecretariaId == newSecretaria.SecretariaId);
                    // Populamos o combobox com os cargos recuperados
                    foreach (var cargo in cargos)
                    {
                        Cargos.Add(cargo);
                    }
                }
            });
        }
        private void MostrarDatos()
        {
            Estudiante = clsEstudiante.MostrarDatos(estudianteseleccionado);
            if (Estudiante != null)
            {
                int cont = 0;
                txtEstudianteNombre.Text             = Estudiante.ApellidosNombres;
                dtpEstudianteFechaNac.Value          = Estudiante.FechaNacimiento;
                txtEstudianteColegioProcedencia.Text = Estudiante.ColegioProcedencia;
                nudEstudiantePeso.Value          = Convert.ToDecimal(Estudiante.Peso);
                nudEstudianteTalla.Value         = Estudiante.Talla;
                txtEstudianteCondicionSalud.Text = Estudiante.CondicionSalud;
                txtEstudianteCelular.Text        = Estudiante.Celular;

                PrimerPadre   = clsPadre.MostrarDatos(Estudiante.PadreApoderado_NumDoc.NumeroDocumento);
                lblpadre.Text = PrimerPadre.NombreCompleto + " - " + PrimerPadre.NumeroDocumento;
                txtApellidosNombresPadre.Text = PrimerPadre.NombreCompleto;
                txtDirecion.Text = PrimerPadre.Direccion;
                txtCelular.Text  = PrimerPadre.NumeroCelular;
                txtTrabajo.Text  = PrimerPadre.Trabajo;
                txtCorreo.Text   = PrimerPadre.Correo;
                #region mostrar departamento del Primer Padre
                Departamentos.Clear();
                cmbDepartamento.Items.Clear();

                cont = 0;
                foreach (clsDepartemento departemento in clsDepartemento.listar())
                {
                    cmbDepartamento.Items.Add(departemento.Nombre);
                    Departamentos.Add(departemento);
                    if (departemento.IdDepartemento == PrimerPadre.Distrito.Provincia.Departamento.IdDepartemento)
                    {
                        cmbDepartamento.SelectedIndex = cont;
                    }
                    cont += 1;
                }
                cont = 0;
                cmbProvincia.Items.Clear();
                ProvinciasPadre.Clear();
                foreach (clsProvincia provincia in clsProvincia.ListarProvincias(PrimerPadre.Distrito.Provincia.Departamento.IdDepartemento))
                {
                    cmbProvincia.Items.Add(provincia.Nombre);
                    ProvinciasPadre.Add(provincia);
                    if (provincia.IdProvincia == PrimerPadre.Distrito.Provincia.IdProvincia)
                    {
                        cmbProvincia.SelectedIndex = cont;
                    }
                    cont += 1;
                }
                cont = 0;
                DistritosPadre.Clear();
                cmbDistrito.Items.Clear();
                foreach (clsDistrito distrito in clsDistrito.listarDistritos(PrimerPadre.Distrito.Provincia.IdProvincia))
                {
                    cmbDistrito.Items.Add(distrito.Nombre);
                    DistritosPadre.Add(distrito);
                    if (distrito.IdDistrito == PrimerPadre.Distrito.IdDistrito)
                    {
                        cmbDistrito.SelectedIndex = cont;
                    }
                    cont += 1;
                }
                #endregion

                if (Estudiante.Padre_NumDoc != null)
                {
                    panelModificarDatos.Height = 1080;
                    Controles_padreSec(true);

                    SegundoPadre = clsPadre.MostrarDatos(Estudiante.Padre_NumDoc.NumeroDocumento);
                    #region mostar combos del Segundo Padre
                    cont = 0;
                    foreach (clsDepartemento item in Departamentos)
                    {
                        cmbPadreSecDepartamento.Items.Add(item.Nombre);
                        if (item.IdDepartemento == SegundoPadre.Distrito.Provincia.Departamento.IdDepartemento)
                        {
                            cmbPadreSecDepartamento.SelectedIndex = cont;
                        }
                        cont += 1;
                    }
                    cont = 0;
                    ProvinciasPadreSec.Clear();
                    cmbPadreSecProvincia.Items.Clear();
                    foreach (clsProvincia item in clsProvincia.ListarProvincias(SegundoPadre.Distrito.Provincia.Departamento.IdDepartemento))
                    {
                        cmbPadreSecProvincia.Items.Add(item.Nombre);
                        ProvinciasPadreSec.Add(item);
                        if (item.IdProvincia == SegundoPadre.Distrito.Provincia.IdProvincia)
                        {
                            cmbPadreSecProvincia.SelectedIndex = cont;
                        }
                        cont += 1;
                    }
                    cont = 0;
                    DistritosPadreSec.Clear();
                    cmbPadreSecDistrito.Items.Clear();
                    foreach (clsDistrito item in clsDistrito.listarDistritos(SegundoPadre.Distrito.Provincia.IdProvincia))
                    {
                        cmbPadreSecDistrito.Items.Add(item.Nombre);
                        DistritosPadreSec.Add(item);
                        if (item.IdDistrito == SegundoPadre.Distrito.IdDistrito)
                        {
                            cmbPadreSecDistrito.SelectedIndex = cont;
                        }
                        cont += 1;
                    }
                    #endregion
                    lblpadresecundario.Text          = SegundoPadre.NombreCompleto + " - " + SegundoPadre.NumeroDocumento;
                    txtPadreSecApellidosNombres.Text = SegundoPadre.NombreCompleto;
                    txtPadreSecCelular.Text          = SegundoPadre.NumeroCelular;
                    txtPadreSecCorreo.Text           = SegundoPadre.Correo;
                    txtPadreSecDireccion.Text        = SegundoPadre.Direccion;
                    txtPadreSecTrabajo.Text          = SegundoPadre.Trabajo;
                }
                else
                {
                    panelModificarDatos.Height = 700;
                    Controles_padreSec(false);
                }
            }
        }