Ejemplo n.º 1
0
        public virtual async Task <string> GetAsync(string idOrName, string urlParameters = null)
        {
            var url = $"{ServiceUrl}/{EntityPluralized}({idOrName})";

            url = AppendUrlParameters(urlParameters, url);
            return(await HttpClientRunner.Run(HttpClient.GetAsync, url));
        }
        /// <inheritdoc />
        internal virtual async Task <string> GetByMappedEntityAsync(string pluralizedEntityName, List <string> ids, string urlParameters = null)
        {
            var url = $"{ServiceUrl}/{EntityPluralized}/{pluralizedEntityName}/Ids";

            url = AppendUrlParameters(urlParameters, url);
            return(await HttpClientRunner.RunAndDeserialize <List <string>, string>(HttpClient.PostAsync, url, ids));
        }
Ejemplo n.º 3
0
        public virtual async Task <string> GetByIdsAsync(IEnumerable <string> ids, string urlParameters = null)
        {
            var url = $"{ServiceUrl}/{EntityPluralized}/Ids";

            url = AppendUrlParameters(urlParameters, url);
            return(await HttpClientRunner.Run(HttpClient.PostAsync, url, ids));
        }
Ejemplo n.º 4
0
        /// <inheritdoc />
        public virtual async Task <string> GetByPropertyValuesAsync(string property, List <string> values, string urlParameters = null)
        {
            var url = $"{ServiceUrl}/{EntityPluralized}/{property}/Values";

            url = AppendUrlParameters(urlParameters, url);
            HttpContent postContent = new StringContent(JsonConvert.SerializeObject(values, JsonSerializerSettings), Encoding.UTF8, "application/json");

            return(await HttpClientRunner.Run(HttpClient.PostAsync, url, postContent));
        }
Ejemplo n.º 5
0
        internal async Task <OdataObject <T, TId> > UpdateCache(Func <string, Task <HttpResponseMessage> > methodIfNotCached, string url)
        {
            OdataObject <T, TId> e = await HttpClientRunner.RunAndDeserialize <OdataObject <T, TId> >(methodIfNotCached, url);

            if (e != null)
            {
                var key = (TId)e.GetType().GetProperty(Id).GetValue(e);
                Cache[key] = e;
            }
            return(e);
        }
Ejemplo n.º 6
0
        /// <inheritdoc />
        public virtual async Task <OdataObject <TEntity, TId> > GetAsync(string idOrName)
        {
            var id = idOrName.To <TId>();

            if (id.Equals(default(TId)))
            {
                var urlEncodedAlternateId = WebUtility.UrlEncode(idOrName);
                return(await HttpClientRunner.RunAndDeserialize <OdataObject <TEntity, TId> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({urlEncodedAlternateId})"));
            }
            return(await EntityCache.GetWithCache(id, HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({idOrName})"));
        }
Ejemplo n.º 7
0
        internal async Task <OdataObjectCollection <T, TId> > UpdateCache(IEnumerable <TId> ids, Func <string, HttpContent, Task <HttpResponseMessage> > methodIfNotCached, string url)
        {
            if (ids == null && !ids.Any())
            {
                return(null);
            }
            var list = await HttpClientRunner.RunAndDeserialize <IEnumerable <TId>, OdataObjectCollection <T, TId> >(methodIfNotCached, url, ids);

            if (list != null && list.Count > 0)
            {
                foreach (var e in list)
                {
                    var key = (TId)e.GetType().GetProperty(Id).GetValue(e);
                    Cache[key] = e;
                }
            }
            return(list);
        }
Ejemplo n.º 8
0
 public virtual async Task <string> PutAsync(string id, HttpContent content)
 {
     return(await HttpClientRunner.Run(HttpClient.PutAsync, $"{ServiceUrl}/{EntityPluralized}({id})", content, JsonSerializerSettings));
 }
Ejemplo n.º 9
0
 public virtual async Task <string> UpdatePropertyAsync(string id, string property, string value)
 {
     return(await HttpClientRunner.Run(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}({id})/{property}", value, JsonSerializerSettings));
 }
Ejemplo n.º 10
0
 public virtual async Task <string> GetMetadataAsync()
 {
     return(await HttpClientRunner.Run(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}/$Metadata"));
 }
Ejemplo n.º 11
0
 public virtual async Task <string> GetPropertyAsync(string id, string property)
 {
     return(await HttpClientRunner.Run(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({id})/{property}"));
 }
Ejemplo n.º 12
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <Addendum, long> > GetAddendaAsync(string id)
 {
     return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <Addendum, long> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({id})/Addenda"));
 }
Ejemplo n.º 13
0
 public virtual async Task <string> GetByQueryParametersAsync(string queryParameters)
 {
     return(await HttpClientRunner.Run(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}?{queryParameters}"));
 }
Ejemplo n.º 14
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <TEntity, TId> > GetByQueryParametersAsync(string queryParameters)
 {
     return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <TEntity, TId> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}?{queryParameters}"));
 }
Ejemplo n.º 15
0
 public virtual async Task <string> GetAddendaByNameAsync(string id, string name)
 {
     return(await HttpClientRunner.Run(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({id})/Addenda({name})"));
 }
Ejemplo n.º 16
0
        /// <inheritdoc />
        public virtual async Task <OdataObject <TEntity, TId> > GetByAlternateKeyAsync(string altKey)
        {
            var urlEncodedAlternateId = WebUtility.UrlEncode(altKey);

            return(await HttpClientRunner.RunAndDeserialize <OdataObject <TEntity, TId> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}({urlEncodedAlternateId})"));
        }
Ejemplo n.º 17
0
 public virtual async Task <string> GetByCustomUrlAsync(string urlPart)
 {
     return(await HttpClientRunner.Run(HttpClient.GetAsync, $"{ServiceUrl}/{urlPart}"));
 }
Ejemplo n.º 18
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <TEntity, TId> > PostAsync(List <TEntity> entities)
 {
     return(await HttpClientRunner.RunAndDeserialize <List <TEntity>, OdataObjectCollection <TEntity, TId> >(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}", entities, JsonSerializerSettings));
 }
Ejemplo n.º 19
0
 public virtual async Task <int> GetCountAsync()
 {
     return(await HttpClientRunner.RunAndDeserialize <int>(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}?$count"));
 }
Ejemplo n.º 20
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <Addendum, long> > GetAddendaByEntityIdsAsync(List <string> ids)
 {
     return(await HttpClientRunner.RunAndDeserialize <List <string>, OdataObjectCollection <Addendum, long> >(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}/Ids/Addenda", ids));
 }
Ejemplo n.º 21
0
 public virtual async Task <bool> DeleteAsync(string id)
 {
     return(await HttpClientRunner.RunAndDeserialize <bool>(HttpClient.DeleteAsync, $"{ServiceUrl}/{EntityPluralized}({id})"));
 }
Ejemplo n.º 22
0
 /// <inheritdoc />
 public virtual async Task <CsdlEntity <TEntity> > GetMetadataAsync()
 {
     return(await HttpClientRunner.RunAndDeserialize <CsdlEntity <TEntity> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}/$Metadata"));
 }
Ejemplo n.º 23
0
 public virtual async Task <string> GetAddendaByEntityIdsAsync(List <string> ids)
 {
     return(await HttpClientRunner.Run(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}/Ids/Addenda", ids));
 }
Ejemplo n.º 24
0
        /// <inheritdoc />
        public virtual async Task <OdataObjectCollection <TEntity, TId> > GetByPropertyValuesAsync(string property, IEnumerable <string> values)
        {
            HttpContent postContent = new StringContent(JsonConvert.SerializeObject(values, JsonSerializerSettings), Encoding.UTF8, "application/json");

            return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <TEntity, TId> >(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}/{property}/Values", postContent));
        }
Ejemplo n.º 25
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <TEntity, TId> > GetAllAsync()
 {
     return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <TEntity, TId> >(HttpClient.GetAsync, $"{ServiceUrl}/{EntityPluralized}"));
 }
Ejemplo n.º 26
0
 /// <inheritdoc />
 public virtual async Task <OdataObject <TEntity, TId> > PutAsync(string id, TEntity entity)
 {
     return(await HttpClientRunner.RunAndDeserialize <TEntity, OdataObject <TEntity, TId> >(HttpClient.PutAsync, $"{ServiceUrl}/{EntityPluralized}({id})", entity, JsonSerializerSettings));
 }
Ejemplo n.º 27
0
 public virtual async Task <string> GetByCustomUrlAsync(string urlPart, Func <string, HttpContent, Task <HttpResponseMessage> > httpMethod, object content)
 {
     return(await HttpClientRunner.Run(httpMethod, $"{ServiceUrl}/{urlPart}", content));
 }
Ejemplo n.º 28
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <TEntity, TId> > GetByCustomUrlAsync(string urlPart)
 {
     return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <TEntity, TId> >(HttpClient.GetAsync, $"{ServiceUrl}/{urlPart}"));
 }
Ejemplo n.º 29
0
 /// <inheritdoc />
 internal virtual async Task <OdataObjectCollection <TEntity, TId> > GetByMappedEntityAsync <Eid>(string pluralizedEntityName, List <Eid> ids)
 {
     return(await HttpClientRunner.RunAndDeserialize <List <Eid>, OdataObjectCollection <TEntity, TId> >(HttpClient.PostAsync, $"{ServiceUrl}/{EntityPluralized}/{pluralizedEntityName}/Ids", ids));
 }
Ejemplo n.º 30
0
 /// <inheritdoc />
 public virtual async Task <OdataObjectCollection <TEntity, TId> > GetByCustomUrlAsync(string urlPart, Func <string, HttpContent, Task <HttpResponseMessage> > httpMethod, HttpContent content)
 {
     return(await HttpClientRunner.RunAndDeserialize <OdataObjectCollection <TEntity, TId> >(httpMethod, $"{ServiceUrl}/{urlPart}", content));
 }