Example #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="core"></param>
        /// <param name="itemType"></param>
        /// <param name="itemId"></param>
        /// <remarks>ItemRated should implement a transaction.</remarks>
        public static void ShareItem(Core core, ItemKey itemKey)
        {
            if (core == null)
            {
                throw new NullCoreException();
            }

            if (itemKey.Id < 1)
            {
                throw new InvalidItemException();
            }

            ItemInfo ii = null;

            try
            {
                ii = new ItemInfo(core, itemKey);
            }
            catch (InvalidIteminfoException)
            {
                ii = ItemInfo.Create(core, itemKey);
            }

            ii.IncrementSharedTimes();

            InsertQuery iQuery = new InsertQuery(typeof(Share));
            iQuery.AddField("share_item_id", itemKey.Id);
            iQuery.AddField("share_item_type_id", itemKey.TypeId);
            iQuery.AddField("user_id", core.LoggedInMemberId);
            iQuery.AddField("share_time_ut", UnixTime.UnixTimeStamp());
            iQuery.AddField("share_ip", core.Session.IPAddress.ToString());

            // commit the transaction
            core.Db.Query(iQuery);

            return;
        }