Пример #1
0
 /// <summary>
 /// 检查FeedBack信息是否存在
 /// </summary>
 /// <param name="predicate">检查谓语表达式</param>
 /// <param name="id">更新的FeedBack编号</param>
 /// <returns>FeedBack信息是否存在</returns>
 public async Task <bool> CheckFeedBackExists(Expression <Func <FeedBack, bool> > predicate, int id = 0)
 {
     return(await Task.Run(() =>
     {
         return FeedBackRepo.CheckExists(predicate, id);
     }));
 }
Пример #2
0
        /// <summary>
        /// 删除FeedBack信息
        /// </summary>
        /// <param name="ids">要删除的Id编号</param>
        /// <returns>业务操作结果</returns>
        public async Task <OperationResult> DeleteFeedBacks(params int[] ids)
        {
            ids.CheckNotNull("ids");
            await FeedBackRepo.RecycleAsync(p => ids.Contains(p.Id));

            return(new OperationResult(OperationResultType.Success, "删除成功"));
        }
Пример #3
0
        public JsonResult Vote(Vote vote)
        {
            using (var context = new ApplicationDbContext())
            {
                FeedBackRepo feedBack = new FeedBackRepo(context);
                var          userId   = User.Identity.GetUserId();
                if (context.Votes.Any(x => x.CommentId == vote.CommentId && x.CreatedBy == userId))
                {
                    var type = context.Votes.FirstOrDefault(x => x.CommentId == vote.CommentId && x.CreatedBy == userId);
                    if (type.Type != vote.Type)
                    {
                        type.Type       = vote.Type;
                        vote.CreateDate = DateTime.UtcNow;

                        context.SaveChanges();

                        var voteCount = feedBack.CountVote(vote.CommentId);
                        feedBack.UpdateCommentCount(vote.CommentId, voteCount[0], voteCount[1]);

                        return(Json(new { like = voteCount[0], dislike = voteCount[1] }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        var voteCount = feedBack.CountVote(vote.CommentId);
                        feedBack.UpdateCommentCount(vote.CommentId, voteCount[0], voteCount[1]);
                        return(Json(new { like = voteCount[0], dislike = voteCount[1] }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    if (ModelState.IsValid)
                    {
                        vote.CreatedBy  = User.Identity.GetUserId();
                        vote.CreateDate = DateTime.UtcNow;


                        context.Votes.Add(vote);
                        context.SaveChanges();
                        var voteCount = feedBack.CountVote(vote.CommentId);

                        feedBack.UpdateCommentCount(vote.CommentId, voteCount[0], voteCount[1]);

                        return(Json(new { like = voteCount[0], dislike = voteCount[1] }, JsonRequestBehavior.AllowGet));
                    }
                }
            }


            return(Json(false));
        }
Пример #4
0
        // GET: FeedBack
        public ActionResult Index()
        {
            FeedBackVM fb = new FeedBackVM();

            using (var context = new ApplicationDbContext())
            {
                FeedBackRepo feedBack = new FeedBackRepo(context);


                feedBack.GetAllPosts(1, fb);
            }

            return(View(fb));
        }
Пример #5
0
        public ActionResult Index(FeedBackVM fb)
        {
            using (var context = new ApplicationDbContext())
            {
                FeedBackRepo feedBack = new FeedBackRepo(context);
                //Reset page count
                if (fb.HiddenItemPerPage != fb.ItemPerPage)
                {
                    fb.page = 1;
                }
                else
                {
                    fb.page = fb.page;
                }
                fb.HiddenItemPerPage = fb.ItemPerPage;

                feedBack.GetAllPosts((int)fb.page, fb);
            }

            return(View(fb));
        }
Пример #6
0
        /// <summary>
        /// 保存FeedBack信息(新增/更新)
        /// </summary>
        /// <param name="updateForeignKey">更新时是否更新外键信息</param>
        /// <param name="dtos">要保存的FeedBackDto信息</param>
        /// <returns>业务操作集合</returns>
        public async Task <OperationResult> SaveFeedBacks(bool updateForeignKey = false, params FeedBackDto[] dtos)
        {
            try
            {
                dtos.CheckNotNull("dtos");
                var addDtos    = dtos.Where(p => p.Id == 0).ToArray();
                var updateDtos = dtos.Where(p => p.Id != 0).ToArray();

                FeedBackRepo.UnitOfWork.TransactionEnabled = true;

                Action <FeedBackDto> checkAction = null;
                Func <FeedBackDto, FeedBack, FeedBack> updateFunc = (dto, entity) =>
                {
                    if (dto.Id == 0 || updateForeignKey)
                    {
                        entity.UserInfo = UserInfoRepo.GetByKey(dto.UserInfoId);
                    }
                    return(entity);
                };
                if (addDtos.Length > 0)
                {
                    FeedBackRepo.Insert(addDtos, checkAction, updateFunc);
                }
                if (updateDtos.Length > 0)
                {
                    FeedBackRepo.Update(updateDtos, checkAction, updateFunc);
                }
                await FeedBackRepo.UnitOfWork.SaveChangesAsync();

                return(new OperationResult(OperationResultType.Success, "保存成功"));
            }
            catch (Exception e)
            {
                return(new OperationResult(OperationResultType.Error, e.Message));
            }
        }
Пример #7
0
 /// <summary>
 /// 删除FeedBack信息
 /// </summary>
 /// <param name="ids">要删除的Id编号</param>
 /// <returns>业务操作结果</returns>
 public async Task <OperationResult> DeleteFeedBacks(params int[] ids)
 {
     ids.CheckNotNull("ids");
     return(await Task.Run(() => FeedBackRepo.Delete(ids)));
 }