Пример #1
0
        public async Task <Customer> Get(string id)
        {
            var partitions = await this._fabricClient.QueryManager.GetPartitionListAsync(SfProxyMagic.GetDataServiceName(this._serviceContext));

            foreach (Partition partition in partitions)
            {
                var proxyUrl = SfProxyMagic.GetServiceProxy(this._serviceContext, ((Int64RangePartitionInformation)partition.PartitionInformation).LowKey, id);

                using (var response = await this._httpClient.GetAsync(proxyUrl))
                {
                    if (response.StatusCode != System.Net.HttpStatusCode.OK)
                    {
                        continue;
                    }

                    var result = await response.Content.ReadAsStringAsync();

                    return(JsonConvert.DeserializeObject <Customer>(result));
                }
            }

            return(null);
        }
Пример #2
0
        public async Task <bool> Delete(string id)
        {
            var partitions = await this._fabricClient.QueryManager.GetPartitionListAsync(SfProxyMagic.GetDataServiceName(this._serviceContext));

            foreach (Partition partition in partitions)
            {
                var proxyUrl = SfProxyMagic.GetServiceProxy(this._serviceContext, ((Int64RangePartitionInformation)partition.PartitionInformation).LowKey, id);

                using (var response = await this._httpClient.DeleteAsync(proxyUrl))
                {
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Пример #3
0
        public async Task <IEnumerable <CustomerListView> > GetAll(Func <CustomerListView, bool> whereFunc = null)
        {
            var partitions = await this._fabricClient.QueryManager.GetPartitionListAsync(SfProxyMagic.GetDataServiceName(this._serviceContext));

            var result = new List <CustomerListView>();

            foreach (Partition partition in partitions)
            {
                var proxyUrl = SfProxyMagic.GetServiceProxy(this._serviceContext, ((Int64RangePartitionInformation)partition.PartitionInformation).LowKey);

                using (var response = await this._httpClient.GetAsync(proxyUrl))
                {
                    if (response.StatusCode != System.Net.HttpStatusCode.OK)
                    {
                        continue;
                    }

                    result.AddRange(JsonConvert.DeserializeObject <List <CustomerListView> >(await response.Content.ReadAsStringAsync()));
                }
            }

            return(result);
        }