public async Task <ActionResult> Delete(int?id, FormCollection collection) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } try { await _commentsService.DeletePostComments(id.Value); await _tagsService.DeletePostTags(id.Value); await _postsService.DeleteAsync(id.Value); return(RedirectToAction("Index")); } catch (Exception exception) { ModelState.AddModelError("", exception.Message); } return(RedirectToAction("Index")); }
/// <inheritdoc cref="IUploadFromFileService"/> public async Task <ResultDto> UploadPostsFromExcel(Stream inputStream, string currentUserId) { var resultDto = new ResultDto(); var postsToCreate = new List <Post>(); var postsToEdit = new List <Post>(); var postsToDelete = new List <Post>(); var posts = await _postsService.GetAllAsync(); var workSheet = WorkSheetUsedRows(inputStream, "Posts"); if (!workSheet.Success) { resultDto.ExceptionMessage = workSheet.ExceptionMessage; return(resultDto); } foreach (var row in workSheet.Rows) { var item = new PostDto(row); var post = posts.FirstOrDefault(x => x.Title.ToLower().Equals(item.Title)); if (row.Cell(7).Value.ToString().TrimStart(' ').TrimEnd(' ').ToLower().Equals("edit") && post != null) { post.Description = item.Description; post.Content = item.Content; post.ImageUrl = item.ImageUrl; post.Status = item.Status; post.PostTags = item.PostTags; postsToEdit.Add(post); } else if (row.Cell(7).Value.ToString().TrimStart(' ').TrimEnd(' ').ToLower().Equals("delete") && post != null) { await _commentsService.DeletePostComments(post.Id); await _tagsService.DeletePostTags(post.Id); postsToDelete.Add(post); } else { var newPost = _mapper.Map <PostDto, Post>(item); newPost.AuthorId = currentUserId; postsToCreate.Add(newPost); } } if (postsToCreate.Count > 0) { await _postsService.InsertAsync(postsToCreate); } if (postsToEdit.Count > 0) { await _postsService.UpdateAsync(postsToEdit); } if (postsToDelete.Count > 0) { await _postsService.DeleteAsync(postsToDelete); } resultDto.Success = true; return(resultDto); }