Ejemplo n.º 1
0
    private void OnRetrievedShare(IntPtr shares, int size)
    {
        long longPtr = shares.ToInt64();

        var shs = new List <MegacoolShare>(size);

        for (int i = 0; i < size; i++)
        {
            IntPtr   structPtr = new IntPtr(longPtr);
            MCLShare shareData = (MCLShare)Marshal.PtrToStructure(structPtr, typeof(MCLShare));
            longPtr += Marshal.SizeOf(typeof(MCLShare));
            MegacoolShare share = BuildShare(ref shareData);
            shs.Add(share);
        }

        Action <List <MegacoolShare> > handler = OnSharesRetrieved;

        if (handler != null)
        {
            handler(shs);
        }
    }
Ejemplo n.º 2
0
    private static MegacoolShare BuildShare(ref MCLShare share)
    {
        if (share.url == null)
        {
            return(null);
        }
        MegacoolReferralCode referralCode = BuildReferralCode(ref share.referral_code);
        DateTime             createdAt    = epoch.AddSeconds(share.created_at).ToLocalTime();
        DateTime             updatedAt    = epoch.AddSeconds(share.updated_at).ToLocalTime();
        string url = string.Copy(share.url);
        Uri    uri = new Uri(url, UriKind.Relative);

        Dictionary <string, object> data;

        if (share.data_json != null)
        {
            data = DeserializeDataObject(share.data_json);
        }
        else
        {
            data = new Dictionary <string, object>();
        }
        return(new MegacoolShare(referralCode, share.state, createdAt, updatedAt, data, uri));
    }
Ejemplo n.º 3
0
    private static bool DeleteSharesFilter(MCLShare shareData)
    {
        MegacoolShare share = BuildShare(ref shareData);

        return(deleteSharesFilter(share));
    }