public ActionResult Create(MultaFormModel model) { if (ModelState.IsValid) { var multa = new Multas { Infracao = model.Infracao, LocalDaMulta = model.LocalDaMulta, // Os seguintes campos são nullable. // Temos que usar '.Value' para obter o valor, // senão dá erro // (Ex: cannot convert int? to int) DataDaMulta = model.DataDaMulta.Value, ValorMulta = model.ValorMulta.Value, AgenteFK = model.AgenteFK.Value, CondutorFK = model.CondutorFK.Value, ViaturaFK = model.ViaturaFK.Value }; db.Multas.Add(multa); db.SaveChanges(); return(RedirectToAction("Index")); } // Se obtermos um erro, teremos que reinicializar as nossas dropdowns. PreencherDropDownsComDadosBd(model); return(View(model)); }
public IHttpActionResult PutAgentes(int id, Agentes agentes)//faz uodate a um agente { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != agentes.ID) { return(BadRequest()); } db.Entry(agentes).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!AgentesExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { // determinar o ID do novo Agente int novoID = 0; if (db.Agentes.Count() == 0) { novoID = 1; } else { novoID = db.Agentes.Max(a => a.ID) + 1; } // atribuir o ID ao novo agente agente.ID = novoID; // var. auxiliar string nomeFotografia = "Agente_" + novoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); // indica onde a imagem será guardada // verificar se chega efetivamente um ficheiro ao servidor if (fileUploadFotografia != null) { // guardar o nome da imagem na BD agente.Fotografia = nomeFotografia; } else { // não há imagem... ModelState.AddModelError("", "Não foi fornecida uma imagem..."); // gera MSG de erro return(View(agente)); // reenvia os dados do 'Agente' para a View } // verificar se o ficheiro é realmente uma imagem ---> casa // redimensionar a imagem --> ver em casa // ModelState.IsValid --> confronta os dados fornecidos com o modelo // se não respeitar as regras do modelo, rejeita os dados if (ModelState.IsValid) { try { db.Agentes.Add(agente); db.SaveChanges(); fileUploadFotografia.SaveAs(caminhoParaFotografia); return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Ocorreu um erro nao determinado..."); } } // devolve os dados do agente à View return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Fotografia")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { int novoID = 0; if (db.Agentes.Count() == 0) { novoID = 1; } else { novoID = db.Agentes.Max(a => a.ID) + 1; } //determinar o ID do novo Agente // int novoID = db.Agentes.Max(a => a.ID) + 1; //atribuir o ID ao novo agente agente.ID = novoID; //var. auxiliar string nomeFotografia = "Agente" + novoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); //guardar o nome da imagem na BD agente.Fotografia = nomeFotografia; //verificar se chega efectivamente um ficheiro ao servidor if (fileUploadFotografia != null) { } else { ModelState.AddModelError("", "Não foi fornecida uma imagem"); //gera msg de erro return(View(agente)); //reenvia os dados do agente para a view } //verificar se o ficheiro é realmente uma imagem ---> casa //redimensionar a imagem --> ver em casa //escrever a fotografia no disco rigido //escrever o nome da imagem na BD if (ModelState.IsValid) { try { db.Agentes.Add(agente); db.SaveChanges(); //guardar a imagem no disco rigido fileUploadFotografia.SaveAs(caminhoParaFotografia); return(RedirectToAction("Index")); } catch (Exception) { //gerar uma mansagem de erro para o utilizador ModelState.AddModelError("", "Ocorreu um erro não determinado na criação do novo agente..."); throw; } } return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase carregaFotografia) { //Gerar ID para o novo agente int novoID = 1; if (db.Agentes.Count() != 0) { novoID = db.Agentes.Max(a => a.ID) + 1; } agente.ID = novoID;//Atribuir novo ID ao agente var filename = "Agente_" + novoID + DateTime.Now.ToString("_yyyyMMdd_hhmmss") + ".jpg"; var imagePath = ""; //Validar se existe imagem if (carregaFotografia != null)//Existe um ficheiro { agente.Fotografia = filename; imagePath = Path.Combine(Server.MapPath("~/imagens/"), filename); } else { //Gerar uma mensagem de erro para que o utilizador saiba o que se passou para a inserção não ter corrido bem ModelState.AddModelError("", "Não foi inserida uma imagem."); //Não foi carregada uma fotografia return(View(agente)); } //Verificar se o ficheiro carregado é mesmo uma imagem if (!ImagemValida(carregaFotografia)) { ModelState.AddModelError("", "O ficheiro fornecido não é uma imagem válida."); return(View(agente)); } if (ModelState.IsValid) { db.Agentes.Add(agente); try { db.SaveChanges(); //Guardar imagem no disco carregaFotografia.SaveAs(imagePath); return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Não foi possivel inserir o Agente " + agente.Nome + ", por favor tente mais tarde ou contacte o Administrador."); } } return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra,Fotografia")] Agentes agentes) { if (ModelState.IsValid) { db.Agentes.Add(agentes); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(agentes)); }
public IHttpActionResult PostAgentes(PostAgenteViewModel model) { if (!ModelState.IsValid) { // O BadRequest permite usar o ModelState // para informar o cliente dos erros de validação // tal como no MVC. return(BadRequest(ModelState)); } // Copiar os campos do 'model' para um novo objeto de 'Agentes'. // Definir o ID do agente (F12 sobre "GetAgente()") // Isto é garantido que funcione, seja para uma operação, seja para múltiplas // em simultâneo (ex: muitas pessoas a aceder ao site/API), ao contrário // do método db.Agentes.Max(agente => agente.ID) + 1, que NÃO É ATÓMICO, // e abre a possibilidade de crashes ou erros de consistência // (tema de Sistemas Distribuidos) // Ver a migração Migrations/201804251626256_SequenciaIdAgentes.cs var agentes = new Agentes { ID = db.GetIdAgente(), Nome = model.Nome, Esquadra = model.Esquadra }; db.Agentes.Add(agentes); try { db.SaveChanges(); } catch (DbUpdateException) { // Seria muito provável que o método // db.Agentes.Max(agente => agente.ID) + 1 // fizesse com que este if resultasse no Conflict (HTTP 409). if (AgentesExists(agentes.ID)) { return(Conflict()); } else { throw; } } // Num create, é boa prática devolver uma representação // do resultado da criação do objeto na base de dados. return(CreatedAtRoute("DefaultApi", new { id = agentes.ID }, agentes)); }
public ActionResult Create(CreateAgenteViewModel model) { // ModelState.IsValid --> confronta os dados fornecidos com o modelo // se não respeitar as regras do modelo, rejeita os dados if (!ModelState.IsValid) { return(View(model)); } var agente = new Agentes { ID = db.GetIdAgente(), Nome = model.Nome, Esquadra = model.Esquadra }; // verificar se o ficheiro é realmente uma imagem ---> Ver a classe "CreateAgenteViewModel" // redimensionar a imagem --> ver em casa (pode ser feito com validação custom) // var. auxiliar string nomeFotografia = "Agente_" + agente.ID + Path.GetExtension(model.Fotografia.FileName); string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); // indica onde a imagem será guardada // guardar o nome da imagem na BD agente.Fotografia = nomeFotografia; try { // guardar a imagem no disco rígido model.Fotografia.SaveAs(caminhoParaFotografia); // adiciona na estrutura de dados, na memória do servidor, // o objeto Agentes db.Agentes.Add(agente); // faz 'commit' na BD db.SaveChanges(); // redireciona o utilizador para a página de início return(RedirectToAction("Index")); } catch (Exception) { // gerar uma mensagem de erro para o utilizador ModelState.AddModelError("", "Ocorreu um erro não determinado na criação do novo Agente..."); } // se se chegar aqui, é pq aconteceu algum problema... // devolve os dados do agente à View return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra,Fotografia")] Agentes agentes) { //escrever os dados de um novo Agente na BD //ModelState.IsValid ->confronta os dados fornecidas da View com as exigencias do Modelo if (ModelState.IsValid) { //adiciona o Agente à BD db.Agentes.Add(agentes); //guarda as alterações db.SaveChanges(); return(RedirectToAction("Index")); } // se houver um erro, representa os dados do Agente na View return(View(agentes)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { int novoID = 0; if (db.Agentes.Count() == 0) { novoID = 1; } else { novoID = db.Agentes.Max(a => a.ID) + 1; } agente.ID = novoID; string nomeFotografia = "Agente_" + novoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); if (fileUploadFotografia != null) { agente.Fotografia = nomeFotografia; } else { ModelState.AddModelError("", "Nao foi fornecida uma imagem..."); return(View(agente)); } if (ModelState.IsValid) { try{ db.Agentes.Add(agente); db.SaveChanges(); fileUploadFotografia.SaveAs(caminhoParaFotografia); return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Ocorreu um erro nao determinado na criacao do novo agente"); } } return(View(agente)); }
public IHttpActionResult PostAgentes(PostAgenteViewModel model) { if (!ModelState.IsValid) { // O BadRequest permite usar o ModelState // para informar o cliente dos erros de validação // tal como no MVC. return(BadRequest(ModelState)); } var agentes = new Agentes { ID = db.GetIdAgente(), Nome = model.Nome, Esquadra = model.Esquadra }; db.Agentes.Add(agentes); try { db.SaveChanges(); } catch (DbUpdateException) { // Seria muito provável que o método // db.Agentes.Max(agente => agente.ID) + 1 // fizesse com que este if resultasse no Conflict (HTTP 409). if (AgentesExists(agentes.ID)) { return(Conflict()); } else { throw; } } // Num create, é boa prática devolver uma representação // do resultado da criação do objeto na base de dados. return(CreatedAtRoute("DefaultApi", new { id = agentes.ID }, agentes)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { //determinar o ID do novo agente int novoID = 0; //******************************************* //proteger a geração de um novo ID //******************************************* //Determinar o nº de agentes na tabela if (db.Agentes.Count() == 0) { novoID = 1; } else { novoID = db.Agentes.Max(a => a.ID) + 1; } //atribuir id ao novo agente agente.ID = novoID; //******************************************* //outra hipotese possivel seria utilizar o //try{} //catch (Exception){} //var.auxiliar string nomeFotografia = "Agente_" + novoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia);//indica onde a imagem será guardada //verificar se chega efetivamente um ficheiro ao servidor if (fileUploadFotografia != null) { //guardar o nome da imagem na BD agente.Fotografia = nomeFotografia; } else { // não há imagem ModelState.AddModelError("", "Não foi fornecida uma imagem..."); return(View(agente));// reenvia os dados do 'agente' para a view } //redimensionar a imagem --> ver em casa //escrever os dados de um novo Agente na BD //ModelState.IsValid -> confronta os dados fornecidos da view com as exigências do modelo if (ModelState.IsValid) { try { //adiciona o novo agente à BD db.Agentes.Add(agente); //faz commit às alterações db.SaveChanges(); //guardar a imagem no disco rigido fileUploadFotografia.SaveAs(caminhoParaFotografia); //se tudo correr bem, retorna para a página de index do agente return(RedirectToAction("Index")); } catch (Exception) { //enviaruma mensagem de erro para o utilizador ModelState.AddModelError("", "Ocorreu um erro não determinado na criação de um novo agente..."); } } //se se chegar aqui, é porque aconteceu algum problema //se houver um erro, reapresenta os dados do agente return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra") ] Agentes agente, HttpPostedFileBase uploadFotografia) { // escrever os dados de um novo agente na BD //especificar o nome do agente //testar se há registos na tabela dos Agentes //if (db.Agentes.Count() != 0){} //ou entao usar a istruçao try/catch int idNovoAgente = 0; try{ idNovoAgente = db.Agentes.Max(a => a.ID) + 1; } catch (Exception) { idNovoAgente = 1; } //guardar o id do novo agente agente.ID = idNovoAgente; //especificar (escolher) o nome do ficheiro string nomeImagem = "Agente_" + idNovoAgente + ".jpg"; //var auxiliar string path = ""; //validar se a imagem foi fornecida if (uploadFotografia != null) { //o ficheiro foi fornecido //validar se o que foi fornecido e uma imagem---> fazer em casa //formatar o tamanho da imagem //criar o caminho completo até ao sitio onde o ficheiro sera guardado path = Path.Combine(Server.MapPath("~/imagens/"), nomeImagem); //guardar o nome do ficheiro na BD agente.Fotografia = nomeImagem; } else { //não foi fornecido qualquer ficheiro ModelState.AddModelError("", "Não foi fornecida imagem"); //devolver o controlo a view return(View(agente)); } //escrever o ficheiro com a fotografia no disco rigido na pasta 'imagens' //guardar o nome escolhido na BD //ModelState.IsValid -> confrota os dados fornecidos da view com as exigencias do modelo if (ModelState.IsValid) { try { //adiciona o novo Agente a bd db.Agentes.Add(agente); //faz commit as alteraçoes db.SaveChanges(); //escrever o ficheiro com a fotografia no disco rigido na pasta uploadFotografia.SaveAs(path); //se tudo correr bem, redireciona para a pagina de Index return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", "Houve um erro com a criação do Agente"); /// se existir uma classe chamada 'ERRO.cs' iremos nela registar /// os dados do erro, /// -criar um objeto desta classe /// -atribuir a esse objeto os dados do erro /// - nome do controller, nome do metodo, data + hora, mensagem /// -dados que se tentavam inserir /// -outros dados considerados relevantes /// - guardar o obejeto na BD /// - notificar um gestor do sistema, por email,ou por outro meio do /// erro e dos seus dados } } //se houver um erro representa os dados do Agente na view return(View(agente)); }
[ValidateAntiForgeryToken] //Protege o metodo contra o ataque de roubo de entidade public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase uploadFotografia) { //Escrever os dados de um novo Agente na BD //Especificar o ID do novo Agente //Testar se há registos na tabela dos Agentes //if (db.Agentes.Count()!=0) { } // ou então, usar a instrução TRY/CATCH int idNovoAgente = 0; try { idNovoAgente = db.Agentes.Max(a => a.ID) + 1; } catch (Exception) { idNovoAgente = 1; } //Guardar o ID do novo Agente agente.ID = idNovoAgente; //Guardar o ID do novo agente agente.ID = idNovoAgente; //Especificar (escolher) o nome do ficheiro string nomeImagem = "Agente_" + idNovoAgente + ".jpg"; //Var. auxiliar string path = ""; //Validar se a imagem foi fornecida if (uploadFotografia != null) { //O ficheiro foi fornecida //Validar se o que foi fornecido é uma imagem ---> Fazer em casa. //Formatar o tamanho da imagem //Criar o caminho completo até ao sítio onde o ficheiro será guardado path = Path.Combine(Server.MapPath("~imagens/"), nomeImagem); //Guardar o nome do ficheiro na BD agente.Fotografia = nomeImagem; } else { //Não foi fornecido qq ficheiro //Gerar uma mensagem de erro ModelState.AddModelError("", "Não foi fornecida uma imagem."); //Devolver o controlo à View return(View(agente)); } //Escrever o ficheiro com a fotografia no disco rígido, na pasta 'imagens' //ModelState.IsValid --> confronta os dados fornecidos com o modelo, se não respeitar as regras //do modelo, rejeita os dados if (ModelState.IsValid) { try { // adiciona na estrutura de dados, na memória do servidor, o objeto Agentes db.Agentes.Add(agente); //faz 'commit' na BD db.SaveChanges(); //Escrever o ficheiro com a fotografia no disco rígido, na pasta uploadFotografia.SaveAs(path); //redireciona o utilizador para a página de inicio se correr tudo bem return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Houve um erro com a criação do Novo Agente..."); ///Se existir uma classes chamada 'Erro.cs' ///iremos registar os dados do erro. /// - criar um objeto desta classe /// - atribuir a esse objeto os dados do erro /// - nome do controller /// - nome do método /// - data + hora do erro /// - mensagem do erro (ex) /// - dados que se tentavam inserir /// - outros dados considerados relevante /// - guardar o objeto na BD /// /// - notificar um gestor do sistema, por e-amil, /// ou por outro meio, da ocurrência do erro /// e dos seus dados } } //Devolve os dados do agente à View return(View(agente)); }
//assinatura de um metodo: é o nome do metodo, o valor devolvido e os parametros de entrada public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { //determinar o ID do novo Agente //testar se ha registos na tabela dos Agentes //count devolve o numero de registos // if (db.Agentes.Count()!=0) {} //count devolve o numero de registos //ou entao, usar a instrucao TRY/CATCH var novoID = 0; try { novoID=db.Agentes.Max(a => a.ID) + 1; } catch (Exception) { novoID = 1; } //atribuir o ID ao novo agente agente.ID = novoID; //var auxiliar string nomeFotografia = "Agente_" + novoID + ".jpg"; string caminhoParaFoto = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); //verificar se chega efetivamente um ficheiro ao servidor if (fileUploadFotografia != null) { //guardar o nome da imagem na base de dados agente.Fotografia = nomeFotografia; } else { //nao há imagem... ModelState.AddModelError("", "Nao foi fornecida uma imagem..."); //gera msg de erro return View(agente);//reenvia os dados do 'Agente' para a View } //verifica se o ficheiro é realmente uma imagem --> TPC //if(fileUploadFotografia == {} //redimensionar a imagem --> TPC //escrever a fotografia no disco rigido //escrever o nome da imagem na BD //ModelState --> controla os dados fornecidos com o modelo, se nao respeitar as regras //do modelo, rejeita os dados if (ModelState.IsValid) { try { //adiciona na estrutura de dados, na memória do servidor, o objeto Agentes db.Agentes.Add(agente); //faz "commit" db.SaveChanges(); //guardar a imagem no disco rigido fileUploadFotografia.SaveAs(caminhoParaFoto); //redireciona o utilizadora para a página de inicio return RedirectToAction("Index"); } catch (Exception) { ModelState.AddModelError("", "Houve um erro na criacao de um novo agente"); } } //se houver um erro //reapresenta os dados de agente na view return View(agente); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { int novoID = 0; //*************************************** // proteger a geração de um novo ID //*************************************** // determinar o numero de Agentes na tabela if (db.Agentes.Count() == 0) { novoID = 1; } else { novoID = db.Agentes.Max(a => a.ID) + 1; } // atribuir o ID ao novo Agente agente.ID = novoID; //****************************************** // outra hipótese possível seria utilizar o // try{ } // catch (Exception) { } //****************************************** // var auxiliar string nomeFotografia = "Agente_" + novoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); // incica onde a imagem vai ser guardada // verificar se chega efetivamente um ficheiro ao servidor if (fileUploadFotografia != null) { // guardar o nome da imagem na base de dados agente.Fotografia = nomeFotografia; } else { // não há imagem... ModelState.AddModelError("", "Não foi fornecida uma imagem..."); // gera MSG de erro return(View(agente)); // reenvia os dados do 'Agente' para a view } // -verificar se o ficheiro é realmente uma imagem ---> casa // -redimensionar a imagem ---> casa // ModelState.IsValid --> confronta os dados fornecidos com o modelo // se não respeitar as regras do modelo, rejeita os dados if (ModelState.IsValid) { try { // adiciona na estrutura de dados, na memória do servidor, // o objeto Agentes db.Agentes.Add(agente); // faz 'commit' na BD db.SaveChanges(); // guardar a imagem no disco rígido fileUploadFotografia.SaveAs(caminhoParaFotografia); // redireciona o utilizador para a página de ínicio return(RedirectToAction("Index")); } catch (Exception) { // gerar uma mensagem de erro para o utilizador ModelState.AddModelError("", "Ocurreu um erro não determinado na criação do novo Agente..."); } } // se se chegar aqui, é pq aconteceu algum problema // devolve os dados do agente à View return(View(agente)); }
//seed -> semente, é um objeto em que se houver as condicoes necessarias gera algo protected override void Seed(MultasDb context) { //********************************************************************* // adiciona VIATURAS var agentes = new List <Agentes> { new Agentes { ID = 1, Nome = "Tânia Vieira", Esquadra = "Ourém", Fotografia = "TaniaVieira.jpg" }, new Agentes { ID = 2, Nome = "António Rocha", Esquadra = "Ourém", Fotografia = "AntonioRocha.jpg" }, new Agentes { ID = 3, Nome = "André Silveira", Esquadra = "Abrantes", Fotografia = "AndreSilveira.jpg" }, new Agentes { ID = 4, Nome = "Lurdes Vieira", Esquadra = "Leiria", Fotografia = "LurdesVieira.jpg" }, new Agentes { ID = 5, Nome = "Cláudia Pinto", Esquadra = "Porto", Fotografia = "ClaudiaPinto.jpg" }, new Agentes { ID = 6, Nome = "Rui Vieira", Esquadra = "Tomar", Fotografia = "RuiVieira.jpg" }, new Agentes { ID = 7, Nome = "Paulo Vieira", Esquadra = "Torres Novas", Fotografia = "PauloVieira.jpg" }, new Agentes { ID = 8, Nome = "Augusto Carvalho", Esquadra = "Lisboa", Fotografia = "AugustoCarvalho.jpg" }, new Agentes { ID = 9, Nome = "Beatriz Pinto", Esquadra = "Porto", Fotografia = "BeatrizPinto.jpg" }, new Agentes { ID = 10, Nome = "José Alves", Esquadra = "Alcanena", Fotografia = "JoseAlves.jpg" } }; agentes.ForEach(aa => context.Agentes.AddOrUpdate(a => a.Nome, aa)); context.SaveChanges(); //********************************************************************* // adiciona VIATURAS var viaturas = new List <Viaturas> { new Viaturas { ID = 1, Matricula = "AT-47-45", Marca = "Ford", Modelo = "Focus WRC", Cor = "Branco", NomeDono = "Tiago Lopes", MoradaDono = "Rua de Coimbra", CodPostalDono = "2300-471 TOMAR" }, new Viaturas { ID = 2, Matricula = "BM-72-65", Marca = "Seat", Modelo = "Toledo", Cor = "Preto", NomeDono = "Henrique Soares", MoradaDono = "Azinhaga de Bacelos", CodPostalDono = "2300-439 TOMAR" }, new Viaturas { ID = 3, Matricula = "CI-57-04", Marca = "Ferrari", Modelo = "Testarossa", Cor = "Vermelho", NomeDono = "Luciano Fernandes", MoradaDono = "Travessa dos Arcos", CodPostalDono = "2300-602 TOMAR" }, new Viaturas { ID = 4, Matricula = "CQ-07-12", Marca = "Renault", Modelo = "Clio", Cor = "Cinzento", NomeDono = "Mara Fernandes", MoradaDono = "Rua da Saboaria", CodPostalDono = "2300-559 TOMAR" }, new Viaturas { ID = 5, Matricula = "DM-21-48", Marca = "Ford", Modelo = "Mondeo", Cor = "Vermelho", NomeDono = "Luciana Rocha", MoradaDono = "Rua Infantaria 15", CodPostalDono = "2300-583 TOMAR" }, new Viaturas { ID = 6, Matricula = "EU-59-11", Marca = "Renault", Modelo = "Espace", Cor = "Verde", NomeDono = "Isabel Rosa", MoradaDono = "Rua Paulo Oliveira", CodPostalDono = "2300-514 TOMAR" }, new Viaturas { ID = 7, Matricula = "FJ-74-85", Marca = "Audi", Modelo = "TT", Cor = "Branco", NomeDono = "Alexandre Vieira", MoradaDono = "Rua do Centro Republicano", CodPostalDono = "2300-359 TOMAR" }, new Viaturas { ID = 8, Matricula = "HC-41-61", Marca = "Fiat", Modelo = "Bravo", Cor = "Preto", NomeDono = "Guilherme Rodrigues", MoradaDono = "Rua do Teatro", CodPostalDono = "2300-573 TOMAR" }, new Viaturas { ID = 9, Matricula = "HO-15-18", Marca = "Renault", Modelo = "Twingo", Cor = "Azul", NomeDono = "Paulo Vieira", MoradaDono = "Rua da Cascalheira", CodPostalDono = "2300-464 TOMAR" }, new Viaturas { ID = 10, Matricula = "HV-21-24", Marca = "BMW", Modelo = "Serie 5", Cor = "Cinzento", NomeDono = "João Vieira", MoradaDono = "Rua Torres Pinheiro", CodPostalDono = "2300-538 TOMAR" }, new Viaturas { ID = 11, Matricula = "KK-71-88", Marca = "Renault", Modelo = "4L", Cor = "Vermelho", NomeDono = "João Simões Lopes", MoradaDono = "Rua S. João", CodPostalDono = "2300-001 TOMAR" }, new Viaturas { ID = 12, Matricula = "LL-21-07", Marca = "Seat", Modelo = "Marbelha", Cor = "Verde", NomeDono = "Henrique Dias", MoradaDono = "Caminho Água das Maias", CodPostalDono = "2300-632 TOMAR" }, new Viaturas { ID = 13, Matricula = "MJ-87-82", Marca = "Seat", Modelo = "Ibisa", Cor = "Branco", NomeDono = "Tânia Fernandes", MoradaDono = "Avenida Doutor Vieira Guimarães", CodPostalDono = "2300-534 TOMAR" }, new Viaturas { ID = 14, Matricula = "NG-96-34", Marca = "Renault", Modelo = "Megane", Cor = "Preto", NomeDono = "Guilherme Pinto", MoradaDono = "Rua de Leiria", CodPostalDono = "2300-565 TOMAR" }, new Viaturas { ID = 15, Matricula = "NS-21-62", Marca = "Fiat", Modelo = "Panda", Cor = "Azul", NomeDono = "Rodrigo Vieira", MoradaDono = "Rua Doutor Oliveira Salazar", CodPostalDono = "2305-123 ASSEICEIRA TMR" }, new Viaturas { ID = 16, Matricula = "OI-17-31", Marca = "Fiat", Modelo = "Punto 75 SX", Cor = "Cinzento", NomeDono = "Manuel Rodrigues", MoradaDono = "Rua Fernando Lopes Graça", CodPostalDono = "2300-493 TOMAR" }, new Viaturas { ID = 17, Matricula = "SM-38-87", Marca = "Porshe", Modelo = "911 Carrera", Cor = "Preto", NomeDono = "Simone Vieira", MoradaDono = "Rua 1º de Maio", CodPostalDono = "2300-448 TOMAR" }, new Viaturas { ID = 18, Matricula = "TV-35-04", Marca = "Audi", Modelo = "A4", Cor = "Verde", NomeDono = "Luciano Vieira", MoradaDono = "Largo da Saboaria", CodPostalDono = "2300-327 TOMAR" }, new Viaturas { ID = 19, Matricula = "UE-92-24", Marca = "Audi", Modelo = "A3", Cor = "Branco", NomeDono = "Marcos Vieira", MoradaDono = "Avenida Dom Nuno Álvares Pereira", CodPostalDono = "2300-532 TOMAR" }, new Viaturas { ID = 20, Matricula = "XD-71-88", Marca = "BMW", Modelo = "Serie3", Cor = "Preto", NomeDono = "Renato Vieira", MoradaDono = "Rua do Orfeão Tomarense", CodPostalDono = "2300-480 TOMAR" }, new Viaturas { ID = 21, Matricula = "ZG-74-16", Marca = "Skoda", Modelo = "Superb", Cor = "Azul", NomeDono = "Fábio Ribeiro", MoradaDono = "Rua Dom Diogo Torralva", CodPostalDono = "2300-477 TOMAR" } }; viaturas.ForEach(vv => context.Viaturas.AddOrUpdate(v => v.Matricula, vv)); context.SaveChanges(); //********************************************************************* // adiciona CONDUTORES var condutores = new List <Condutores> { new Condutores { ID = 1, Nome = " João Santos", BI = "123456", Telemovel = "912039720", DataNascimento = new DateTime(1965, 2, 21), NumCartaConducao = "SA-12345", LocalEmissao = "Santarém", DataValidadeCarta = new DateTime(2022, 1, 22) }, new Condutores { ID = 2, Nome = " Daniel Soares", BI = "259608283", Telemovel = "928155823", DataNascimento = new DateTime(1966, 7, 19), NumCartaConducao = "LX-244056", LocalEmissao = "Lisboa", DataValidadeCarta = new DateTime(2029, 9, 24) }, new Condutores { ID = 3, Nome = " Adriana Rodrigues", BI = "588141871", Telemovel = "922775155", DataNascimento = new DateTime(1981, 12, 3), NumCartaConducao = "LX-847226", LocalEmissao = "Lisboa", DataValidadeCarta = new DateTime(2025, 2, 9) }, new Condutores { ID = 4, Nome = " Rosa Fernandes", BI = "728246437", Telemovel = "913055221", DataNascimento = new DateTime(1977, 9, 24), NumCartaConducao = "SA-89573", LocalEmissao = "Santarém", DataValidadeCarta = new DateTime(2027, 9, 6) }, new Condutores { ID = 5, Nome = " Carolina Oliveira", BI = "858156342", Telemovel = "938070118", DataNascimento = new DateTime(1953, 8, 17), NumCartaConducao = "AC-738163", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2022, 8, 1) }, new Condutores { ID = 6, Nome = " César Sousa", BI = "507261086", Telemovel = "916118589", DataNascimento = new DateTime(1964, 8, 22), NumCartaConducao = "FA-321287", LocalEmissao = "Faro", DataValidadeCarta = new DateTime(2027, 1, 26) }, new Condutores { ID = 7, Nome = " Maria Teixeira", BI = "618881552", Telemovel = "913789865", DataNascimento = new DateTime(1956, 3, 23), NumCartaConducao = "BE-782268", LocalEmissao = "Beja", DataValidadeCarta = new DateTime(2025, 3, 11) }, new Condutores { ID = 8, Nome = " Maria Melo", BI = "819229141", Telemovel = "939473033", DataNascimento = new DateTime(1955, 11, 21), NumCartaConducao = "EV-409189", LocalEmissao = "Évora", DataValidadeCarta = new DateTime(2026, 6, 15) }, new Condutores { ID = 9, Nome = " Francisco Vieira", BI = "468921645", Telemovel = "933935364", DataNascimento = new DateTime(1965, 8, 12), NumCartaConducao = "PO-26600", LocalEmissao = "Porto", DataValidadeCarta = new DateTime(2021, 11, 2) }, new Condutores { ID = 10, Nome = " Leonardo Marques", BI = "110562475", Telemovel = "919566682", DataNascimento = new DateTime(1937, 8, 19), NumCartaConducao = "AC-488808", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2021, 11, 13) }, new Condutores { ID = 11, Nome = " Fábio Carvalho", BI = "241857636", Telemovel = "929532699", DataNascimento = new DateTime(1977, 4, 6), NumCartaConducao = "EV-196487", LocalEmissao = "Évora", DataValidadeCarta = new DateTime(2026, 10, 10) }, new Condutores { ID = 12, Nome = " Tiago Vieira", BI = "192262426", Telemovel = "923560516", DataNascimento = new DateTime(1945, 10, 4), NumCartaConducao = "EV-115244", LocalEmissao = "Évora", DataValidadeCarta = new DateTime(2019, 3, 20) }, new Condutores { ID = 13, Nome = " Rosana Soares", BI = "233334917", Telemovel = "921904819", DataNascimento = new DateTime(1951, 4, 4), NumCartaConducao = "EV-257116", LocalEmissao = "Évora", DataValidadeCarta = new DateTime(2019, 10, 11) }, new Condutores { ID = 14, Nome = " Rui Freitas", BI = "251617767", Telemovel = "928275227", DataNascimento = new DateTime(1985, 4, 25), NumCartaConducao = "PO-611668", LocalEmissao = "Porto", DataValidadeCarta = new DateTime(2027, 1, 3) }, new Condutores { ID = 15, Nome = " César Soares", BI = "151965324", Telemovel = "926122269", DataNascimento = new DateTime(1961, 12, 4), NumCartaConducao = "VI-815500", LocalEmissao = "Viseu", DataValidadeCarta = new DateTime(2030, 11, 2) }, new Condutores { ID = 16, Nome = " Márcio Sousa", BI = "74975648", Telemovel = "920273918", DataNascimento = new DateTime(1971, 6, 12), NumCartaConducao = "AC-680776", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2019, 6, 4) }, new Condutores { ID = 17, Nome = " Eduardo Vieira", BI = "254872277", Telemovel = "911426580", DataNascimento = new DateTime(1973, 11, 19), NumCartaConducao = "FA-812863", LocalEmissao = "Faro", DataValidadeCarta = new DateTime(2025, 5, 24) }, new Condutores { ID = 18, Nome = " Adriana Oliveira", BI = "686190303", Telemovel = "928341652", DataNascimento = new DateTime(1950, 9, 16), NumCartaConducao = "BE-100918", LocalEmissao = "Beja", DataValidadeCarta = new DateTime(2030, 9, 25) }, new Condutores { ID = 19, Nome = " Beatriz Soares", BI = "163679850", Telemovel = "919470029", DataNascimento = new DateTime(1985, 1, 6), NumCartaConducao = "AC-374173", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2029, 1, 13) }, new Condutores { ID = 20, Nome = " Adriana Sousa", BI = "845941950", Telemovel = "927173964", DataNascimento = new DateTime(1957, 6, 20), NumCartaConducao = "MA-107861", LocalEmissao = "Madeira", DataValidadeCarta = new DateTime(2025, 6, 14) }, new Condutores { ID = 21, Nome = " Patrícia Gonçalves", BI = "185717766", Telemovel = "914848986", DataNascimento = new DateTime(1934, 4, 20), NumCartaConducao = "MA-949155", LocalEmissao = "Madeira", DataValidadeCarta = new DateTime(2023, 2, 3) }, new Condutores { ID = 22, Nome = " Paula Martins", BI = "782184726", Telemovel = "920456771", DataNascimento = new DateTime(1984, 11, 6), NumCartaConducao = "BE-743939", LocalEmissao = "Beja", DataValidadeCarta = new DateTime(2028, 11, 23) }, new Condutores { ID = 23, Nome = " Andreia Vieira", BI = "994307613", Telemovel = "927778208", DataNascimento = new DateTime(1967, 10, 25), NumCartaConducao = "FA-165555", LocalEmissao = "Faro", DataValidadeCarta = new DateTime(2027, 3, 28) }, new Condutores { ID = 24, Nome = " Elisabete Morais", BI = "270424301", Telemovel = "929350747", DataNascimento = new DateTime(1933, 7, 26), NumCartaConducao = "FA-583994", LocalEmissao = "Faro", DataValidadeCarta = new DateTime(2029, 11, 8) }, new Condutores { ID = 25, Nome = " Marlene Melo", BI = "270120676", Telemovel = "927108995", DataNascimento = new DateTime(1937, 7, 14), NumCartaConducao = "FA-751427", LocalEmissao = "Faro", DataValidadeCarta = new DateTime(2029, 4, 6) }, new Condutores { ID = 26, Nome = " Marlene Pinto", BI = "751512767", Telemovel = "915698893", DataNascimento = new DateTime(1942, 2, 20), NumCartaConducao = "LX-963025", LocalEmissao = "Lisboa", DataValidadeCarta = new DateTime(2021, 12, 20) }, new Condutores { ID = 27, Nome = " Luís Lopes", BI = "497555127", Telemovel = "912266256", DataNascimento = new DateTime(1967, 3, 15), NumCartaConducao = "MA-512423", LocalEmissao = "Madeira", DataValidadeCarta = new DateTime(2029, 11, 7) }, new Condutores { ID = 28, Nome = " Denise Vieira", BI = "264427182", Telemovel = "923857727", DataNascimento = new DateTime(1977, 5, 28), NumCartaConducao = "PO-887507", LocalEmissao = "Porto", DataValidadeCarta = new DateTime(2029, 8, 2) }, new Condutores { ID = 29, Nome = " Cristina Rosa", BI = "461453252", Telemovel = "938685713", DataNascimento = new DateTime(1960, 10, 19), NumCartaConducao = "MA-257694", LocalEmissao = "Madeira", DataValidadeCarta = new DateTime(2030, 9, 11) }, new Condutores { ID = 30, Nome = " Carmem Lopes", BI = "91728054", Telemovel = "913797694", DataNascimento = new DateTime(1942, 5, 3), NumCartaConducao = "SA-324795", LocalEmissao = "Santarém", DataValidadeCarta = new DateTime(2025, 6, 12) }, new Condutores { ID = 31, Nome = " Rosana Carvalho", BI = "279887145", Telemovel = "933692261", DataNascimento = new DateTime(1956, 6, 9), NumCartaConducao = "LX-182393", LocalEmissao = "Lisboa", DataValidadeCarta = new DateTime(2026, 8, 25) }, new Condutores { ID = 32, Nome = " Paula Silva", BI = "372845332", Telemovel = "917633750", DataNascimento = new DateTime(1972, 5, 27), NumCartaConducao = "VI-966301", LocalEmissao = "Viseu", DataValidadeCarta = new DateTime(2029, 4, 9) }, new Condutores { ID = 33, Nome = " Mara Vieira", BI = "682215833", Telemovel = "910890721", DataNascimento = new DateTime(1976, 7, 3), NumCartaConducao = "LX-753375", LocalEmissao = "Lisboa", DataValidadeCarta = new DateTime(2026, 2, 27) }, new Condutores { ID = 34, Nome = " Adão Pinto", BI = "263833191", Telemovel = "919161492", DataNascimento = new DateTime(1933, 9, 28), NumCartaConducao = "AC-380383", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2024, 3, 5) }, new Condutores { ID = 35, Nome = " Daniel Rodrigues", BI = "785025953", Telemovel = "931603084", DataNascimento = new DateTime(1940, 2, 16), NumCartaConducao = "BE-173356", LocalEmissao = "Beja", DataValidadeCarta = new DateTime(2022, 6, 2) }, new Condutores { ID = 36, Nome = " Sandra Rodrigues", BI = "639730253", Telemovel = "913795825", DataNascimento = new DateTime(1932, 7, 25), NumCartaConducao = "AC-232544", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2022, 11, 13) }, new Condutores { ID = 37, Nome = " Cláudio Vieira", BI = "556447530", Telemovel = "916327284", DataNascimento = new DateTime(1982, 4, 2), NumCartaConducao = "AC-488152", LocalEmissao = "Açores", DataValidadeCarta = new DateTime(2029, 8, 25) } }; condutores.ForEach(cc => context.Condutores.AddOrUpdate(c => c.BI, cc)); context.SaveChanges(); //********************************************************************* // adiciona MULTAS var multas = new List <Multas> { new Multas { ID = 7, LocalMulta = "Abrantes", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 3, 9), ViaturaFK = 10, CondutorFK = 17, AgenteFK = 1 }, new Multas { ID = 23, LocalMulta = "Abrantes", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 8, 9), ViaturaFK = 15, CondutorFK = 23, AgenteFK = 1 }, new Multas { ID = 26, LocalMulta = "Abrantes", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 8, 18), ViaturaFK = 17, CondutorFK = 6, AgenteFK = 1 }, new Multas { ID = 64, LocalMulta = "Abrantes", Infracao = "Circular em sentido contrário", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 3, 24), ViaturaFK = 5, CondutorFK = 16, AgenteFK = 1 }, new Multas { ID = 14, LocalMulta = "Tomar", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 2, 12), ViaturaFK = 9, CondutorFK = 15, AgenteFK = 2 }, new Multas { ID = 20, LocalMulta = "Tomar", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 4, 27), ViaturaFK = 11, CondutorFK = 29, AgenteFK = 2 }, new Multas { ID = 46, LocalMulta = "Tomar", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 5, 3), ViaturaFK = 9, CondutorFK = 22, AgenteFK = 2 }, new Multas { ID = 65, LocalMulta = "Tomar", Infracao = "Inverter marcha em Autoestrada", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 3, 18), ViaturaFK = 6, CondutorFK = 25, AgenteFK = 2 }, new Multas { ID = 67, LocalMulta = "Tomar", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 20), ViaturaFK = 19, CondutorFK = 2, AgenteFK = 2 }, new Multas { ID = 113, LocalMulta = "Tomar", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 27), ViaturaFK = 6, CondutorFK = 22, AgenteFK = 2 }, new Multas { ID = 52, LocalMulta = "Leiria", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 16), ViaturaFK = 18, CondutorFK = 2, AgenteFK = 3 }, new Multas { ID = 61, LocalMulta = "Leiria", Infracao = "Não respeitar prioridade", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 1, 19), ViaturaFK = 13, CondutorFK = 13, AgenteFK = 3 }, new Multas { ID = 77, LocalMulta = "Leiria", Infracao = "Excesso de ocupantes", ValorMulta = 200.00M, DataMulta = new DateTime(2017, 5, 6), ViaturaFK = 11, CondutorFK = 10, AgenteFK = 3 }, new Multas { ID = 109, LocalMulta = "Leiria", Infracao = "Inverter marcha em Autoestrada", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 6, 15), ViaturaFK = 16, CondutorFK = 23, AgenteFK = 3 }, new Multas { ID = 4, LocalMulta = "Lisboa", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 9, 15), ViaturaFK = 11, CondutorFK = 17, AgenteFK = 4 }, new Multas { ID = 15, LocalMulta = "Lisboa", Infracao = "Inverter marcha em Autoestrada", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 8, 12), ViaturaFK = 18, CondutorFK = 5, AgenteFK = 4 }, new Multas { ID = 19, LocalMulta = "Lisboa", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 2, 7), ViaturaFK = 18, CondutorFK = 18, AgenteFK = 4 }, new Multas { ID = 28, LocalMulta = "Lisboa", Infracao = "Estacionamento em cima do passeio", ValorMulta = 30.00M, DataMulta = new DateTime(2017, 7, 9), ViaturaFK = 3, CondutorFK = 3, AgenteFK = 4 }, new Multas { ID = 36, LocalMulta = "Lisboa", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 5, 7), ViaturaFK = 17, CondutorFK = 17, AgenteFK = 4 }, new Multas { ID = 45, LocalMulta = "Lisboa", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 26), ViaturaFK = 18, CondutorFK = 14, AgenteFK = 4 }, new Multas { ID = 92, LocalMulta = "Lisboa", Infracao = "Não parar em sinal STOP", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 22), ViaturaFK = 16, CondutorFK = 6, AgenteFK = 4 }, new Multas { ID = 12, LocalMulta = "Alcanena", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 3, 24), ViaturaFK = 6, CondutorFK = 19, AgenteFK = 5 }, new Multas { ID = 31, LocalMulta = "Alcanena", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 4, 16), ViaturaFK = 11, CondutorFK = 1, AgenteFK = 5 }, new Multas { ID = 44, LocalMulta = "Alcanena", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 9, 15), ViaturaFK = 19, CondutorFK = 17, AgenteFK = 5 }, new Multas { ID = 47, LocalMulta = "Alcanena", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 13), ViaturaFK = 9, CondutorFK = 28, AgenteFK = 5 }, new Multas { ID = 55, LocalMulta = "Alcanena", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 2), ViaturaFK = 11, CondutorFK = 21, AgenteFK = 5 }, new Multas { ID = 72, LocalMulta = "Alcanena", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 17), ViaturaFK = 1, CondutorFK = 7, AgenteFK = 5 }, new Multas { ID = 90, LocalMulta = "Alcanena", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 21), ViaturaFK = 4, CondutorFK = 29, AgenteFK = 5 }, new Multas { ID = 105, LocalMulta = "Alcanena", Infracao = "Circular com pneus inválidos", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 4, 16), ViaturaFK = 6, CondutorFK = 11, AgenteFK = 5 }, new Multas { ID = 5, LocalMulta = "Leiria", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 22), ViaturaFK = 11, CondutorFK = 13, AgenteFK = 6 }, new Multas { ID = 6, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 8, 2), ViaturaFK = 16, CondutorFK = 5, AgenteFK = 6 }, new Multas { ID = 43, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 5), ViaturaFK = 2, CondutorFK = 6, AgenteFK = 6 }, new Multas { ID = 48, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 6, 20), ViaturaFK = 3, CondutorFK = 12, AgenteFK = 6 }, new Multas { ID = 50, LocalMulta = "Leiria", Infracao = "Circular com pneus inválidos", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 1, 6), ViaturaFK = 16, CondutorFK = 15, AgenteFK = 6 }, new Multas { ID = 53, LocalMulta = "Leiria", Infracao = "Estacionamento em cima do passeio", ValorMulta = 30.00M, DataMulta = new DateTime(2017, 4, 7), ViaturaFK = 15, CondutorFK = 16, AgenteFK = 6 }, new Multas { ID = 54, LocalMulta = "Leiria", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 21), ViaturaFK = 11, CondutorFK = 4, AgenteFK = 6 }, new Multas { ID = 66, LocalMulta = "Leiria", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 6, 28), ViaturaFK = 10, CondutorFK = 3, AgenteFK = 6 }, new Multas { ID = 70, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 14), ViaturaFK = 18, CondutorFK = 26, AgenteFK = 6 }, new Multas { ID = 80, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 1, 16), ViaturaFK = 1, CondutorFK = 27, AgenteFK = 6 }, new Multas { ID = 81, LocalMulta = "Leiria", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 9, 22), ViaturaFK = 19, CondutorFK = 18, AgenteFK = 6 }, new Multas { ID = 85, LocalMulta = "Leiria", Infracao = "Não respeitar prioridade", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 27), ViaturaFK = 17, CondutorFK = 10, AgenteFK = 6 }, new Multas { ID = 1, LocalMulta = "Leiria", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 2, 4), ViaturaFK = 14, CondutorFK = 8, AgenteFK = 7 }, new Multas { ID = 25, LocalMulta = "Leiria", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 6, 21), ViaturaFK = 6, CondutorFK = 11, AgenteFK = 7 }, new Multas { ID = 34, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 4, 10), ViaturaFK = 8, CondutorFK = 11, AgenteFK = 7 }, new Multas { ID = 40, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 8, 24), ViaturaFK = 14, CondutorFK = 17, AgenteFK = 7 }, new Multas { ID = 83, LocalMulta = "Leiria", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 5, 15), ViaturaFK = 8, CondutorFK = 13, AgenteFK = 7 }, new Multas { ID = 106, LocalMulta = "Leiria", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 8, 21), ViaturaFK = 16, CondutorFK = 15, AgenteFK = 7 }, new Multas { ID = 17, LocalMulta = "Lisboa", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 4, 10), ViaturaFK = 13, CondutorFK = 28, AgenteFK = 8 }, new Multas { ID = 29, LocalMulta = "Lisboa", Infracao = "Circular com pneus inválidos", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 23), ViaturaFK = 19, CondutorFK = 10, AgenteFK = 8 }, new Multas { ID = 63, LocalMulta = "Lisboa", Infracao = "Circular em sentido contrário", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 8, 26), ViaturaFK = 10, CondutorFK = 24, AgenteFK = 8 }, new Multas { ID = 68, LocalMulta = "Lisboa", Infracao = "Não respeitar prioridade", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 24), ViaturaFK = 14, CondutorFK = 13, AgenteFK = 8 }, new Multas { ID = 82, LocalMulta = "Lisboa", Infracao = "Não parar em sinal STOP", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 7), ViaturaFK = 8, CondutorFK = 11, AgenteFK = 8 }, new Multas { ID = 89, LocalMulta = "Lisboa", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 4, 10), ViaturaFK = 19, CondutorFK = 19, AgenteFK = 8 }, new Multas { ID = 95, LocalMulta = "Lisboa", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 7, 16), ViaturaFK = 10, CondutorFK = 8, AgenteFK = 8 }, new Multas { ID = 96, LocalMulta = "Lisboa", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 3, 23), ViaturaFK = 8, CondutorFK = 22, AgenteFK = 8 }, new Multas { ID = 9, LocalMulta = "Alcanena", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 18), ViaturaFK = 5, CondutorFK = 6, AgenteFK = 9 }, new Multas { ID = 21, LocalMulta = "Alcanena", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 14), ViaturaFK = 7, CondutorFK = 8, AgenteFK = 9 }, new Multas { ID = 73, LocalMulta = "Alcanena", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 5), ViaturaFK = 19, CondutorFK = 6, AgenteFK = 9 }, new Multas { ID = 74, LocalMulta = "Alcanena", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 2, 25), ViaturaFK = 19, CondutorFK = 22, AgenteFK = 9 }, new Multas { ID = 99, LocalMulta = "Alcanena", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 8), ViaturaFK = 18, CondutorFK = 11, AgenteFK = 9 }, new Multas { ID = 102, LocalMulta = "Alcanena", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 3, 25), ViaturaFK = 13, CondutorFK = 21, AgenteFK = 9 }, new Multas { ID = 3, LocalMulta = "Lisboa", Infracao = "Circular em sentido contrário", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 8, 3), ViaturaFK = 18, CondutorFK = 3, AgenteFK = 10 }, new Multas { ID = 13, LocalMulta = "Lisboa", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 1, 9), ViaturaFK = 5, CondutorFK = 17, AgenteFK = 10 }, new Multas { ID = 32, LocalMulta = "Lisboa", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 20), ViaturaFK = 12, CondutorFK = 17, AgenteFK = 10 }, new Multas { ID = 41, LocalMulta = "Lisboa", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 5, 13), ViaturaFK = 1, CondutorFK = 25, AgenteFK = 10 }, new Multas { ID = 42, LocalMulta = "Lisboa", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 6, 1), ViaturaFK = 19, CondutorFK = 14, AgenteFK = 10 }, new Multas { ID = 56, LocalMulta = "Lisboa", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 3, 5), ViaturaFK = 17, CondutorFK = 5, AgenteFK = 10 }, new Multas { ID = 11, LocalMulta = "Porto", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 8, 14), ViaturaFK = 6, CondutorFK = 13, AgenteFK = 4 }, new Multas { ID = 18, LocalMulta = "Porto", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 1, 5), ViaturaFK = 4, CondutorFK = 7, AgenteFK = 4 }, new Multas { ID = 38, LocalMulta = "Porto", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 7, 9), ViaturaFK = 9, CondutorFK = 30, AgenteFK = 4 }, new Multas { ID = 51, LocalMulta = "Porto", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 2, 28), ViaturaFK = 7, CondutorFK = 19, AgenteFK = 4 }, new Multas { ID = 76, LocalMulta = "Porto", Infracao = "Estacionamento em 2a. fila", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 2, 10), ViaturaFK = 15, CondutorFK = 4, AgenteFK = 4 }, new Multas { ID = 108, LocalMulta = "Porto", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 2), ViaturaFK = 11, CondutorFK = 20, AgenteFK = 4 }, new Multas { ID = 62, LocalMulta = "Ourém", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 5, 12), ViaturaFK = 10, CondutorFK = 26, AgenteFK = 6 }, new Multas { ID = 86, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 2, 13), ViaturaFK = 2, CondutorFK = 7, AgenteFK = 6 }, new Multas { ID = 33, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 8, 9), ViaturaFK = 7, CondutorFK = 7, AgenteFK = 7 }, new Multas { ID = 60, LocalMulta = "Ourém", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 4, 28), ViaturaFK = 13, CondutorFK = 13, AgenteFK = 7 }, new Multas { ID = 79, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 8), ViaturaFK = 15, CondutorFK = 3, AgenteFK = 7 }, new Multas { ID = 84, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 9, 20), ViaturaFK = 4, CondutorFK = 7, AgenteFK = 7 }, new Multas { ID = 87, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 5, 15), ViaturaFK = 12, CondutorFK = 22, AgenteFK = 7 }, new Multas { ID = 91, LocalMulta = "Ourém", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 4, 28), ViaturaFK = 7, CondutorFK = 27, AgenteFK = 7 }, new Multas { ID = 94, LocalMulta = "Ourém", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 5), ViaturaFK = 5, CondutorFK = 4, AgenteFK = 7 }, new Multas { ID = 100, LocalMulta = "Ourém", Infracao = "Circular com pneus inválidos", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 9, 23), ViaturaFK = 17, CondutorFK = 13, AgenteFK = 7 }, new Multas { ID = 107, LocalMulta = "Ourém", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 4, 9), ViaturaFK = 11, CondutorFK = 3, AgenteFK = 7 }, new Multas { ID = 112, LocalMulta = "Ourém", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 4, 18), ViaturaFK = 11, CondutorFK = 6, AgenteFK = 7 }, new Multas { ID = 27, LocalMulta = "Torres Novas", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 3, 21), ViaturaFK = 15, CondutorFK = 15, AgenteFK = 7 }, new Multas { ID = 111, LocalMulta = "Torres Novas", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 22), ViaturaFK = 3, CondutorFK = 7, AgenteFK = 7 }, new Multas { ID = 30, LocalMulta = "Torres Novas", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 6, 23), ViaturaFK = 4, CondutorFK = 16, AgenteFK = 10 }, new Multas { ID = 75, LocalMulta = "Torres Novas", Infracao = "Cond. sob influ. álcool (mais de 1,8)", ValorMulta = 500.00M, DataMulta = new DateTime(2017, 5, 20), ViaturaFK = 8, CondutorFK = 20, AgenteFK = 10 }, new Multas { ID = 2, LocalMulta = "Torres Novas", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 7, 1), ViaturaFK = 6, CondutorFK = 26, AgenteFK = 9 }, new Multas { ID = 8, LocalMulta = "Torres Novas", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 6, 9), ViaturaFK = 5, CondutorFK = 3, AgenteFK = 5 }, new Multas { ID = 57, LocalMulta = "Torres Novas", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 4, 28), ViaturaFK = 1, CondutorFK = 15, AgenteFK = 9 }, new Multas { ID = 59, LocalMulta = "Torres Novas", Infracao = "Uso incorrecto de luzes", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 4, 2), ViaturaFK = 10, CondutorFK = 24, AgenteFK = 5 }, new Multas { ID = 71, LocalMulta = "Torres Novas", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 8, 4), ViaturaFK = 9, CondutorFK = 19, AgenteFK = 9 }, new Multas { ID = 101, LocalMulta = "Torres Novas", Infracao = "Excesso de velocidade (<20 Km)", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 7, 16), ViaturaFK = 8, CondutorFK = 18, AgenteFK = 5 }, new Multas { ID = 110, LocalMulta = "Torres Novas", Infracao = "Não parar em semáforo Vermelho", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 5, 25), ViaturaFK = 3, CondutorFK = 27, AgenteFK = 9 }, new Multas { ID = 114, LocalMulta = "Torres Novas", Infracao = "Não parar em semáforo Vermelho", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 3, 8), ViaturaFK = 14, CondutorFK = 28, AgenteFK = 5 }, new Multas { ID = 16, LocalMulta = "Lisboa", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 9, 13), ViaturaFK = 6, CondutorFK = 15, AgenteFK = 3 }, new Multas { ID = 24, LocalMulta = "Lisboa", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 8, 15), ViaturaFK = 19, CondutorFK = 28, AgenteFK = 3 }, new Multas { ID = 58, LocalMulta = "Lisboa", Infracao = "Não parar em semáforo Vermelho", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 3, 28), ViaturaFK = 6, CondutorFK = 20, AgenteFK = 3 }, new Multas { ID = 69, LocalMulta = "Lisboa", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 9, 25), ViaturaFK = 5, CondutorFK = 14, AgenteFK = 3 }, new Multas { ID = 88, LocalMulta = "Lisboa", Infracao = "Utilizar telemóvel em condução", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 6, 1), ViaturaFK = 1, CondutorFK = 6, AgenteFK = 3 }, new Multas { ID = 93, LocalMulta = "Lisboa", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 1, 14), ViaturaFK = 14, CondutorFK = 30, AgenteFK = 3 }, new Multas { ID = 98, LocalMulta = "Lisboa", Infracao = "Não parar na Passadeira de Peões", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 8, 24), ViaturaFK = 8, CondutorFK = 23, AgenteFK = 3 }, new Multas { ID = 104, LocalMulta = "Lisboa", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 5, 18), ViaturaFK = 19, CondutorFK = 17, AgenteFK = 3 }, new Multas { ID = 22, LocalMulta = "Leiria", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 5, 1), ViaturaFK = 15, CondutorFK = 3, AgenteFK = 8 }, new Multas { ID = 35, LocalMulta = "Leiria", Infracao = "Excesso de velocidade (>20 Km e < 40 Km)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 5, 17), ViaturaFK = 10, CondutorFK = 26, AgenteFK = 8 }, new Multas { ID = 37, LocalMulta = "Leiria", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 3, 3), ViaturaFK = 2, CondutorFK = 17, AgenteFK = 8 }, new Multas { ID = 39, LocalMulta = "Leiria", Infracao = "Cond. sob influ. álcool (de 1,2 a 1,8)", ValorMulta = 2500.00M, DataMulta = new DateTime(2017, 9, 19), ViaturaFK = 8, CondutorFK = 11, AgenteFK = 8 }, new Multas { ID = 49, LocalMulta = "Leiria", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 9, 17), ViaturaFK = 5, CondutorFK = 22, AgenteFK = 8 }, new Multas { ID = 78, LocalMulta = "Leiria", Infracao = "Cond. sob influ. álcool (de 0,5 a 1,2)", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 3, 13), ViaturaFK = 5, CondutorFK = 14, AgenteFK = 8 }, new Multas { ID = 10, LocalMulta = "Santarém", Infracao = "Pisar traço contínuo", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 2, 18), ViaturaFK = 11, CondutorFK = 19, AgenteFK = 8 }, new Multas { ID = 103, LocalMulta = "Santarém", Infracao = "Excesso de velocidade (> 40 Km)", ValorMulta = 250.00M, DataMulta = new DateTime(2017, 8, 28), ViaturaFK = 12, CondutorFK = 5, AgenteFK = 8 }, new Multas { ID = 97, LocalMulta = "Tomar", Infracao = "Desrespeito da obrigação de parar", ValorMulta = 100.00M, DataMulta = new DateTime(2017, 7, 8), ViaturaFK = 6, CondutorFK = 26, AgenteFK = 6 }, new Multas { ID = 115, LocalMulta = "Tomar", Infracao = "Não respeitar prioridade", ValorMulta = 50.00M, DataMulta = new DateTime(2017, 8, 4), ViaturaFK = 3, CondutorFK = 4, AgenteFK = 6 } }; multas.ForEach(mm => context.Multas.AddOrUpdate(m => m.ID, mm)); context.SaveChanges(); }
public ActionResult Create([Bind(Include = "Nome, Esquadra")] Agentes agente, HttpPostedFileBase carregaFotografia) { // gerar o ID do novo Agente int novoID = 0; if (db.Agentes.Count() != 0) { novoID = db.Agentes.Max(a => a.ID) + 1; } else { novoID = 1; } agente.ID = novoID; //atribuir o ID deste Agente // *************************************************************************************************** // outra hipótese de validar a atribuição de ID // try { } // catch(Exception ) { } // *************************************************************************************************** // var auxiliar string nomeFicheiro = "Agente_" + novoID + ".jpg"; string caminho = ""; /// primeiro que tudo, há que grarantir que existe imagem if (carregaFotografia != null) { // a imagem existe agente.Fotografia = nomeFicheiro; // definir o nome do ficheiro e o seu caminho caminho = Path.Combine(Server.MapPath("~/imagens/"), nomeFicheiro); } else { //não foi submetida a imagem // gerar mensagem de erro, para elucidar o utilizador do erro ModelState.AddModelError("", "Não foi inserida uma imagem."); // redirecionar o utilizador para a View, para que ele corrija os dados return(View(agente)); } /// O que fazer para a imagem: /// escolher o nome da imagem /// formatar o tamanho da imagem ---> fazer em casa /// será que o ficheiro é uma imagem? ---> fazer em casa /// guardar a imagem no disco rígido do servidor // ModelState.IsValid ---> confronta os dados recebidos como o modelo, para verificar // se o que recebeu é o que deveria ter sido recebido if (ModelState.IsValid) { try { // adiciona o Agente à estrutura de dados db.Agentes.Add(agente); // efetuam um COMMIT à BD db.SaveChanges(); // guardar o ficheiro no disco rígido carregaFotografia.SaveAs(caminho); //redireciona o utilizador para a página do inicio return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Ocorreu um erro na criação do Agente.'" + agente.Nome + "'."); } } // se aqui cheguei, é porque alguma coisa correu mal... // devolvo na View os dados do Agente return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase uploadFotografia) { //escrever os dados de um novo agente na BD //especificar o ID do novo Agente //testar se há registos na tabela dos agentes // if (db.Agentes.Count() != 0) { } // ou entao, usar a instrução TRY/CATCH int idNovoAgente = 0; try { idNovoAgente = db.Agentes.Max(a => a.ID) + 1; } catch (Exception) { idNovoAgente = 1; } //guardar o ID do novo Agente agente.ID = idNovoAgente; //especificar (escolher) o nome do ficheiro string nomeImagem = "Agente_" + idNovoAgente + ".jpg"; //var. auxiliar string Path = ""; //escrever o ficheiro com a fotografia no disco rigido, na pasta 'imagens' if (uploadFotografia != null) { //o ficheiro foi fornecido //validar se o que foi fornecido é uma imagem --->TPC //formatar o tamanho das imagens //criar o caminho completo ate ao sitio onde o ficheiro será guardado Path = System.IO.Path.Combine(Server.MapPath("~/imagens/"), nomeImagem); //gurdar o nome do ficheiro escolhido na BD agente.Fotografia = nomeImagem; } else { //nao foi fornecido qualquer ficheiro //gerar uma mensagem de erro ModelState.AddModelError("", "Nao foi fornecida uma imagem..."); //devolver o controlo à View return(View(agente)); } //gurdar o nome escolhido na BD if (ModelState.IsValid) { try { //adiciona o novo agente à BD db.Agentes.Add(agente); // faz 'commit' às alteraçoes db.SaveChanges(); //escrever o ficheiro com a fotografia no disco rigido uploadFotografia.SaveAs(Path); // se tudo correr be,, redireciona para a página do Index return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Houve um erro com a criação do novo agente"); } } return(View(agente)); }
public ActionResult Create([Bind(Include = "Nome,Esquadra")] Agentes agente, HttpPostedFileBase uploadFotografia) { // escrever os dados de um novo Agente na BD // especificar o ID do novo Agente // testar se há registos na tabela dos Agentes // if (db.Agentes.Count()!=0){ } // ou então, usar a instrução TRY/CATCH int idNovoAgente = 0; try { idNovoAgente = db.Agentes.Max(a => a.ID) + 1; } catch (Exception) { idNovoAgente = 1; } // guardar o ID do novo Agente agente.ID = idNovoAgente; // especificar (escolher) o nome do ficheiro string nomeImagem = "Agente_" + idNovoAgente + ".jpg"; // var. auxiliar string path = ""; // validar se a imagem foi fornecida if (uploadFotografia != null) { // o ficheiro foi fornecido // validar se o q foi fornecido é uma imagem ----> fazer em casa // formatar o tamanho da imagem // criar o caminho completo até ao sítio onde o ficheiro // será guardado path = Path.Combine(Server.MapPath("~/imagens/"), nomeImagem); // guardar o nome do ficheiro na BD agente.Fotografia = nomeImagem; } else { // não foi fornecido qq ficheiro // gerar uma mensagem de erro ModelState.AddModelError("", "Não foi fornecida uma imagem..."); // devolver o controlo à View return(View(agente)); } // ModelState.IsValid -> confronta os dados fornecidos da View // com as exigências do Modelo if (ModelState.IsValid) { try { // adiciona o novo Agente à BD db.Agentes.Add(agente); // faz 'Commit' às alterações db.SaveChanges(); // escrever o ficheiro com a fotografia no disco rígido, na pasta 'imagens' uploadFotografia.SaveAs(path); // se tudo correr bem, redireciona para a página de Index return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", "Houve um erro com a criação do novo Agente..."); /// se existir uma classe chamada 'Erro.cs' /// iremos nela registar os dados do erro /// - criar um objeto desta classe /// - atribuir a esse objeto os dados do erro /// - nome do controller /// - nome do método /// - data + hora do erro /// - mensagem do erro (ex) /// - dados que se tentavam inserir /// - outros dados considerados relevante /// - guardar o objeto na BD /// /// - notificar um GESTOR do sistema, por email, /// ou por outro meio, da ocorrência do erro /// e dos seus dados } } // se houver um erro, // reapresenta os dados do Agente na View return(View(agente)); }