//[Fact] public async void UserConfig_ReturnFalse() { ConfigUserRequest configUserRequest = new ConfigUserRequest(); configUserRequest.NameUserToken = "Julian1234"; Response response = await _userService.UserConfig(configUserRequest); bool result = Convert.ToBoolean(response.Data); Assert.False(result, "El usuario no existe"); }
public async Task <IActionResult> UserConfig([FromForm] ConfigUserRequest configUserRequest) { Response result = await _userService.UserConfig(configUserRequest); if (result.Success == 0) { return(BadRequest(result)); } result = await _userService.GetUserConfigResponse(configUserRequest); return(Ok(result)); }
/// <summary> /// Entrada del mentodo para llevar a cabo los procesos correspondientes para /// configurar la cuenta de usuario /// </summary> /// <param name="configUserRequest">Modelo requerido</param> /// <returns>Respuesta que confirma el exito del proceso</returns> public async Task <Response> UserConfig(ConfigUserRequest configUserRequest) { Response response = new Response(); // Validamos la imagen (extensión y tamaño) if (configUserRequest.ImageProfile != null) { if (!ValidateFile.ValidateExtensionImage(configUserRequest.ImageProfile.ContentType)) { string message = $"Formato de imagen no valido {configUserRequest.ImageProfile.ContentType}"; return(response.GetResponse(message, 0, false)); } if (!ValidateFile.ValidateSizeFile(configUserRequest.ImageProfile.Length, 5000000)) { string message = $"Máximo 5MB para el archivo: {ValidateFile.ConvertToMegabytes(configUserRequest.ImageProfile.Length)}"; return(response.GetResponse(message, 0, false)); } } using (var db = new ParchegramDBContext()) { try { var user = await db.User.Where(u => u.NameUser == configUserRequest.NameUserToken).FirstOrDefaultAsync(); if (user != null) { if (configUserRequest.NameUser != null) { user.NameUser = configUserRequest.NameUser; await db.SaveChangesAsync(); } if (configUserRequest.ImageProfile != null) { ImageUserProfile imageUserProfile = new ImageUserProfile(true); imageUserProfile.SaveProfileImage(configUserRequest.ImageProfile, user.NameUser); } } else { return(response.GetResponse("El usuario no existe", 0, false)); } return(response.GetResponse("Usuario actulizado correctamente", 1, false)); } catch (Exception e) { _logger.LogInformation(e.Message); return(response.GetResponse($"Error inesperado {e.Message}", 0, false)); } } }
/// <summary> /// Metodo que devuelve un response con datos del Usuario recien actualizado /// para almacenar en la sessión del cliente /// </summary> /// <param name="nameUser">NameUser del usuario que se ha actualizado</param> /// <returns>Respuesta que contiene datos del usuario</returns> public async Task <Response> GetUserConfigResponse(ConfigUserRequest configUserRequest) { Response response = new Response(); using (var db = new ParchegramDBContext()) { try { var userConfig = (from user in db.User join userImageProfile in db.UserImageProfile on user.Id equals userImageProfile.IdUser into leftUserImageProfile from subUserImageProfile in leftUserImageProfile.DefaultIfEmpty() where user.NameUser == configUserRequest.NameUser || user.NameUser == configUserRequest.NameUserToken select new { user.NameUser, subUserImageProfile.PathImageS }).FirstOrDefault(); if (userConfig == null) { return(response.GetResponse("El usuario no existe", 0, null)); } UserConfigResponse userConfigResponse = new UserConfigResponse(); userConfigResponse.NameUser = userConfig.NameUser; try { userConfigResponse.ImageProfile = await Image.GetFile(userConfig.PathImageS); } catch (Exception e) { _logger.LogInformation(e.Message); userConfigResponse.ImageProfile = null; } return(response.GetResponse("Datos obtenidos correctamente", 1, userConfigResponse)); } catch (Exception e) { _logger.LogInformation(e.Message); return(response.GetResponse($"Error al obtener los datos {e.Message}", 0, null)); } } }