/// <summary> /// Get the exact entity with the id. /// </summary> /// <param name="id">The entity id.</param> /// <returns>A OdataObject<T, TId> object contain the single entity with the id provided.</returns> public virtual OdataObject <TEntity, TId> Get(string id) { var entity = Service.Get(id.To <TId>())?.ToConcrete <TEntity, TInterface>().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(new[] { entity }, UrlParameters); return(entity); }
/// <summary> /// Creates one or more (an array) of entities. /// </summary> /// <param name="entities">The list of entities to create</param> /// <returns>The created entities.</returns> public virtual OdataObjectCollection <TEntity, TId> Post(List <TEntity> entities) { var createdEntities = Service.Add(entities.ToList <TInterface>()).ToConcrete <TEntity, TInterface>().ToList().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(createdEntities, UrlParameters); return(createdEntities); }
/// <summary> /// Get a list of Entities where the Entity id is in the list of ids provided. /// </summary> /// <param name="ids"></param> /// <returns>A List{OdataObject{T}} of entities where each is wrapped in an Odata object.</returns> public virtual OdataObjectCollection <TEntity, TId> GetByIds(List <TId> ids) { var entities = Service.Get(ids)?.ToConcrete <TEntity, TInterface>().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(entities, UrlParameters); return(entities); }
/// <inheritdoc /> public OdataObjectCollection <TEntity, TId> GetByE2Ids(List <TE2Id> ids) { var propertyName = typeof(TEntity).GetMappedEntity2Property(); var lambda = propertyName.ToLambda <TEntity, TE2Id>(ids); var entities = Service.Get(lambda)?.ToConcrete <TEntity, TInterface>().ToList().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(entities, UrlParameters); return(entities); }
/// <summary> /// Gets all entities. /// Note: Be careful using this on entities that are extremely large in quantity. /// </summary> /// <returns>List{OdataObject{T}} containing all entities</returns> public virtual OdataObjectCollection <TEntity, TId> GetAll() { if (UrlParameters.Count > 0) { var entities = Service.Get(UrlParameters)?.ToConcrete <TEntity, TInterface>().ToList().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(entities, UrlParameters); return(entities); } return(Service.Get()?.ToConcrete <TEntity, TInterface>().ToList().AsOdata <TEntity, TId>(RequestUri)); }
public override OdataObject <TEntity, TId> Get(string idOrName) { if (string.IsNullOrWhiteSpace(idOrName)) { return(null); } var id = idOrName.To <TId>(); if (id.Equals(default(TId))) { var entity = AltKeyService.Get(idOrName)?.ToConcrete <TEntity, TInterface>().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(new[] { entity }, UrlParameters); return(entity); } return(base.Get(idOrName)); }
/// <summary> /// Get a list of Entities where the value of the property of a given Entity is in the list of values provided. /// </summary> /// <param name="collection">A ValueCollection that has the property name and the values as strings.</param> /// <returns>A List{OdataObject{T}} of entities where each is wrapped in an Odata object.</returns> public virtual OdataObjectCollection <TEntity, TId> GetByPropertyValues(string property, List <string> values) { #region parameter validation if (string.IsNullOrWhiteSpace(property)) { throw new ArgumentException($"The property section of the Url must be a valid property of {typeof(TEntity).FullName}", "property"); } if (values == null || !values.Any()) { return(null); } var propInfo = typeof(TEntity).GetProperty(property); if (propInfo == null) { throw new ArgumentException($"ValueCollection.Property must be a valid property of {typeof(TEntity).FullName}"); } #endregion var entities = Service.Get(property, values)?.ToConcrete <TEntity, TInterface>().AsOdata <TEntity, TId>(RequestUri); RelatedEntityFetcher.Fetch(entities, UrlParameters); return(entities); }