public ActionResult Index(FuncionarioEditVM vm) { if (ModelState.IsValid) { _domain.Save(vm); RefreshUser(); this.AlertSuccess(); } else { this.AlertError(); } ViewBag.Cargos = _cargoDomain.GetSelectList(); return(View(vm)); }
public Funcionario Save(FuncionarioEditVM vm) { Funcionario model; if (vm.Id > 0) { model = Get(vm.Id); model.Inject(vm); } else { model = vm.ConvertTo <Funcionario>(); } model.Latitude = vm.Latitude; model.Longitude = vm.Longitude; model.Usuario.Inject(vm); if (model.Usuario.Notificacoes == null) { model.Usuario.Notificacoes = new List <UsuarioNotificacao>(); } else { model.Usuario.Notificacoes.Foreach((notificacao) => notificacao.Notificar = false); } if (vm.Notificacoes != null) { vm.Notificacoes.Foreach((vmNotificacao) => { var notificacao = model.Usuario.Notificacoes.SingleOrDefault(a => a.TipoEvento == vmNotificacao); if (notificacao == null) { notificacao = new UsuarioNotificacao(); model.Usuario.Notificacoes.Add(notificacao); } notificacao.Notificar = true; }); } return(Save(model)); }