public async Task <IActionResult> Store([FromBody] PostEditForm model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var post = model.post.MapToEntity(CurrentUserId); foreach (var item in model.post.medias) { post.Attachments.Add(item.MapToEntity(CurrentUserId)); } var caregory = await postService.GetCategoryByIdAsync(model.post.categoryId); post.Categories.Add(caregory); post = await postService.CreateAsync(post); return(new ObjectResult(post)); }
public async Task <IActionResult> Edit(int id) { var post = postService.GetById(id); if (post == null) { return(NotFound()); } bool canReviewPost = CanReviewPost(); bool allMedias = true; var model = new PostEditForm { post = viewService.MapPostViewModel(post, allMedias), canReview = canReviewPost.ToInt() }; var categoryIds = await postService.GetCategoryIdsAsync(id); model.post.categoryId = categoryIds.FirstOrDefault(); bool edit = true; var categoryOptions = await GetCategoryOptions(edit); model.categoryOptions = categoryOptions; return(new ObjectResult(model)); }
public async Task <IActionResult> Update(int id, [FromBody] PostEditForm model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var post = postService.GetById(id); if (post == null) { return(NotFound()); } post = model.post.MapToEntity(CurrentUserId, post); if (!CanReviewPost()) { post.Reviewed = false; } if (post.Attachments.IsNullOrEmpty()) { post.Attachments = new List <UploadFile>(); } foreach (var item in model.post.medias) { var attachment = post.Attachments.Where(a => a.Id == item.id).FirstOrDefault(); if (attachment == null) { post.Attachments.Add(item.MapToEntity(CurrentUserId)); } else { attachment = item.MapToEntity(CurrentUserId, attachment); } } var categoryIds = new List <int> { model.post.categoryId }; await postService.UpdateAsync(post, categoryIds); return(new ObjectResult(post)); }
public async Task <IActionResult> Details(int id) { var post = postService.GetById(id); if (post == null) { return(NotFound()); } await postService.AddClick(id); bool allMedias = true; var postViewModel = viewService.MapPostViewModel(post, allMedias); postViewModel.clickCount = await postService.GetPostClickCount(post.Id); var model = new PostEditForm() { post = postViewModel }; var categoryIds = await postService.GetCategoryIdsAsync(id); model.post.categoryId = categoryIds.FirstOrDefault(); if (Request.IsAjaxRequest()) { return(new ObjectResult(model)); } ViewData["id"] = id; ViewData["model"] = this.ToJsonString(model); bool excludeDefault = true; var categories = await postService.GetCategoriesAsync(excludeDefault); var options = categories.Select(c => new { value = c.Id, text = c.Name }); ViewData["category"] = model.post.categoryId; ViewData["categories"] = this.ToJsonString(options); return(View("Index")); }
public async Task <IActionResult> Create() { bool canReviewPost = CanReviewPost(); var post = new PostViewModel() { reviewed = canReviewPost }; bool edit = true; var categoryOptions = await GetCategoryOptions(edit); var model = new PostEditForm { post = post, categoryOptions = categoryOptions, canReview = canReviewPost.ToInt() }; return(new ObjectResult(model)); }
public void EditPost_NoModId_ThrowsException() { var modId = 0; var readerModPost = Mocks.DynamicMock<IDnaDataReader>(); readerModPost.Stub(x => x.Read()).Return(true).Repeat.Once(); readerModPost.Stub(x => x.GetInt32NullAsZero("modid")).Return(modId); var readerEdit = Mocks.DynamicMock<IDnaDataReader>(); readerEdit.Stub(x => x.Read()).Return(true).Repeat.Once(); var reader = Mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); reader.Stub(x => x.DoesFieldExist("modId")).Return(true); reader.Stub(x => x.GetInt32NullAsZero("modId")).Return(modId); var readerCreator = Mocks.DynamicMock<IDnaDataReaderCreator>(); readerCreator.Stub(x => x.CreateDnaDataReader("registerpostingcomplaint")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("moderatepost")).Return(readerModPost); readerCreator.Stub(x => x.CreateDnaDataReader("updatepostdetails")).Return(readerEdit); var user = Mocks.DynamicMock<IUser>(); user.Stub(x => x.IsSuperUser).Return(true); Mocks.ReplayAll(); var editForm = new PostEditForm(readerCreator) { Hidden = 0 }; try { editForm.EditPost(user, "", "", ""); Assert.Fail("Should have thrown exception"); } catch (ApiException e) { Assert.AreEqual(ErrorType.Unknown, e.type); } readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("registerpostingcomplaint")); readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("moderatepost")); readerCreator.AssertWasNotCalled(x => x.CreateDnaDataReader("updatepostdetails")); }
public void EditPost_ValidDatabase_Returns() { var modId = 1; var readerModPost = Mocks.DynamicMock<IDnaDataReader>(); readerModPost.Stub(x => x.Read()).Return(true).Repeat.Once(); readerModPost.Stub(x => x.GetInt32NullAsZero("modid")).Return(modId); var readerEdit = Mocks.DynamicMock<IDnaDataReader>(); readerEdit.Stub(x => x.Read()).Return(true).Repeat.Once(); var reader = Mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); reader.Stub(x => x.DoesFieldExist("modId")).Return(true); reader.Stub(x => x.GetInt32NullAsZero("modId")).Return(modId); var readerCreator = Mocks.DynamicMock<IDnaDataReaderCreator>(); readerCreator.Stub(x => x.CreateDnaDataReader("registerpostingcomplaint")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("moderatepost")).Return(readerModPost); readerCreator.Stub(x => x.CreateDnaDataReader("updatepostdetails")).Return(readerEdit); var user = Mocks.DynamicMock<IUser>(); user.Stub(x => x.IsSuperUser).Return(true); Mocks.ReplayAll(); var editForm = new PostEditForm(readerCreator) { Hidden = 0 }; editForm.EditPost(user, "", "", ""); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("registerpostingcomplaint")); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("moderatepost")); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("updatepostdetails")); }
public void UnHidePost_ValidDatabase_ReturnsUnhidden() { var modId = 1; var readerModPost = Mocks.DynamicMock<IDnaDataReader>(); readerModPost.Stub(x => x.Read()).Return(true).Repeat.Once(); readerModPost.Stub(x => x.GetInt32NullAsZero("modid")).Return(modId); var reader = Mocks.DynamicMock<IDnaDataReader>(); reader.Stub(x => x.Read()).Return(true).Repeat.Once(); reader.Stub(x => x.DoesFieldExist("modId")).Return(true); reader.Stub(x => x.GetInt32NullAsZero("modId")).Return(modId); var readerEvents = Mocks.DynamicMock<IDnaDataReader>(); readerEvents.Stub(x => x.Read()).Return(true).Repeat.Once(); var readerCreator = Mocks.DynamicMock<IDnaDataReaderCreator>(); readerCreator.Stub(x => x.CreateDnaDataReader("registerpostingcomplaint")).Return(reader); readerCreator.Stub(x => x.CreateDnaDataReader("moderatepost")).Return(readerModPost); var user = Mocks.DynamicMock<IUser>(); user.Stub(x => x.IsSuperUser).Return(true); user.Stub(x => x.UserName).Return(""); Mocks.ReplayAll(); var editForm = new PostEditForm(readerCreator) { Hidden = 1 }; editForm.Author = new UserElement() { user = new User() { UserId = 0, UserName = string.Empty } }; editForm.UnHidePost(user, ""); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("registerpostingcomplaint")); readerCreator.AssertWasCalled(x => x.CreateDnaDataReader("moderatepost")); Assert.AreEqual(0, editForm.Hidden); }