Exemple #1
0
        /// <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
            });
        }
Exemple #2
0
        /// <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
            });
        }
Exemple #3
0
        /// <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
            });
        }
Exemple #4
0
        /// <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
            });
        }
Exemple #5
0
        /// <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
            });
        }