Example #1
0
        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"));
        }
Example #2
0
        /// <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);
        }