コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
 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));
 }
コード例 #10
0
ファイル: AgentesController.cs プロジェクト: andrelfl/multas
        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));
        }
コード例 #11
0
        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));
        }
コード例 #12
0
        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));
        }
コード例 #13
0
        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));
        }
コード例 #14
0
        [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));
        }
コード例 #15
0
        //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);
        }
コード例 #16
0
        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));
        }
コード例 #17
0
        //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();
        }
コード例 #18
0
        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));
        }
コード例 #19
0
        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));
        }
コード例 #20
0
        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));
        }