/// <summary> /// Returns a list with all the users who reacted to a given post, in alphabetical order /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetAllLikesForPostAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; int postId = Convert.ToInt32(request.Argument.ToString()); List <UserShortVersion> users = postRepo.GetAllLikesForPost(postId); Request response = new Request { ActionType = ActionType.POST_GET_LIKES.ToString(), Argument = JsonSerializer.Serialize(users) }; List <byte[]> userAvatars = new List <byte[]>(); if (users != null && users.Count > 0) { foreach (var user in users) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{user.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + user.UserId); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <summary> /// Returns a list with all the comments belonging to a given post, in reverse chronological order /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> GetAllCommentsForPostAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; int postId = Convert.ToInt32(request.Argument.ToString()); List <CommentSockets> comments = await postRepo.GetAllCommentsForPost(postId); Request response = new Request { ActionType = ActionType.POST_GET_COMMENTS.ToString(), Argument = JsonSerializer.Serialize(comments) }; List <byte[]> userAvatars = new List <byte[]>(); if (comments != null && comments.Count > 0) { foreach (var comment in comments) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{comment.Owner.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user "); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <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> /// Deletes a post with a given id /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> DeletePostAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; int postId = Convert.ToInt32(request.Argument.ToString()); Console.WriteLine("Deleting post with id " + postId); bool response = await postRepo.DeletePostAsync(postId); if (response) { ImagesUtil.DeleteFile($"{FILE_PATH}/Posts", $"{postId}.jpg"); } Request responseRequest = new Request { ActionType = ActionType.POST_DELETE.ToString(), Argument = JsonSerializer.Serialize(response) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Retrieves a post with its owner, by id and with the sender status regarding it /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> GetPostByIdAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; List <int> ints = JsonSerializer.Deserialize <List <int> >(request.Argument.ToString()); PostShortVersion post = await postRepo.GetPostByIdAsync(ints[0], ints[1]); Request responseRequest = new Request { ActionType = ActionType.POST_GET_BY_ID.ToString(), Argument = JsonSerializer.Serialize(post) }; List <byte[]> images = new List <byte[]>(); if (post != null) { var readOwnerAvatar = File.ReadAllBytes($"{FILE_PATH}/Users/{post.Owner.UserId}/avatar.jpg"); images.Add(ImagesUtil.ResizeImage(readOwnerAvatar, 20, 20)); if (post.HasImage) { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Posts/{post.Id}.jpg"); images.Add(readAvatarFile); } } return(new ActualRequest { Request = responseRequest, Images = images }); }
/// <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> /// Returns a list with recent messages between 2 given users /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetConversationForUsers(ActualRequest actualRequest) { List <int> integers = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <MessageSocketsModel> messages = chatRepo.GetConversationForUsers(integers[0], integers[1], integers[2]); Request response = new Request { ActionType = ActionType.MESSAGE_GET_CONVERSATION.ToString(), Argument = JsonSerializer.Serialize(messages) }; List <byte[]> messageImages = new List <byte[]>(); if (messages != null && messages.Count > 0) { foreach (var message in messages) { if (message.HasImage) { try { var readImageFile = File.ReadAllBytes($"{FILE_PATH}/Messages/{message.Id}.jpg"); messageImages.Add(readImageFile); } catch (Exception e) { Console.WriteLine("No picture found for message " + message.Id); } } } } return(new ActualRequest { Request = response, Images = messageImages }); }
/// <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> /// Retrieves a user short version instance with the given user id /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetUserShortVersionById(ActualRequest actualRequest) { Request request = actualRequest.Request; int userId = Convert.ToInt32(request.Argument.ToString()); UserShortVersion user = userRepo.GetUserShortVersionById(userId); Request response = new Request { ActionType = ActionType.USER_GET_SV_BY_ID.ToString(), Argument = JsonSerializer.Serialize(user) }; List <byte[]> userAvatars = new List <byte[]>(); if (user != null) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{user.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + user.UserId); } } return(new ActualRequest { Request = response, Images = userAvatars }); }
public async Task <ActualRequest> HandleClientRequest(ActualRequest actualRequest) { switch (actualRequest.Request.ActionType) { case "DIET_CREATE": return(await AddDietAsync(actualRequest)); case "DIET_GET_BY_ID": return(await GetDietByIdAsync(actualRequest)); case "DIET_GET_PUBLIC": return(GetPublicDiets(actualRequest)); case "DIET_GET_PRIVATE": return(GetPrivateDietsForUser(actualRequest)); case "DIET_EDIT": return(await EditDietAsync(actualRequest)); case "DIET_DELETE": return(await DeleteDietAsync(actualRequest)); case "DIET_ADD_MEAL": return(await AddMealToDietAsync(actualRequest)); case "DIET_EDIT_MEAL": return(await EditMealInDietAsync(actualRequest)); case "DIET_DELETE_MEAL": return(await DeleteMealFromDietAsync(actualRequest)); default: return(null); } }
/// <summary> /// Gets a list of the most reported users /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> GetUsers(ActualRequest actualRequest) { List <int> paginationInts = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <UserShortVersion> users = await adminRepo.GetAdminUsersAsync(paginationInts[0], paginationInts[1]); Request request = new Request { ActionType = ActionType.ADMIN_GET_USERS.ToString(), Argument = JsonSerializer.Serialize(users) }; List <byte[]> userAvatars = new List <byte[]>(); if (users != null && users.Count > 0) { foreach (var user in users) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{user.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 50, 50)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + user.UserId); } } } return(new ActualRequest { Request = request, Images = userAvatars }); }
/// <summary> /// Gets a list with all the online friends belonging to a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetOnlineFriendsForUser(ActualRequest actualRequest) { Request request = actualRequest.Request; int userId = Convert.ToInt32(request.Argument.ToString()); List <UserShortVersion> onlineFriends = userRepo.GetOnlineFriendsForUser(userId); Request response = new Request { ActionType = ActionType.USER_GET_ONLINE_FRIENDS.ToString(), Argument = JsonSerializer.Serialize(onlineFriends) }; List <byte[]> userAvatars = new List <byte[]>(); if (onlineFriends != null && onlineFriends.Count > 0) { foreach (var friend in onlineFriends) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{friend.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + friend.UserId); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <summary> /// Deletes a user with a given id /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> DeleteUserAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; int userId = Convert.ToInt32(request.Argument.ToString()); Console.WriteLine("Deleting user with id " + userId); List <int> postIdsForUser = userRepo.GetPostIdsForUser(userId); bool response = await userRepo.DeleteUserAsync(userId); if (response) { ImagesUtil.DeleteUserFolder($"{FILE_PATH}/Users/{userId}"); foreach (var postId in postIdsForUser) { ImagesUtil.DeleteFile($"{FILE_PATH}/Posts", $"{postId}.jpg"); } } Request responseRequest = new Request { ActionType = ActionType.USER_DELETE.ToString(), Argument = JsonSerializer.Serialize(response) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Creates a new user action and its corresponding notification, if any /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> PostUserActionAsync(ActualRequest actualRequest) { Request request = actualRequest.Request; ModelActionSockets modelActionSockets = JsonSerializer.Deserialize <ModelActionSockets>(request.Argument.ToString()); Console.WriteLine("Posting user action " + modelActionSockets.ActionType); int notificationId; if (modelActionSockets.ActionType.Equals("USER_FRIEND_REMOVE")) { notificationId = await userRepo.RemoveFriendshipAsync(modelActionSockets); } else if (modelActionSockets.ActionType.Equals("USER_RATE_PAGE")) { notificationId = await userRepo.PostPageRatingAsync(modelActionSockets); } else { notificationId = await userRepo.PostUserActionAsync(modelActionSockets); } Request responseRequest = new Request { ActionType = modelActionSockets.ActionType, Argument = JsonSerializer.Serialize(notificationId) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
public void should_be_able_to_valid_request() { var builder = new MockedHttpServerBuilder(); const string result = " a \"c\" b "; var actualRequest = ActualRequest.ToRequest(); builder.WhenPost(string.Format("/test")) .WithRequest(r => actualRequest = r) .RespondContent(HttpStatusCode.OK, new StringContent(result)); using (builder.Build("http://localhost:1122")) { using (var httpClient = new HttpClient()) { var requestBody = new { Field = "a", Field2 = "b" }; var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:1122/test") { Content = new StringContent(JsonConvert.SerializeObject(requestBody)) }; request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = httpClient.SendAsync(request).Result; Assert.Equal(result, response.Content.ReadAsStringAsync().Result); // raw string Assert.Equal("a", actualRequest.RequestBody.Field); Assert.Equal("b", actualRequest.RequestBody.Field2); } } }
public async Task <ActualRequest> HandleClientRequest(ActualRequest actualRequest) { switch (actualRequest.Request.ActionType) { case "USER_REGISTER": return(await AddUserAsync(actualRequest)); case "USER_LOGIN": return(await LoginAsync(actualRequest)); case "USER_GET_BY_ID": return(await GetUserByIdAsync(actualRequest)); case "USER_EDIT": return(await UpdateUserAsync(actualRequest)); case "USER_DELETE": return(await DeleteUserAsync(actualRequest)); case "USER_FRIEND_REQUEST_SEND": case "USER_FRIEND_REQUEST_RESPONSE": case "USER_FRIEND_REMOVE": case "USER_SHARE_TRAININGS": case "USER_SHARE_DIETS": case "USER_FOLLOW_PAGE": case "USER_RATE_PAGE": case "USER_REPORT": return(await PostUserActionAsync(actualRequest)); case "USER_DELETE_NOTIFICATION": return(await DeleteNotificationAsync(actualRequest)); case "USER_FILTER": return(GetUsersByFilter(actualRequest)); case "USER_GET_GYMS": return(GetGymsByCity(actualRequest)); case "USER_GET_NOTIFICATIONS": return(GetNotificationsForUser(actualRequest)); case "USER_GET_FRIENDS": return(GetFriendsForUser(actualRequest)); case "USER_INCREMENT_SCORE": return(await IncrementUserScoreAsync(actualRequest)); case "USER_GET_ONLINE_FRIENDS": return(GetOnlineFriendsForUser(actualRequest)); case "USER_LOGOUTORIN": return(LogoutUser(actualRequest)); case "USER_GET_SV_BY_ID": return(GetUserShortVersionById(actualRequest)); default: return(null); } }
/// <summary> /// Returns a list with all the gyms in a given city /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetGymsByCity(ActualRequest actualRequest) { string city = actualRequest.Request.Argument.ToString(); List <UserShortVersion> users = userRepo.GetAllGymsInCity(city); Request response = new Request { ActionType = ActionType.USER_GET_GYMS.ToString(), Argument = JsonSerializer.Serialize(users) }; List <byte[]> userAvatars = new List <byte[]>(); if (users != null && users.Count > 0) { foreach (var user in users) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{user.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + user.UserId); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <summary> /// Retrieves a list of the target user's friends, or common friends with the sender /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetFriendsForUser(ActualRequest actualRequest) { List <int> integers = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <UserShortVersionWithStatus> friends = userRepo.GetFriendsForUser(integers[0], integers[1], integers[2]); Request response = new Request { ActionType = ActionType.USER_GET_FRIENDS.ToString(), Argument = JsonSerializer.Serialize(friends) }; List <byte[]> userAvatars = new List <byte[]>(); if (friends != null && friends.Count > 0) { foreach (var friend in friends) { try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{friend.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + friend.UserId); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <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> /// Retrieves the last messages for a user with his friends/following gyms for unit testing /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetLastMessagesForUser(ActualRequest actualRequest) { List <int> integers = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <UserShortVersionWithMessage> users = chatRepo.GetLastMessagesForUser(integers[0], integers[1]); Request response = new Request { ActionType = ActionType.MESSAGE_GET_LATEST.ToString(), Argument = JsonSerializer.Serialize(users) }; List <byte[]> userAvatars = new List <byte[]>(); if (users != null && users.Count > 0) { foreach (var user in users) { if (user.Message.HasImage) { user.Message.Content = "<Image>"; } try { var readAvatarFile = File.ReadAllBytes($"{FILE_PATH}/Users/{user.UserId}/avatar.jpg"); userAvatars.Add(ImagesUtil.ResizeImage(readAvatarFile, 20, 20)); } catch (Exception e) { Console.WriteLine("No avatar found for user " + user.UserId); } } } return(new ActualRequest { Request = response, Images = userAvatars }); }
/// <summary> /// Retrieves the users whose username starts with the given filter string, if any /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetUsersByFilter(ActualRequest actualRequest) { string filterString = actualRequest.Request.Argument.ToString(); List <SearchBarUser> filteredUsers = userRepo.GetUsersByFilter(filterString); Request responseRequest = new Request { ActionType = ActionType.USER_FILTER.ToString(), Argument = JsonSerializer.Serialize(filteredUsers) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Gets a list with all the notifications belonging to a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetNotificationsForUser(ActualRequest actualRequest) { int userId = Convert.ToInt32(actualRequest.Request.Argument.ToString()); List <NotificationSockets> notifications = userRepo.GetNotificationsForUser(userId); Request response = new Request { ActionType = ActionType.USER_GET_NOTIFICATIONS.ToString(), Argument = JsonSerializer.Serialize(notifications) }; return(new ActualRequest { Request = response, Images = null }); }
/// <summary> /// Increments a given user's score by a given amount /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> IncrementUserScoreAsync(ActualRequest actualRequest) { List <int> integers = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); bool response = await userRepo.IncrementUserScoreAsync(integers[0], integers[1]); Request responseRequest = new Request { ActionType = ActionType.USER_INCREMENT_SCORE.ToString(), Argument = JsonSerializer.Serialize(response) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Returns the total number of entries of a given model /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private async Task <ActualRequest> GetNumber(ActualRequest actualRequest) { string modelType = actualRequest.Request.Argument.ToString(); int totalNumberOfModel = await adminRepo.GetTotalNumberAsync(modelType); Request request = new Request { ActionType = ActionType.ADMIN_GET_NUMBER.ToString(), Argument = JsonSerializer.Serialize(totalNumberOfModel) }; return(new ActualRequest { Request = request, Images = null }); }
/// <summary> /// Logs in our out a user and returns a list with his online friends ids, so that they can be notified /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest LogoutUser(ActualRequest actualRequest) { Request request = actualRequest.Request; List <int> userInts = JsonSerializer.Deserialize <List <int> >(request.Argument.ToString()); List <int> onlineFriendIds = userRepo.LogoutOrInUser(userInts[0], userInts[1] == 1); Request response = new Request { ActionType = ActionType.USER_LOGOUTORIN.ToString(), Argument = JsonSerializer.Serialize(onlineFriendIds) }; return(new ActualRequest { Request = response, Images = null }); }
/// <summary> /// Retrieves a list of trainings in the current for a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetTrainingsTodayForUser(ActualRequest actualRequest) { Request request = actualRequest.Request; int userId = Convert.ToInt32(request.Argument.ToString()); List <TrainingSVWithTime> publicTrainings = trainingRepo.GetTrainingsTodayForUser(userId); Request responseRequest = new Request { ActionType = ActionType.TRAINING_GET_TODAY.ToString(), Argument = JsonSerializer.Serialize(publicTrainings) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Retrieves a list of private trainings belonging to a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetPrivateTrainingsForUser(ActualRequest actualRequest) { Request request = actualRequest.Request; List <int> ints = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <TrainingShortVersion> privateTrainings = trainingRepo.GetPrivateTrainingsForUser(ints[0], ints[1]); Request responseRequest = new Request { ActionType = ActionType.TRAINING_GET_PRIVATE.ToString(), Argument = JsonSerializer.Serialize(privateTrainings) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Retrieves a list with public trainings /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetPublicTrainings(ActualRequest actualRequest) { Request request = actualRequest.Request; int offset = Convert.ToInt32(request.Argument.ToString()); List <TrainingSVWithOwner> publicTrainings = trainingRepo.GetPublicTrainings(offset); Request responseRequest = new Request { ActionType = ActionType.TRAINING_GET_PUBLIC.ToString(), Argument = JsonSerializer.Serialize(publicTrainings) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
/// <summary> /// Retrieves a list of trainings in a given week for a given user /// </summary> /// <param name="actualRequest">the client request to be handled</param> /// <returns>the response to the given request</returns> private ActualRequest GetTrainingsInWeekForUser(ActualRequest actualRequest) { Request request = actualRequest.Request; List <int> ints = JsonSerializer.Deserialize <List <int> >(actualRequest.Request.Argument.ToString()); List <TrainingSVWithTime> trainingsInWeekForUser = trainingRepo.GetTrainingsInWeekForUser(ints[0], ints[1]); Request responseRequest = new Request { ActionType = ActionType.TRAINING_GET_WEEK.ToString(), Argument = JsonSerializer.Serialize(trainingsInWeekForUser) }; return(new ActualRequest { Request = responseRequest, Images = null }); }
public async Task <ActualRequest> HandleClientRequest(ActualRequest actualRequest) { switch (actualRequest.Request.ActionType) { case "ADMIN_GET_USERS": return(await GetUsers(actualRequest)); case "ADMIN_GET_POSTS": return(await GetPosts(actualRequest)); case "ADMIN_GET_NUMBER": return(await GetNumber(actualRequest)); default: return(null); } }