private void ProcessShare(response feed, VkGroup vkGroup)
        {
            if (feed.users[0].uid == null || feed.users[0].uid.Length == 0)
            {
                return;
            }

            foreach (var memberId in feed.users[0].uid)
            {
                var share = this.memberLikeSharesRepository.GetShare(vkGroup.Id, memberId.Value, int.Parse(feed.ParentObjectId), (LikeShareType)feed.LikeShareType);

                if (share != null)
                {
                    this.log.DebugFormat("MemberShare for MemberId={0}, ItemId={1}, ItemType={2} is already in database", memberId.Value, feed.ParentObjectId, feed.LikeShareType);
                    continue;
                }

                share = new MemberShare
                {
                    ItemId    = int.Parse(feed.ParentObjectId),
                    VkGroupId = vkGroup.Id,
                    ItemType  = (LikeShareType)feed.LikeShareType,
                    VkId      = memberId.Value
                };

                this.memberLikeSharesRepository.SaveShare(share);
            }
        }
        public void SaveShare(MemberShare share)
        {
            if (!share.IsTransient())
            {
                return;
            }

            using (IDataGateway dataGateway = this.dataGatewayProvider.GetDataGateway())
            {
                share.Id = dataGateway.Connection.Query <int>(@"insert into membershare(vkmemberid, itemid, itemtype, vkgroupid) values (@VkMemberId, @ItemId, @ItemType, @VkGroupId) RETURNING id", share).First();
            }
        }
Esempio n. 3
0
 public void SaveShare(MemberShare share)
 {
     try
     {
         this.memberLikeSharesRepository.SaveShare(share);
         this.cachingStrategy.StoreItem(share, this.GetShareKey);
     }
     catch (DbException exc)
     {
         ExceptionHandler.HandleSaveException(exc, share, "MemberShare");
     }
 }