Пример #1
0
        /// <summary>
        /// PostLikeandDisLike 傳入留言Id和按讚數
        /// </summary>
        /// <param name="entity"></param>
        ///
        public void PostLikeAndDisLike(MessageLikeDto entity)
        {
            //var dbContext = new MyDBContext();
            // using (var transaction = dbContext.Database.BeginTransaction())
            // {
            try
            {
                var mRepo = _messages.GetFirst(x => x.MessageId == entity.MessageId);
                // var msgUser = _history.GetFirst(x => x.UserId == entity.UserId);
                var msg = _history.GetFirst(x => x.MessageId == entity.MessageId && x.UserId == entity.UserId);

                if (msg != null && mRepo != null)
                {
                    //將user按讚狀態變更
                    mRepo.LikeNumber    = mRepo.LikeNumber + entity.LikeNumber;
                    mRepo.DisLikeNumber = mRepo.DisLikeNumber + entity.DisLikeNumber;
                    _messages.Update(mRepo);
                    _messages.SaveContext();

                    //處理總按讚數
                    msg.IsDisLike = entity.IsDisLike;
                    msg.IsLike    = entity.IsLike;

                    _history.Update(msg);
                    _history.SaveContext();

                    // transaction.Commit();
                }
                else if (mRepo != null)
                {
                    LikeAndDislikeHistory history = new LikeAndDislikeHistory()
                    {
                        Id        = Guid.NewGuid(),
                        MessageId = entity.MessageId,
                        UserId    = entity.UserId,
                        IsDisLike = entity.IsDisLike,
                        IsLike    = entity.IsLike
                    };
                    _history.Create(history);
                    _history.SaveContext();

                    mRepo.LikeNumber    = mRepo.LikeNumber + entity.LikeNumber;
                    mRepo.DisLikeNumber = mRepo.DisLikeNumber + entity.DisLikeNumber;

                    _messages.Update(mRepo);
                    _messages.SaveContext();
                    // transaction.Commit();
                }
                else
                {
                    //HttpStatusCode()
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                //transaction.Rollback();
            }
            //}
        }
Пример #2
0
        private void Click(MessageLikeDto entity)
        {
            var mRepo = _messages.GetFirst(x => x.MessageId == entity.MessageId);

            var msg = _history.GetFirst(x => x.MessageId == entity.MessageId && x.UserId == entity.UserId);

            //當user已經按讚或按倒讚
            if (msg != null && mRepo != null)
            {
                //處理總按讚數
                mRepo.LikeNumber    = mRepo.LikeNumber + entity.LikeNumber;
                mRepo.DisLikeNumber = mRepo.DisLikeNumber + entity.DisLikeNumber;
                _messages.Update(mRepo);
                _messages.SaveContext();

                msg.IsDisLike = entity.IsDisLike;
                msg.IsLike    = entity.IsLike;

                _history.Update(msg);
                _history.SaveContext();

                //if (msg.IsLike == true && entity.IsDisLike == true)
                //{
                //    msg.IsLike = entity.IsLike;
                //    msg.IsDisLike = entity.IsDisLike;
                //    mRepo.LikeNumber = mRepo.LikeNumber--;
                //    mRepo.DisLikeNumber = mRepo.DisLikeNumber++;
                //}
                //else if (msg.IsDisLike == true && entity.IsLike == true)
                //{
                //    msg.IsLike = entity.IsLike;
                //    msg.IsDisLike = entity.IsDisLike;
                //    mRepo.LikeNumber = mRepo.LikeNumber++;
                //    mRepo.DisLikeNumber = mRepo.DisLikeNumber--;
                //}
                //else if ((entity.IsDisLike == false && entity.IsLike == false))
                //{
                //    if (msg.IsDisLike == true)
                //    {
                //        msg.IsLike = entity.IsLike;
                //        msg.IsDisLike = entity.IsDisLike;
                //        mRepo.DisLikeNumber--;
                //    }
                //    else
                //    {
                //        msg.IsLike = entity.IsLike;
                //        msg.IsDisLike = entity.IsDisLike;
                //        mRepo.LikeNumber--;
                //    }
                //}
                //// _history.Delete(msg);

                //_messages.Update(mRepo);
                //_messages.SaveContext();

                //_history.Update(msg);
                //_history.SaveContext();
            }
            else if (mRepo != null)
            {
                LikeAndDislikeHistory history = new LikeAndDislikeHistory()
                {
                    Id        = Guid.NewGuid(),
                    MessageId = entity.MessageId,
                    UserId    = entity.UserId,
                    IsDisLike = entity.IsDisLike,
                    IsLike    = entity.IsLike
                };
                _history.Create(history);
                _history.SaveContext();

                //if (entity.IsDisLike)
                //{
                //    mRepo.DisLikeNumber++;
                //}
                //else
                //{
                //    mRepo.LikeNumber++;
                //}
                mRepo.LikeNumber    = mRepo.LikeNumber + entity.LikeNumber;
                mRepo.DisLikeNumber = mRepo.DisLikeNumber + entity.DisLikeNumber;

                _messages.Update(mRepo);
                _messages.SaveContext();
            }
            else
            {
                //HttpStatusCode()
            }
        }