/// <summary> Получить одиночный объект по его идентификатору </summary> public T GetSingleObjById <T>(Guid id) where T : BaseEntity { String fullQueryString = $"{OdataUri}{typeof(T).Name}({id})"; String requestResult = GetRequest(fullQueryString); CreatioOdataRequestResult <T> result = JsonConvert.DeserializeObject <CreatioOdataRequestResult <T> >(requestResult); T res = JsonConvert.DeserializeObject <T>(requestResult); return(res); }
/// <summary> Получить объекты указанного типа </summary> public List <T> GetObjs <T>(String query = default(String)) where T : BaseEntity { String fullQueryString = $"{OdataUri}{typeof(T).Name}/?${query}"; String requestResult = GetRequest(fullQueryString); CreatioOdataRequestResult <T> result = JsonConvert.DeserializeObject <CreatioOdataRequestResult <T> >(requestResult); //if (result.Values.Count == 0) //{ // T singleValue = JsonConvert.DeserializeObject<T>(requestResult); // return new List<T> { singleValue }; //} return(result.Values); }
/// <summary> Получить объекты указанного типа у которых значение указанного свойства входить в список значений </summary> public List <T> GetObjsWherePropIn <T, P>(String propName, IEnumerable <P> values) where T : BaseEntity { String filter = String.Join(" or \n", values.Select(p => $"{propName} eq '{p}'")); String fullQueryString = $"{OdataUri}{typeof(T).Name}/?$filter={filter}"; String requestResult = GetRequest(fullQueryString); CreatioOdataRequestResult <T> result = JsonConvert.DeserializeObject <CreatioOdataRequestResult <T> >(requestResult); //if (result.Values.Count == 0) //{ // T singleValue = JsonConvert.DeserializeObject<T>(requestResult); // result.Values = new List<T> { singleValue }; //} return(result.Values); }
/// <summary> Получить проекцию объектов указанного типа </summary> public List <ProjectionType> GetObjsProjection <T, ProjectionType>(String query = default(String)) where T : BaseEntity { CreatioOdataRequestResult <ProjectionType> oDataRequestResult = GetRequestResult <CreatioOdataRequestResult <ProjectionType> >($"{OdataUri}{typeof(T).Name}{query}"); return(oDataRequestResult.Values); }