public ActionResult Create([Bind(Include="Id,Login,Nome,Senha,IdPerfil,IdFilial,Email,Empresa,Cpf,Rg,Endereco,NumeroEndereco,Bairro,Cidade,Uf,Cep,Ativo,TrocarSenha,Complemento")] UsuarioViewModel usuarioVM) { Seguranca.ValidaAcesso(1); MontaListaTelefones(Request, usuarioVM); if (ModelState.IsValid) { usuarioVM.Cpf = usuarioVM.Cpf.Replace(".","").Replace("-",""); if (usuarioVM.Cep != null) usuarioVM.Cep = usuarioVM.Cep.Replace("-",""); var usuario = new Usuario(); TransferePropriedades(usuarioVM, usuario); db.Usuarios.Add(usuario); try { db.SaveChanges(); foreach (var t in usuarioVM.Telefones) { db.TelefonesUsuario.Add(new TelefoneUsuario { IdUsuario = usuario.Id, Telefone = t.Telefone, IdTipoTelefone = t.IdTipoTelefone }); } db.SaveChanges(); } catch (DbEntityValidationException e) { StringBuilder sb = new StringBuilder(); foreach (var eve in e.EntityValidationErrors) { sb.AppendLine(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { sb.AppendLine(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } throw new DbEntityValidationException(sb.ToString(), e); } return RedirectToAction("Index"); } ViewBag.IdFilial = new SelectList(db.Filiais, "Id", "Nome", usuarioVM.IdFilial); ViewBag.IdPerfil = new SelectList(db.Perfis, "Id", "Nome", usuarioVM.IdPerfil); ViewBag.IdTipoTelefone = new SelectList(db.TiposTelefone, "Id", "Nome"); ViewBag.TiposTelefone = db.TiposTelefone; return View(usuarioVM); }
private void TransferePropriedades( UsuarioViewModel usuOrigem, Usuario usuDestino) { usuDestino.Id = usuOrigem.Id; usuDestino.Login = usuOrigem.Login; usuDestino.Nome = usuOrigem.Nome; usuDestino.IdPerfil = usuOrigem.IdPerfil; usuDestino.IdFilial = usuOrigem.IdFilial; usuDestino.Email = usuOrigem.Email; usuDestino.Empresa = usuOrigem.Empresa; usuDestino.Cpf = usuOrigem.Cpf; usuDestino.Rg = usuOrigem.Rg; usuDestino.Endereco = usuOrigem.Endereco; usuDestino.NumeroEndereco = usuOrigem.NumeroEndereco; usuDestino.Bairro = usuOrigem.Bairro; usuDestino.Cidade = usuOrigem.Cidade; usuDestino.Uf = usuOrigem.Uf; usuDestino.Cep = usuOrigem.Cep; usuDestino.Ativo = usuOrigem.Ativo; usuDestino.TrocarSenha = usuOrigem.TrocarSenha; usuDestino.Complemento = usuOrigem.Complemento; }
public ActionResult Edit([Bind(Include="Id,Login,Nome,Senha,IdPerfil,IdFilial,Email,Empresa,Cpf,Rg,Endereco,NumeroEndereco,Bairro,Cidade,Uf,Cep,Ativo,TrocarSenha,Complemento")] UsuarioViewModel usuarioVM) { Seguranca.ValidaAcesso(2); MontaListaTelefones(Request, usuarioVM); if (ModelState.IsValid) { usuarioVM.Cpf = usuarioVM.Cpf.Replace(".","").Replace("-",""); if (usuarioVM.Cep != null) usuarioVM.Cep = usuarioVM.Cep.Replace("-",""); var usuario = new Usuario(); TransferePropriedades(usuarioVM, usuario); db.Entry(usuario).State = EntityState.Modified; try { db.SaveChanges(); int? sequencia = db.ObtemSequencia().FirstOrDefault(); foreach (var item in usuarioVM.Telefones) { db.Database.ExecuteSqlCommand("insert into AuxTelefoneUsuario (Seq, IdUsuario, IdTipoTelefone, Telefone) values({0}, {1}, {2}, {3})", sequencia, usuario.Id, item.IdTipoTelefone, item.Telefone); } db.GravaTelefonesUsuario(sequencia, usuario.Id); } catch (DbEntityValidationException e) { StringBuilder sb = new StringBuilder(); foreach (var eve in e.EntityValidationErrors) { sb.AppendLine(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { sb.AppendLine(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } throw new DbEntityValidationException(sb.ToString(), e); } return RedirectToAction("Index"); } ViewBag.IdFilial = new SelectList(db.Filiais, "Id", "Nome", usuarioVM.IdFilial); ViewBag.IdPerfil = new SelectList(db.Perfis, "Id", "Nome", usuarioVM.IdPerfil); ViewBag.IdTipoTelefone = new SelectList(db.TiposTelefone, "Id", "Nome"); ViewBag.TiposTelefone = db.TiposTelefone; return View(usuarioVM); }