Exemplo n.º 1
0
        public async Task <IActionResult> Put(int id, [FromBody] PartidoViewModel value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dto = _mapper.Map <PartidoDto>(value);

            return(Ok(await _service.Editar(id, dto)));
        }
Exemplo n.º 2
0
        // GET: Partidos/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var ideologias = _db.Ideologias.Where(i => i.Enabled).ToList();

            var partido = _db.Partidos.Select(p => p)
                          .Where(p => p.PartidoId == id)
                          .Include(p => p.Ideologias)
                          .FirstOrDefault();

            if (partido == null)
            {
                return(HttpNotFound());
            }

            var partidoViewModel = new PartidoViewModel
            {
                PartidoId        = partido.PartidoId,
                Nome             = partido.Nome,
                Sigla            = partido.Sigla.TrimEnd(),
                NumeroEleitoral  = partido.NumeroEleitoral,
                EspectroPolitico = (EspectroPoliticoViewModel)partido.EspectroPolitico,
                Enabled          = partido.Enabled
            };

            foreach (var ideologia in ideologias)
            {
                var partidoIdeologiaViewModel = new PartidoIdeologiaViewModel
                {
                    IdeologiaId   = ideologia.IdeologiaId,
                    NomeIdeologia = ideologia.Nome,
                    Checked       = partido.Ideologias.Any(i => i.IdeologiaId == ideologia.IdeologiaId)
                };
                partidoViewModel.PartidoIdeologias.Add(partidoIdeologiaViewModel);
            }

            partidoViewModel.PartidoIdeologias = partidoViewModel.PartidoIdeologias.OrderBy(i => i.NomeIdeologia).ToList();

            return(View(partidoViewModel));
        }
Exemplo n.º 3
0
        public ActionResult Edit([Bind(Include = "PartidoId, Nome, Sigla, Enabled, NumeroEleitoral, EspectroPolitico, PartidoIdeologias")] PartidoViewModel partidoViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var isValid = true;

                    // Verifica se já existe outro partido com o nome informado.
                    if (_db.Partidos.Any(p => p.PartidoId != partidoViewModel.PartidoId && p.Nome == partidoViewModel.Nome))
                    {
                        ModelState.AddModelError(nameof(ValidationErrorMessage.PartidoNomeJaCadastrado),
                                                 ValidationErrorMessage.PartidoNomeJaCadastrado);
                        isValid = false;
                    }

                    // Verifica se já existe outro partido com a sigla informada.
                    if (_db.Partidos.Any(p => p.PartidoId != partidoViewModel.PartidoId && p.Sigla == partidoViewModel.Sigla))
                    {
                        ModelState.AddModelError(nameof(ValidationErrorMessage.PartidoSiglaJaCadastrado),
                                                 ValidationErrorMessage.PartidoSiglaJaCadastrado);
                        isValid = false;
                    }

                    // Verifica se já existe outro partido com o número eleitoral informado.
                    if (_db.Partidos.Any(p => p.PartidoId != partidoViewModel.PartidoId && p.NumeroEleitoral == partidoViewModel.NumeroEleitoral))
                    {
                        ModelState.AddModelError(nameof(ValidationErrorMessage.PartidoNumeroEleitoralJaCadastrado),
                                                 ValidationErrorMessage.PartidoNumeroEleitoralJaCadastrado);
                        isValid = false;
                    }

                    if (isValid)
                    {
                        var partido = _db.Partidos.Select(p => p)
                                      .Include(p => p.Ideologias)
                                      .FirstOrDefault(p => p.PartidoId == partidoViewModel.PartidoId);

                        if (partido != null)
                        {
                            partido.Nome             = partidoViewModel.Nome;
                            partido.Sigla            = partidoViewModel.Sigla;
                            partido.EspectroPolitico = (EspectroPolitico)partidoViewModel.EspectroPolitico;
                            partido.NumeroEleitoral  = partidoViewModel.NumeroEleitoral;
                            partido.Enabled          = partidoViewModel.Enabled;

                            partido.Ideologias.Clear();

                            foreach (var partidoIdeologia in partidoViewModel.PartidoIdeologias.Where(i => i.Checked))
                            {
                                var ideologia = _db.Ideologias.Find(partidoIdeologia.IdeologiaId);
                                partido.Ideologias.Add(ideologia);
                            }

                            _db.Entry(partido).State = EntityState.Modified;
                            _db.SaveChanges();

                            return(RedirectToAction("Index", new { q = partido.Nome, callbackAction = "Edit" }));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            return(View(partidoViewModel));
        }