Пример #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var pooledClientManager = new PooledRedisClientManager("localhost");
        var client = pooledClientManager.GetClient();
        var blogRedis = new BlogRedis(client);
        var memberRedis = new MemberRedis(client);
        var nhomRedis = new NhomRedis(client);
        var xeRedis = new XeRedis(client);

        var Id = Request["ID"];
        var liked = Request["liked"];
        var loai = Request["Loai"];
        var username = Security.Username;
        switch (subAct)
        {
            case "like":
                #region add
               if(Security.IsAuthenticated())
               {
                   var likedVal = Convert.ToBoolean(liked);
                   if(likedVal)
                   {
                       using(var con = DAL.con())
                       {
                           var item = ThichDal.SelectByPidUsernameLoai(con, Id, username, loai);
                           switch (item.Loai)
                           {
                               case 1:
                                   ObjMemberDal.DeleteByPRowIdUsername(Id, username);
                                   var xe = xeRedis.GetByRowId(item.P_ID);
                                   if (xe.Fans.Contains(username))
                                   {
                                       xe.Fans.Remove(username);
                                       xe.TotalLike -= 1;
                                   }
                                   xeRedis.Save(xe);
                                   XeDal.Update(xe);
                                   CacheHelper.Remove(string.Format(XeDal.CacheItemKey, xe.Id));
                                   break;
                               case 2:
                                   var mem = memberRedis.GetByRowId(item.P_ID);
                                   if (mem.Fans.Contains(username))
                                   {
                                       mem.Fans.Remove(username);
                                       mem.TotalLiked -= 1;
                                   }
                                   memberRedis.Save(mem);
                                   MemberDal.Update(mem);
                                   break;
                               case 3:
                                   var blog = blogRedis.GetByRowId(item.P_ID);
                                   if (blog.NguoiThich.Contains(username))
                                   {
                                       blog.NguoiThich.Remove(username);
                                       blog.TotalLike -= 1;
                                   }
                                   blogRedis.Save(blog);
                                   BlogDal.Update(blog);
                                   break;
                           }
                           ThichDal.DeleteById(item.ID);
                       }

                   }
                   else
                   {
                      var item= ThichDal.Insert(new Thich()
                                           {
                                               ID = Guid.NewGuid()
                                               , NgayTao = DateTime.Now
                                               , P_ID = new Guid(Id)
                                               , Username = Security.Username
                                               , Loai = Convert.ToInt32(loai)
                                           });
                       switch (item.Loai)
                       {
                           case 1:
                               var xe = xeRedis.GetByRowId(item.P_ID);
                               if (xe.Fans.Contains(username))
                               {
                                   xe.Fans.Insert(0, username);
                                   xe.TotalLike += 1;
                               }
                               xeRedis.Save(xe);
                               XeDal.Update(xe);
                               CacheHelper.Remove(string.Format(XeDal.CacheItemKey, xe.Id));
                               ObjMemberDal.Insert(new ObjMember()
                                                       {
                                                           PRowId = xe.RowId
                                                           ,
                                                           Username = username
                                                           , Owner = false
                                                           , NgayTao = DateTime.Now
                                                           , RowId = Guid.NewGuid()
                                                       });
                               break;
                           case 2:
                               var mem = memberRedis.GetByRowId(item.P_ID);
                               if (mem.Fans.Contains(username))
                               {
                                   mem.Fans.Insert(0, username);
                                   mem.TotalLiked += 1;
                               }
                               memberRedis.Save(mem);
                               MemberDal.Update(mem);
                               break;
                           case 3:
                               var blog = blogRedis.GetByRowId(item.P_ID);

                               if (blog.NguoiThich.Contains(username))
                               {
                                   blog.NguoiThich.Insert(0, username);
                                   blog.TotalLike += 1;
                               }
                               blogRedis.Save(blog);
                               BlogDal.Update(blog);
                               break;
                       }
                   }
               }
                break;
                #endregion
            default:
                break;

        }
    }