private void btn_Salvar_Click(object sender, EventArgs e) { if (Web_Tools.Conectado_A_Internet()) { if (new_infrator || Security_Controller.podem_salvar_edição.Contains(Data_Controller.user_logged.Credencial)) { if (Validar()) { Infrator infrator_original = null; if (!new_infrator) { infrator_original = Data_Controller.Clone <Infrator>(infrator); infrator_original.Infrações = infrator.Infrações.ToList(); } else { infrator.Data_registro = DateTime.Now; } infrator.Nome = txt_Nome.Text; infrator.Rg = Data_Formater.Just_Numbers(txt_RG.Text); infrator.Cpf = Data_Formater.Just_Numbers(txt_CPF.Text); infrator.Data_nascimento = date_Niver.Value; infrator.Sexo = txt_Sexo.Text != "" ? txt_Sexo.Text.ToUpper()[0] : '-'; infrator.Mãe = txt_Mãe.Text; infrator.Logradouro = txt_Logradouro.Text; infrator.Num_residência = txt_NumRes.Text; infrator.Bairro = txt_Bairro.Text; infrator.Cidade = txt_Cidade.Text; infrator.Uf = txt_UF.Text.ToUpper(); infrator.Infrações = new List <Infração>(); foreach (Infração inf in infrações_to_add) { infrator.Infrações.Add(inf); } List <ObjectId> limpar_anexos_infrações = new List <ObjectId>(); for (int i = 0; i < infrações_to_remove.Count; i++) { limpar_anexos_infrações.Add(infrator.Infrações[infrações_to_remove[i]].Id); infrator.Infrações.RemoveAt(infrações_to_remove[i]); } var filter = Builders <Infrator> .Filter.Eq("Rg", infrator.Rg); Infrator infrator_from_mongo = Data_Controller.Collection_Infratores.Find(filter).FirstOrDefault(); if (infrator_from_mongo != null && !Data_Controller.isEquals(infrator_from_mongo, infrator_original)) { Forms_Controller.pode_desconectar = false; MessageBox.Show("Existem inconsistências na informação\n\nPor favor reinicie o sistema\ne tente novamente!", "Atenção:", MessageBoxButtons.OK, MessageBoxIcon.Warning); Forms_Controller.pode_desconectar = true; } else { Data_Controller.Add_Infrator(infrator, infrator_original); foreach (ObjectId id in limpar_anexos_infrações) { Data_Controller.Remove_Todos_Anexos(id); } new Thread(() => Btn_Fechar_Click(btn_Voltar, new EventArgs())).Start(); } } else { Forms_Controller.pode_desconectar = false; MessageBox.Show("Existem campos com dados inválidos!\nVerifique-os e tente novamente!", "Atenção:", MessageBoxButtons.OK, MessageBoxIcon.Warning); Forms_Controller.pode_desconectar = true; } } else { Security_Controller.Show_Alert(); } } else { Web_Tools.Show_Net_Error(); } }