public Task<SearchResult<MetadataItem>> FindMetadataAsync(
            string key = null, 
            string keyPrefix = null,
            BuddyGeoLocationRange locationRange = null,
            DateRange created = null,
            DateRange lastModified = null,
            BuddyPermissions visibility = BuddyPermissions.Default
            )
        {
            return Task.Run<SearchResult<MetadataItem>>(() =>
            {
                IDictionary<string, object> obj = new Dictionary<string, object>(DotNetDeltas.InvariantComparer(true)){
                        {"visibility", visibility},
                        {"created", created},
                        {"lastModified", lastModified},
                        {"locationRange", locationRange},
                        {"key", key},
                        {"keyPrefix", keyPrefix}
                    };

                var r = Client.CallServiceMethod<SearchResult<MetadataItem>>("GET",
                        GetMetadataPath(), obj
                        ).Result;

                if (r.IsSuccess)
                {
                    return r.Value;
                }
                else
                {
                    return new SearchResult<MetadataItem>(r.RequestID, r.Error);
                }
            });
        }
        public Task<SearchResult<MetadataItem>> FindMetadataAsync(
            string key = null,
            string value = null,
            string keyPrefix = null,
            BuddyGeoLocationRange locationRange = null,
            DateRange created = null,
            DateRange lastModified = null,
            BuddyPermissions? visibility = null, string ownerUserId = null, int pageSize = 100, string pagingToken = null)
        {
            var obj = new Dictionary<string, object>(DotNetDeltas.InvariantComparer(true)){
                    {"created", created},
                    {"lastModified", lastModified},
                    {"locationRange", locationRange},
                    {"ownerID", ownerUserId},
                    {"key", key},
                        {"value", value},
                    {"keyPrefix", keyPrefix}
                };

            if (visibility != null)
            {
                obj["visibility"] = visibility;
            }

            BuddyCollectionBase<BuddyBase>.InitializePaging(obj, pagingToken, pageSize);

            return Client.CallServiceMethod<SearchResult<MetadataItem>>("GET",
                GetMetadataPath(), obj
            ).WrapTask<BuddyResult<SearchResult<MetadataItem>>, SearchResult<MetadataItem>>((r1) => r1.Result.Value);
        }
        public Task<BuddyResult<bool>> DeleteMetadataAsync(string key, BuddyPermissions? visibility = null)
        {
            IDictionary<string, object> callParams = new Dictionary<string, object>();
            if (visibility != null)
            {
                callParams["visibility"] = visibility;
            }

            var t = Client.CallServiceMethod<bool>("DELETE", GetMetadataPath(key), callParams);

            return t;
        }
示例#4
0
        public async Task<BuddyResult<AlbumItem>> AddItemAsync(string itemId, string caption, BuddyGeoLocation location, string tag = null,
            BuddyPermissions readPermissions = BuddyPermissions.Default, BuddyPermissions writePermissions = BuddyPermissions.Default)
		{
			var c = new AlbumItem(this.GetObjectPath() + PlatformAccess.GetCustomAttribute<BuddyObjectPathAttribute>(typeof(AlbumItem)).Path, this.Client)
			{
				ItemId = itemId,
                Caption = caption,
				Location = location,
				Tag = tag,
                ReadPermissions = readPermissions,
                WritePermissions = writePermissions
			};

            var r = await c.SaveAsync();
					
            return r.Convert<AlbumItem>(b => c);
		}
示例#5
0
        public async Task<BuddyResult<Picture>> AddProfilePictureAsync(string caption, Stream pictureData, string contentType, BuddyGeoLocation location = null,
            BuddyPermissions readPermissions = BuddyPermissions.Default, BuddyPermissions writePermissions = BuddyPermissions.Default)
        {
           var result = await PictureCollection.AddAsync(this.Client, caption, pictureData, contentType, location,
               readPermissions, writePermissions);

           if (result.IsSuccess)
           {
               ProfilePicture = result.Value;
           }

           return result;
        }
 public Task<BuddyResult<MetadataItem>> GetMetadataItemAsync(string key, BuddyPermissions? visibility = null)
 {
     var callParams = new Dictionary<string, object>();
     if (visibility != null)
     {
         callParams["visibility"] = visibility;
     }
     return Client.CallServiceMethod<MetadataItem>("GET", GetMetadataPath(key), callParams);
 }
        private Task<BuddyResult<bool>> SetMetadataCore(IDictionary<string, object> values, BuddyPermissions? visibility = null)
        {
            var callParams = new Dictionary<string, object>();
            callParams["values"] = values;

            if (visibility != null)
            {
                callParams["visibility"] = visibility;
            }

            return Client.CallServiceMethod<bool>("PUT", GetMetadataPath(), callParams);
        }
 public Task<BuddyResult<bool>> SetMetadataAsync(IDictionary<string, object> values, BuddyPermissions? visibility = null)
 {
     return SetMetadataCore(values, visibility);
 }
 public Task<BuddyResult<bool>> SetMetadataAsync(string key, object value, BuddyPermissions? visibilty = null)
 {
     return SetMetadataCore(key, value, visibilty);
 }
        public Task<BuddyResult<MetadataItem>> IncrementMetadataAsync(string key, double? delta = null, BuddyPermissions? visibility = null)
        {
            var path = GetMetadataPath(key) + "/increment";
            var callParams = new Dictionary<string, object>();
            callParams["delta"] = delta;
            if (visibility != null)
            {
                callParams["visibility"] = visibility;
            }

            var r = Client.CallServiceMethod<MetadataItem>("POST", path,callParams);
            return r;
        }
        public Task<BuddyResult<object>> GetMetadataValueAsync(string key, BuddyPermissions? visibility = null)
        {
            return Task.Run<BuddyResult<object>>(() =>
            {
                var t2 = GetMetadataItemAsync(key, visibility);

                return t2.Result.Convert<object>(i => i == null ? null : i.Value);
            });
        }