//TODO: add unit tests public OperationResult <ListItemDataWrapper> GetListItems(DataSourceInfo dataSourceInfo) { var restQuery = new RestQueryBuilder().Build(dataSourceInfo.RestQueryData); var requestUri = $"{dataSourceInfo.SiteUri}{restQuery}"; var getOperationResult = this._jsonWebClient.Get(requestUri, dataSourceInfo.NetworkCredentials, dataSourceInfo.RestQueryData.MaxResults); if (!getOperationResult.Success) { return(new OperationResult <ListItemDataWrapper> { Success = false, ErrorMessage = getOperationResult.ErrorMessage }); } var allItems = getOperationResult.Result.Select(x => new ListItemDataWrapper(x)); return(new OperationResult <ListItemDataWrapper> { Success = true, Result = allItems }); }
public OperationResult <T> GetListItems <T>(DataSourceInfo dataSourceInfo, IListItemParser <T> listItemParser) { if (dataSourceInfo == null) { throw new ArgumentNullException(nameof(dataSourceInfo)); } if (listItemParser == null) { throw new ArgumentNullException(nameof(listItemParser)); } var operationResult = this._sharePointConnector.GetListItems(dataSourceInfo); if (!operationResult.Success) { return(new OperationResult <T> { Success = false, ErrorMessage = operationResult.ErrorMessage }); } var parsedListItems = operationResult.Result.Select(listItemParser.Parse); return(new OperationResult <T> { Success = true, Result = parsedListItems }); }