private void ButtonCriar_Click(object sender, EventArgs e) { if (ValidarForm()) { CadernetaModelo caderneta = new CadernetaModelo( TextNome.Text, TextQuantidade.Text, TextQuantidadeCarteira.Text, TextCarteiraCusto.Text); CromoGestLibrary.GlobalConfig.Connection.NewCaderneta(caderneta); cadernetasExistentes.Add(caderneta); LigaLista(); // TODO - Apagar proxima linha quando implentar bindagem aos TextBoxes ComboBoxCadernetas.SelectedValue = caderneta.Id; LigaGridPaginas(); ToolStripLabelNovaCaderneta.Text = "Proximo passo é preencher informação das páginas. Descrição da pagina e quantidade de cromos por pagina"; ToolStripNovaCaderneta.Update(); } else { MessageBox.Show("Campos incorrectos, verificar e tentar novamente."); } }
private void ButtonGravar_Click(object sender, EventArgs e) { if (ConfirmadoGravar() && DadosValidados()) { CadernetaModelo caderneta = (CadernetaModelo)ComboBoxCadernetas.SelectedItem; if (caderneta.Paginas.Count == 0) { int totalCromos = SomatorioCromosPaginas(); int cromoCounter = 0; int nrows = DataGridViewPaginas.Rows.Count - 1; for (int j = 0; j < nrows; j++) { int cromosPagina = Convert.ToInt32(DataGridViewPaginas.Rows[j].Cells["Quantidade"].Value.ToString()); caderneta.Paginas.Add(new PaginaModelo( DataGridViewPaginas.Rows[j].Cells["Pagina"].Value.ToString(), idCaderneta: caderneta.Id )); for (int i = 0; i < cromosPagina; i++) { string descricaoCromo = DataGridViewCromos.Rows[cromoCounter++].Cells["Descricao"].Value.ToString(); caderneta.Paginas.Last <PaginaModelo>().Cromos.Add(new CromoModelo( numero: cromoCounter.ToString(), descricao: descricaoCromo, idPagina: caderneta.Paginas.Last <PaginaModelo>().Id )); } } } CromoGestLibrary.GlobalConfig.Connection.PopulateCaderneta(caderneta); MessageBox.Show("Caderneta Criada com sucesso!"); } }
public EditarTrocaForm(TrocasForm formArgPai, CadernetaModelo cadernetaArg, TrocaModelo troca) { InitializeComponent(); if (cadernetaArg == null) { this.Hide(); formArgPai.Show(); this.Close(); } trocaEditada = troca; formPai = formArgPai; caderneta = cadernetaArg; cadernetaLabel.Text = $"Caderneta: {caderneta.Nome}"; textBoxNome.DataBindings.Add("Text", trocaEditada, "Dest_Nome"); textBoxIniciais.DataBindings.Add("Text", trocaEditada, "Dest_Iniciais"); textBoxOrigem.DataBindings.Add("Text", trocaEditada, "Dest_Origem"); textBoxReputacao.DataBindings.Add("Text", trocaEditada, "Dest_Reputacao"); textBoxMorada.DataBindings.Add("Text", trocaEditada, "Dest_Morada"); dateTimePickerProposta.DataBindings.Add("Text", trocaEditada, "DataProposta"); dateTimePickerEnvio.DataBindings.Add("Text", trocaEditada, "DataEnvio"); dateTimePickerRececao.DataBindings.Add("Text", trocaEditada, "DataRececao"); trocaEditada.ProgressoProvisorio = trocaEditada.Progresso; comboBoxProgresso.DataBindings.Add("Text", trocaEditada, "ProgressoProvisorio"); trocaEditada.ListCromosEnviadosProvisoria = trocaEditada.ListCromosEnviados; textBoxCromosEnviados.DataBindings.Add("Text", trocaEditada, "ListCromosEnviadosProvisoria"); trocaEditada.ListCromosRecebidosProvisoria = trocaEditada.ListCromosRecebidos; textBoxCromosRecebidos.DataBindings.Add("Text", trocaEditada, "ListCromosRecebidosProvisoria"); }
private void LoadCadernetaPopulate(CadernetaModelo caderneta, int numMaxCromosNasPaginas, int numPaginas) { for (int i = 0; i < numPaginas; i++) { ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[i].Cells[0]).Value = caderneta.Paginas[i].Nome; ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[i].Cells[0]).PaginaCell = true; } for (int row = 0; row < numPaginas; row++) { for (int col = 0; col < numMaxCromosNasPaginas; col++) { if (col < caderneta.Paginas[row].Cromos.Count) { ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[row].Cells[col + 1]).Value = caderneta.Paginas[row].Cromos[col].Numero; ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[row].Cells[col + 1]).NumCromos = caderneta.Paginas[row].Cromos[col].Quantidade; ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[row].Cells[col + 1]).ToolTipText = caderneta.Paginas[row].Cromos[col].Descricao; } else { ((DataGridViewCromoCell)dataGridViewCaderneta.Rows[row].Cells[col + 1]).EmptyCell = true; } } } }
private int GetNumMaxCromosNasPaginas(CadernetaModelo caderneta) { int nMax = 0; foreach (PaginaModelo pagina in caderneta.Paginas) { nMax = (nMax < pagina.Cromos.Count) ? pagina.Cromos.Count : nMax; } return(nMax); }
private static DynamicParameters CriaPagina(CadernetaModelo caderneta, IDbConnection connection, PaginaModelo pagina) { var p = new DynamicParameters(); p.Add("@Nome", pagina.Nome); p.Add("@IdCaderneta", caderneta.Id); p.Add("@Id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output); connection.Execute("dbo.spCriaPagina", p, commandType: CommandType.StoredProcedure); pagina.Id = p.Get <int>("@Id"); return(p); }
private void ButtonAceitarPaginas_Click(object sender, EventArgs e) { int quantidade = SomatorioCromosPaginas(); CadernetaModelo caderneta = (CadernetaModelo)ComboBoxCadernetas.SelectedItem; PaginaModelo novaPagina; CromoModelo novoCromo; if (!int.TryParse(TextQuantidade.Text, out int quantidadeText)) { MessageBox.Show("Quantidade de cromos invalida!"); } else if (quantidade == quantidadeText) { LigaGrid(DataGridViewPaginas, false); LigaButtonsPaginas(false); cromosCadernetaSelecionada = null; cromosCadernetaSelecionada = new List <CromoModelo>(); LigaGrid(DataGridViewCromos, true); LigaButtonsCromos(true); int cromosTotal = 1; int paginas = DataGridViewPaginas.Rows.Count - 1; for (int p = 0; p < paginas; p++) { string novaPaginaNome = DataGridViewPaginas.Rows[p].Cells["Nome"].Value.ToString(); novaPagina = new PaginaModelo(nome: novaPaginaNome, idCaderneta: caderneta.Id); caderneta.Paginas.Add(novaPagina); int cromos = Convert.ToInt32(DataGridViewPaginas.Rows[p].Cells["QuantidadeCromos"].Value); for (int c = 0; c < cromos; c++) { string novoCromoNumero = (cromosTotal++).ToString(); string novoCromoDescricao = ""; novoCromo = new CromoModelo(numero: novoCromoNumero, descricao: novoCromoDescricao, idPagina: novaPagina.Id); caderneta.Paginas[p].Cromos.Add(novoCromo); cromosCadernetaSelecionada.Add(novoCromo); } } //DataGridViewCromos.DataSource = null; DataGridViewCromos.DataSource = cromosCadernetaSelecionada; DataGridViewCromos.Refresh(); ToolStripLabelNovaCaderneta.Text = "Criação da Caderneta terminada."; ToolStripNovaCaderneta.Update(); } else { MessageBox.Show("Erro: Quantidade errada de cromos. O total de cromos tem de ser igual à soma dos cromo das paginas."); } }
/// <summary> /// Contabiliza a quantidade de cromos que a caderneta tem populados /// </summary> /// <param name="IdCaderneta">Quantidade de cromos populados</param> /// <returns></returns> public int TotalCromos(CadernetaModelo Caderneta) { if (Caderneta == null) { return(0); } using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnStringLocalDB(bd))) { var p = new DynamicParameters(); p.Add("@IdCaderneta", Caderneta.Id); int r = connection.QuerySingle <int>("spTotalCromos", p, commandType: CommandType.StoredProcedure); return(r); } }
public NovaTrocaForm(TrocasForm formArgPai, CadernetaModelo cadernetaArg) { InitializeComponent(); if (cadernetaArg == null) { this.Hide(); formArgPai.Show(); this.Close(); } charSeparador = CromoGestLibrary.GlobalConfig.Connection.GetConfig(ConfigCategory.CharSeparador.Value)[0]; formPai = formArgPai; caderneta = cadernetaArg; cadernetaLabel.Text = $"Caderneta: {caderneta.Nome}"; }
private void CadernetasComboBox_SelectedValueChanged(object sender, EventArgs e) { // TODO - Bindar TextBoxes com ComboBoxes para evitar o HORROR que se segue CadernetaModelo caderneta = ((CadernetaModelo)ComboBoxCadernetas.SelectedItem); if (caderneta != null) { TextNome.Text = caderneta.Nome; TextQuantidade.Text = caderneta.QuantidadeCromos.ToString(); TextQuantidadeCarteira.Text = caderneta.QuantidadeCromosCarteira.ToString(); TextCarteiraCusto.Text = caderneta.CustoCarteira.ToString(); if (CromoGestLibrary.GlobalConfig.Connection.TotalCromos(caderneta) == 0) { LimpaGrids(); LigaGrid(DataGridViewPaginas, true); DataGridViewPaginas.Enabled = true; ButtonAceitarPaginas.Enabled = true; ToolStripLabelNovaCaderneta.Text = "Caderneta sem Paginas nem Cromos inseridos. Por favor preencher a informação das Paginas primeiro"; ToolStripNovaCaderneta.Update(); } else { DataGridViewPaginas.DataSource = ((CadernetaModelo)ComboBoxCadernetas.SelectedItem).Paginas; WireGridCromos(); LigaGrid(DataGridViewCromos, false); LigaButtonsCromos(false); LigaGrid(DataGridViewPaginas, false); DataGridViewPaginas.Enabled = false; ButtonAceitarPaginas.Enabled = false; LigaTextboxes(false); ButtonCriar.Enabled = false; ToolStripLabelNovaCaderneta.Text = "Criação da Caderneta terminada."; ToolStripNovaCaderneta.Update(); } } else { ToolStripLabelNovaCaderneta.Text = "Preencher informação geral da caderneta"; ToolStripNovaCaderneta.Update(); } }
private bool CromosValidos() { if (ComboBoxCadernetas.SelectedItem == null) { MessageBox.Show("Sem cadernetas"); return(false); } CadernetaModelo caderneta = (CadernetaModelo)ComboBoxCadernetas.SelectedItem; if (CromoGestLibrary.GlobalConfig.Connection.TotalCromos(caderneta) == 0) { MessageBox.Show("Caderneta existe mas não está populada com informacão das paginas e cromos. " + "Por favor sair e ir 'Nova Caderneta' selecionar esta caderneta e preencher a informação em falta."); LimpaListas(); return(false); } int ncromos = dataGridViewCromos.Rows.Count - 1; for (int i = 0; i < ncromos; i++) { string row = dataGridViewCromos.Rows[i].Cells["Cromos"].Value.ToString(); if (row.Contains(charSeparador)) { string[] cromos = row.Replace(" ", string.Empty).Split(charSeparador); foreach (string cromo in cromos) { if (!CromoValido(cromo)) { MessageBox.Show($"Cromo {cromo} não existe na caderneta, corriga e tente de novo."); return(false); } } } else if (!CromoValido(row)) { MessageBox.Show($"Cromo {row} não existe na caderneta, corriga e tente de novo."); return(false); } } return(true); }
/// <summary> /// Procura e devolve as trocas de existentes de uma dada caderneta. /// </summary> /// <param name="caderneta">Caderneta das trocas</param> /// <returns>Trocas da cadernta</returns> public List <TrocaModelo> GetTrocas(CadernetaModelo caderneta) { if (caderneta == null) { return(null); } using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnStringLocalDB(bd))) { var p = new DynamicParameters(); p.Add("@IdCaderneta", caderneta.Id); List <TrocaModelo> trocas = connection.Query <TrocaModelo>("spGetTrocas", p, commandType: CommandType.StoredProcedure).ToList(); foreach (TrocaModelo troca in trocas) { p = GetTroca(connection, troca); } return(trocas); } }
/// <summary> /// populaciona a caderneta na base de dados com as informacoes dos cromos. /// </summary> /// <param name="caderneta"></param> /// <returns></returns> public void PopulateCaderneta(CadernetaModelo caderneta) { if (caderneta == null) { return; } using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnStringLocalDB(bd))) { foreach (PaginaModelo pagina in caderneta.Paginas) { DynamicParameters p = CriaPagina(caderneta, connection, pagina); foreach (CromoModelo cromo in pagina.Cromos) { p = CriaCromo(connection, pagina, cromo); } } } }
/// <summary> /// Cria uma Caderneta na Base de dados MS SQL /// </summary> /// <param name="Caderneta">Caderneta a inserir</param> /// <returns>Caderneta que foi inserida</returns> public void NewCaderneta(CadernetaModelo caderneta) { if (caderneta == null) { return; } using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnStringLocalDB(bd))) { var p = new DynamicParameters(); p.Add("@Nome", caderneta.Nome); p.Add("@QuantidadeCromos", caderneta.QuantidadeCromos); p.Add("@QuantidadeCromosCarteira", caderneta.QuantidadeCromosCarteira); p.Add("@CustoCarteira", caderneta.CustoCarteira); p.Add("@id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output); connection.Execute("dbo.spCriaCaderneta", p, commandType: CommandType.StoredProcedure); caderneta.Id = p.Get <int>("@id"); } }
public TrocaModelo GetTrocaByNum(CadernetaModelo caderneta, int numTroca) { using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnStringLocalDB(bd))) { var p = new DynamicParameters(); p.Add("@Id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output); p.Add("@Num", numTroca); p.Add("@IdCaderneta", caderneta.Id); TrocaModelo troca = connection.QuerySingle <TrocaModelo>("spGetTrocaByNum", p, commandType: CommandType.StoredProcedure); GetTroca(connection, troca); DestinatarioModelo destinatario = GetDestinatario(troca.Dest_Id); troca.Dest_Iniciais = destinatario.Iniciais; troca.Dest_Morada = destinatario.Morada; troca.Dest_Nome = destinatario.Nome; troca.Dest_Origem = destinatario.Origem; troca.Dest_Reputacao = destinatario.Reputação; return(troca); } }