/// <summary> /// Edits a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> UpdateUserAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; UserSocketsModel user = JsonSerializer.Deserialize <UserSocketsModel>(request.Argument.ToString()); bool result = await userRepo.EditUserAsync(user); Request requestResponse = new Request { ActionType = ActionType.USER_EDIT.ToString(), Argument = JsonSerializer.Serialize(result) }; if (actualRequest.Images != null && actualRequest.Images.Any()) { if (user.Email != null) { ImagesUtil.WriteImageToPath(actualRequest.Images[0], $"{FILE_PATH}/Users/{user.Id}", "/avatar.jpg"); } else { ImagesUtil.WriteImageToPath(actualRequest.Images[0], $"{FILE_PATH}/Users/{user.Id}", "/background.jpg"); } } return(new ActualRequest { Request = requestResponse, Images = null }); }
/// <summary> /// Edits a given post /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> UpdatePostAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; PostShortVersion updatedPost = JsonSerializer.Deserialize <PostShortVersion>(request.Argument.ToString()); bool result = await postRepo.EditPostAsync(updatedPost); Request responseRequest = new Request { ActionType = ActionType.POST_EDIT.ToString(), Argument = JsonSerializer.Serialize(result) }; if (!result) { return new ActualRequest { Request = responseRequest, Images = null } } ; if (actualRequest.Images != null && actualRequest.Images.Any()) { ImagesUtil.WriteImageToPath(actualRequest.Images[0], $"{FILE_PATH}/Posts", $"/{updatedPost.Id}.jpg"); } return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Persists a given post to the database /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> AddPostAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; PostShortVersion post = JsonSerializer.Deserialize <PostShortVersion>(request.Argument.ToString()); post.HasImage = actualRequest.Images != null; Console.WriteLine("Post Sockets adding post " + post.Title); int result = await postRepo.AddPostAsync(post); Request responseRequest = new Request { ActionType = ActionType.POST_CREATE.ToString(), Argument = JsonSerializer.Serialize(result) }; if (result > 0) { if (post.HasImage) { try { ImagesUtil.WriteImageToPath(actualRequest.Images[0], $"{FILE_PATH}/Posts", $"/{result}.jpg"); } catch (Exception e) { Console.WriteLine("Could not add image to created post " + result); } } } return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Persists a given message to the database and its corresponding notification /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> AddMessageAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; MessageSocketsModel message = JsonSerializer.Deserialize <MessageSocketsModel>(request.Argument.ToString()); List <int> ints = await chatRepo.AddMessageAsync(message); int messageId = ints[0]; Request requestResponse = new Request { ActionType = ActionType.MESSAGE_CREATE.ToString(), Argument = JsonSerializer.Serialize(ints) }; if (messageId > 0) { if (message.HasImage && actualRequest.Images != null) { try { ImagesUtil.WriteImageToPath(actualRequest.Images[0], $"{FILE_PATH}/Messages", $"/{messageId}.jpg"); } catch (Exception e) { Console.WriteLine("Could not add image to created message " + messageId); } } } return(new ActualRequest { Request = requestResponse, Images = null }); }
/// <summary> /// Persists a given user to the database /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> AddUserAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; string userAsJson = request.Argument.ToString(); UserSocketsModel user = JsonSerializer.Deserialize <UserSocketsModel>(userAsJson); Console.WriteLine("Server got register user " + JsonSerializer.Serialize(user)); int result = await userRepo.AddUserAsync(user); bool resultBool = result >= 0; Request requestResponse = new Request { ActionType = ActionType.USER_REGISTER.ToString(), Argument = JsonSerializer.Serialize(resultBool) }; if (result >= 0) { try { byte[] readDefaultAvatar = File.ReadAllBytes($"{FILE_PATH}/Users/defaultAvatar.jpg"); byte[] readDefaultBg = File.ReadAllBytes($"{FILE_PATH}/Users/defaultBg.jpg"); ImagesUtil.WriteImageToPath(readDefaultAvatar, $"{FILE_PATH}/Users/{result}", "/avatar.jpg"); ImagesUtil.WriteImageToPath(readDefaultBg, $"{FILE_PATH}/Users/{result}", "/background.jpg"); } catch (Exception e) { Console.WriteLine("Default avatar not found"); } } return(new ActualRequest { Request = requestResponse, Images = null }); }