private bool Update(UsuarioForm model) { using (var context = new DatabaseContext()) { var entity = GetByKeyFull(model.IdUsuario); if (entity.IdUsuario == 1) { throw new BusinessException($"O usuário '{entity.Nome}' não pode ser alterado"); } if (entity.Email != model.Email) { throw new BusinessException("O e-mail não pode ser alterado."); } context.Entry(entity).State = EntityState.Modified; entity.Nome = model.Nome; entity.DataHoraAlteracao = CurrentDateTime; entity.IdUsuarioAlteracao = IdUsuarioLogado; var clinicasAssociadas = context.Clinica_Usuario.Where(a => a.IdUsuario == entity.IdUsuario); foreach (var item in clinicasAssociadas) { context.Clinica_Usuario.Remove(item); } foreach (var item in model.Clinicas) { var clinica = new Clinica_Usuario(); clinica.DataHoraCadastro = CurrentDateTime; clinica.DataHoraAlteracao = CurrentDateTime; clinica.IdUsuarioCadastro = IdUsuarioLogado; clinica.IdUsuarioAlteracao = IdUsuarioLogado; clinica.Status = (int)DefaultStatusEnum.Ativo; clinica.IdUsuario = entity.IdUsuario; clinica.IdClinica = item.IdClinica; clinica.IdUsuarioGrupo = item.IdUsuarioGrupo; context.Set <Clinica_Usuario>().Add(clinica); } var result = context.SaveChanges() > 0; if (result) { RegistrarLogAtividade(entity, PERMISSAO_ALTERACAO); } return(result); } }
private bool Insert(UsuarioForm model) { using (var context = new DatabaseContext()) { var emailExistente = context.Usuario.FirstOrDefault(a => a.Email == model.Email); if (emailExistente != null) { throw new BusinessException($"O e-mail {model.Email} já está sendo utilizado, escolha outro e-mail para continuar"); } var entity = new Usuario(); entity.DataHoraCadastro = CurrentDateTime; entity.DataHoraAlteracao = CurrentDateTime; entity.IdUsuarioCadastro = IdUsuarioLogado; entity.IdUsuarioAlteracao = IdUsuarioLogado; entity.Status = (int)DefaultStatusEnum.Ativo; entity.Nome = model.Nome; entity.Email = model.Email; entity.Senha = PasswordHash.CreateHash(DEFAULT_PASSWORD); entity.SenhaSalt = PasswordHash.CreateSalt(); entity.PrimeiroAcesso = true; context.Set <Usuario>().Add(entity); foreach (var item in model.Clinicas) { var clinica = new Clinica_Usuario(); clinica.DataHoraCadastro = CurrentDateTime; clinica.DataHoraAlteracao = CurrentDateTime; clinica.IdUsuarioCadastro = IdUsuarioLogado; clinica.IdUsuarioAlteracao = IdUsuarioLogado; clinica.Status = (int)DefaultStatusEnum.Ativo; clinica.IdUsuario = entity.IdUsuario; clinica.IdClinica = item.IdClinica; clinica.IdUsuarioGrupo = item.IdUsuarioGrupo; context.Set <Clinica_Usuario>().Add(clinica); } var result = context.SaveChanges() > 0; if (result) { RegistrarLogAtividade(entity, PERMISSAO_CADASTRO); } return(result); } }