public async Task <ActionResult <UserPageDTO> > PutAPage(UserPageDTO pageDTO, int pageId) { // Test to see if claim == page.UserId or policy is admin // if so allow the update // if not don't allow it var page = await _userPage.GetASpecificPage(pageId); var usersRoles = UserClaimsGetters.GetUserRoles(User, _userManager); if (UserClaimsGetters.GetUserId(User) == page.UserId || usersRoles.Contains("Admin") || usersRoles.Contains("Owner")) { try { var updatedPage = await _userPage.Update(pageDTO, pageId); return(updatedPage); } catch (Exception e) { throw new Exception($"Update action exception message: {e.Message}"); } } throw new Exception("You are not authorized to Update that Page."); }
public async Task <ActionResult <UserPageDTO> > PostUserPage(UserPageDTO newPage) { var page = await _userPage.Create(newPage); // Might want to add the UserEmail or Id if (page != null) { return(Ok()); } return(BadRequest()); // Maybe reload the page }
private UserPageDTO UserPageTestDTO4() { var userId = "5678"; var page = new UserPageDTO() { Id = 5, UserId = userId, PageName = "Page Name 5", PageContent = "Page Content 5" }; return(page); }
private UserPageDTO UserPageTestDTO3() { var userId = "5678"; var page = new UserPageDTO() { Id = 4, UserId = userId, PageName = "Page Name 3", PageContent = "Page Content 3" }; return(page); }
private UserPageDTO UserPageTestDTO2() { var userId = "1234"; var page = new UserPageDTO() { Id = 3, UserId = userId, PageName = "Page Name 2", PageContent = "Page Content 2" }; return(page); }
// ================== TODO: Future Tests ============== // Test adding likes // Test retrieving like info // Test Deleting a like // Test Adding a post to a page // Test Deleting a post from a page // ======================================================= private UserPageDTO UserPageTestDTO1() { var userId = "1234"; var page = new UserPageDTO() { Id = 2, UserId = userId, PageName = "Page Name 1", PageContent = "Page Content 1" }; return(page); }
// Read A page /// <summary> /// Gets the UserPageDTO of a specific page from the database. /// </summary> /// <param name="pageId">The page's database id</param> /// <returns>A single UserPageDTO</returns> public async Task <UserPageDTO> GetASpecificPage(int pageId) { var page = await _context.UserPages.Where(x => x.ID == pageId).FirstOrDefaultAsync(); var pageDTO = new UserPageDTO() { Id = page.ID, UserId = page.UserId, PageName = page.PageName, PageContent = page.PageContent, Created = page.Created, Modified = page.Modified, PageLikes = await GetPageLikes(pageId, page.UserId) }; return(pageDTO); }
// Create /// <summary> /// Creates a new UserPage entity. /// </summary> /// <param name="page">The UserPageDTO to create the new entity (don't include a value for the Id key)</param> /// <returns>The provided UserPageDTO</returns> public async Task <UserPageDTO> Create(UserPageDTO page) { var timeNow = DateTime.UtcNow; UserPage newPage = new UserPage() { UserId = page.UserId, PageName = page.PageName, PageContent = page.PageContent, Created = timeNow, Modified = timeNow }; _context.Entry(newPage).State = EntityState.Added; await _context.SaveChangesAsync(); return(page); }
public async void CanUpdateAPage() { var service = BuildService(); var updatedPage = new UserPageDTO() { Id = 1, UserId = "1234", PageName = "UpdatedName", PageContent = "UpdatedContent" }; var returnFromMethod = await service.Update(updatedPage, 1); Assert.NotNull(returnFromMethod); Assert.Equal(updatedPage.PageName, returnFromMethod.PageName); Assert.Equal(updatedPage.PageContent, returnFromMethod.PageContent); }
// Update /// <summary> /// Update's a UserPage in the database. /// </summary> /// <param name="page">The UserPageDTO to make the update</param> /// <param name="pageId">The Page's database Id</param> /// <returns>The UserPageDTO that was provided</returns> public async Task <UserPageDTO> Update(UserPageDTO userPage, int pageId) { var databasePage = await _context.UserPages.Where(x => x.ID == pageId).FirstOrDefaultAsync(); if (databasePage != null) { databasePage.ID = databasePage.ID; databasePage.UserId = userPage.UserId == null ? databasePage.UserId : userPage.UserId; databasePage.PageName = userPage.PageName == null ? databasePage.PageName : userPage.PageName; databasePage.PageContent = userPage.PageContent == null ? databasePage.PageContent : userPage.PageContent; databasePage.Modified = DateTime.UtcNow; _context.Entry(databasePage).State = EntityState.Modified; await _context.SaveChangesAsync(); return(await GetASpecificPage(pageId)); } throw new Exception("That page does not exist."); }
public UserPageDTO UnansweredQuestionsDto(string userId) { var dto = new UserPageDTO(); var questions = _questionRepository.UnansweredQuestionsModels(userId); dto.Questions = _mapper.Map <List <QuestionDto> >(questions); //dto.Questions = questions. // Select(x => new QuestionDto() // { // QuestionUserId = x.QuestionUserId, // Text = x.Text, // AnswerUserId = x.AnswerUserId, // Id = x.Id, // IsAnonimized = x.IsAnonimized, // QuestionUserName = x.IsAnonimized ? null : x.QuestionUser.Email, // }).ToList(); return(dto); }
public UserPageDTO PageDTO(string userId, string questionName, int pageNumber = 1, int pageSize = 3) { var dto = new UserPageDTO(); dto.QuestionsCount = _questionRepository.QuestionCount(userId); dto.PageSize = pageSize; dto.User.Id = userId; if (userId != null) { dto.User.Name = _questionRepository.UserName(userId); } dto.Followers = _questionRepository.Followers(userId); dto.PageNumber = pageNumber; var questionmodel = _questionRepository.PageModel(userId, pageNumber, pageSize); dto.Questions = _mapper.Map <List <QuestionDto> >(questionmodel); //dto.Questions =questionmodel. // Select(question => new QuestionDto() // { // QuestionUserId=question.QuestionUserId, // Answer = question.Answer, // Text = question.Text, // AnswerUserName = question.AnswerUser?.UserName, // Id = question.Id, // IsAnonimized = question.IsAnonimized, // QuestionUserName = question.IsAnonimized ? null: question.QuestionUser.Email, // Comments = question.Comments.Select(comment => new CommentDto() // { // QuestionId = question.Id, // Text = comment.Text, // IsAnonimized = comment.IsAnonimized, // UserId = comment.IsAnonimized ? null : comment.UserId, // UserName = comment.IsAnonimized ? null : comment.UserName, // }).ToList() // }).ToList(); return(dto); }