示例#1
0
        //[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");
        }
示例#2
0
        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));
        }
示例#3
0
        /// <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));
                }
            }
        }
示例#4
0
        /// <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));
                }
            }
        }