/// <summary> /// Returns a <see cref="System.String" /> that represents this instance. /// </summary> /// <returns> /// A <see cref="System.String" /> that represents this instance. /// </returns> /// <exception cref="NotImplementedException"></exception> public override string ToString() { if (string.IsNullOrEmpty(ObjectStructureName)) { throw new ArgumentException($"Required paramater '{nameof(ObjectStructureName)}' was not given."); } var sb = new StringBuilder(); sb.Append($"{ObjectStructureName}?"); if (Select != null && Select.Any()) { var selectSb = new StringBuilder("oslc.select="); foreach (var att in Select) { selectSb.Append($"{att}{SELECT_SEPERATOR}"); } var selectStr = selectSb.ToString(); if (selectStr.EndsWith(SELECT_SEPERATOR)) { selectStr = selectStr.Remove(selectStr.Length - SELECT_SEPERATOR.Length); } sb.Append(selectStr); } else { sb.Append("oslc.select=*"); } if (SearchAttributes.Any() && !string.IsNullOrEmpty(SearchTerm)) { var searchSb = new StringBuilder("&searchAttributes="); foreach (var attribute in SearchAttributes) { searchSb.Append($"{attribute}{SELECT_SEPERATOR}"); } var searchStr = searchSb.ToString(); if (searchStr.EndsWith(SELECT_SEPERATOR)) { searchStr = searchStr.Remove(searchStr.Length - SELECT_SEPERATOR.Length); } sb.Append(searchStr); sb.Append($"&oslc.searchTerms=\"{SearchTerm}\""); } if (OrderBy != null) { sb.Append("&orderBy="); sb.Append(OrderByDescending ? "-" : "%2B"); sb.Append(OrderBy); } if (PageSize != null && PageSize > 0) { sb.Append($"&oslc.pageSize={PageSize}"); if (PageNumber != null && PageNumber > 1) { sb.Append($"&pageno={PageNumber}"); } } if (UseLean) { sb.Append("&lean=1"); } return(sb.ToString()); }