private void cadastrar_Click(object sender, EventArgs e) { Filme filme = new Filme(); //armazenando os valor digitados pelo usuario no objeto da classe Filme filme.Nome = nome_filme.Text; filme.Genero = lista_genero.SelectedItem.ToString(); filme.Data_Assistido = data.Value; filme.Local = local.Text; /*essa condição verifica se a lista do genero do filme existe, se sim o filme só será adicionado a lista, se não será criada uma nova lista no dicionario e o filme adicionado nela*/ if (dicionario_filmes.ContainsKey(lista_genero.SelectedIndex)) { List<Filme> l = dicionario_filmes[lista_genero.SelectedIndex]; l.Add(filme); } else { List<Filme> lista_filme = new List<Filme>(); lista_filme.Add(filme); dicionario_filmes.Add(lista_genero.SelectedIndex, lista_filme); } //agora os valore são adicionado ao listview, utilizando como base os valores do objeto Filme ListViewItem novo_item = new ListViewItem(); novo_item.Text = filme.Nome; novo_item.Group = listView1.Groups[lista_genero.SelectedIndex]; novo_item.SubItems.Add(filme.Data_Assistido.ToShortDateString()); novo_item.SubItems.Add(filme.Local); listView1.Items.Add(novo_item); }
//------------------------tabcontrol para pesquisa-------------------------// #region Pesquisa /*quando o botão de pesquisa é disparado, a lista de pesquisa é atribuida com os valores dos filmes armazenados no dicionario * para agilizar a pesquisa, caso o checkbox de genero esteja marcado, a lista de pesquisa será atribuida com os valores * da lista contida na posição do dicionario equivalente ao genero selecionado*/ private void pesquisa_Click(object sender, EventArgs e) { if ((ck_box_nome.Checked == false) && (ck_box_categoria.Checked == false) && (ck_box_data.Checked == false) && (ck_box_local.Checked == false)) { errorProvider1.SetError(pesquisa, "Nenhum parametro selecionado"); } else { //verifica se o checkbox do genero está marcado if (ck_box_categoria.Checked == true) { //verifica se a lista desejada contem no dicionario if (dicionario_filmes.ContainsKey(pesq_categoria.SelectedIndex)) { //atribui os valores do dicionario na lista de pesquisa int auxiliar = pesq_categoria.SelectedIndex; List <Filme> lista = dicionario_filmes[auxiliar]; lista_pesquisa.AddRange(lista); } else { //essa mensagem será apresentada caso não tenha um filme cadastrado pra tal genero //MessageBox.Show("Não existe filme para tal genero", "Atenção", MessageBoxButtons.OK); } } else { //atribuição da lista de pesquisa com os valores do dicionario completo foreach (List <Filme> l in dicionario_filmes.Values) { lista_pesquisa.AddRange(l); } } //verifica se a lista de pesquisa não está vazia if (lista_pesquisa.Count == 0) { //MessageBox.Show("Não foi cadastrado nenhum filme", "Atenção", MessageBoxButtons.OK); } else { //o FOR é utilizado para percorrer toda a lista de pesquisa for (int i = 0; i < lista_pesquisa.Count; ++i) { Filme obj_pesquisa = lista_pesquisa[i]; /*nessa condição é verificado se o checkbox de nome esta ativo e se o nome no textbox é diferente aos objetos da lista * caso algum objeto coresponda a essas condições ele será removido da lista de pesquisa * obs: não importa se o usuario entrou com letras maiusculas ou minusculas*/ if ((ck_box_nome.Checked == true) && (obj_pesquisa.Nome.ToUpper() != pesq_nome.Text.ToUpper())) { lista_pesquisa.Remove(obj_pesquisa); i--; } /*nessa condição é verificado se o checkbox de data esta ativo e se a data em que o filme foi assistido está * fora do intervalo fornecido pelo usuario, * caso algum objeto coresponda a essas condições ele será removido da lista de pesquisa*/ if ((ck_box_data.Checked == true) && ((obj_pesquisa.Data_Assistido.Date > data_inicial.Value) && (obj_pesquisa.Data_Assistido.Date > data_final.Value))) { lista_pesquisa.Remove(obj_pesquisa); i--; } /*nessa condição é verificado se o checkbox de local esta ativo e se o local no textbox é diferente aos objetos da lista * caso algum objeto coresponda a essas condições ele será removido da lista de pesquisa * obs: não importa se o usuario entrou com letras maiusculas ou minusculas*/ if ((ck_box_local.Checked == true) && (obj_pesquisa.Local.ToUpper() != pesq_local.Text.ToUpper())) { lista_pesquisa.Remove(obj_pesquisa); i--; } } } //a lista de pesquisa é apresentada no listview foreach (Filme obj_apresentacao in lista_pesquisa) { ListViewItem listview_pesquisa = new ListViewItem(); listview_pesquisa.Group = listView2.Groups[obj_apresentacao.Genero]; listview_pesquisa.Text = obj_apresentacao.Nome; listview_pesquisa.SubItems.Add(obj_apresentacao.Data_Assistido.ToShortDateString()); listview_pesquisa.SubItems.Add(obj_apresentacao.Local); listView2.Items.Add(listview_pesquisa); } /*o botão de pesuisa é travado para forçar o usuario a limpar os parametros de pesquisa e o botão limpar é liberado*/ pesquisa.Enabled = false; limpar_pesquisa.Enabled = true; } }