public async Task <string> EditUser(EditUserViewModel model) { var user = await _userService.GetUsuario(model.Id); if (user == null) { return(JsonConvert.SerializeObject(new { status = "error", Message = "Ocurrio un error, los datos no se actualizaron", IsSuccess = false })); } else { var userrole = new UsuarioRoleUpdate { UserId = model.Id, RoleId = model.RoleId }; var AccesoUsuario = new UsuarioAccesoUpdateDto { UserId = model.Id, Activo = model.Activo }; var result = await _userService.InsertOrUpdateUsuarioRole(userrole, AccesoUsuario); return(JsonConvert.SerializeObject(new { status = "error", Message = "Los Datos se han actualizado!", result.IsSuccess })); } }
public async Task <ResponseHelper> InsertOrUpdateUsuarioRole(UsuarioRoleUpdate model, UsuarioAccesoUpdateDto acceso) { var result = new ResponseHelper(); try { var originalEntry = await _context.UsuariosRoles.SingleOrDefaultAsync(x => x.UsuarioId == model.UserId); var originalAcceso = await _context.UsuariosAcceso.SingleOrDefaultAsync(x => x.UserId == model.UserId); using (var trx = _context.Database.BeginTransaction()) { try { //Role if (originalEntry != null) { _context.UsuariosRoles.Remove(originalEntry); } var entry = Mapper.Map <UsuarioRole>(model); await _context.AddAsync(entry); //Acceso if (originalAcceso != null) { _context.UsuariosAcceso.Remove(originalAcceso); } var entryAcceso = Mapper.Map <UsuarioAcceso>(acceso); await _context.AddAsync(entryAcceso); await _context.SaveChangesAsync(); trx.Commit(); result.IsSuccess = true; } catch (Exception x) { trx.Rollback(); } } } catch (Exception ex) { _logger.LogError(ex.Message); } return(result); }