Beispiel #1
0
 public string BuildQuery <T>(QueryParams <T> queryParams) where T : QueryField
 {
     try
     {
         StringBuilder stringBuilder = new StringBuilder();
         if (queryParams != null)
         {
             foreach (T key in queryParams.SortFields.Keys)
             {
                 if (queryParams.SortFields[key].Equals((object)SortType.SORT_ASC))
                 {
                     stringBuilder.Append("&sortAsc=");
                     stringBuilder.Append(key.Value());
                 }
                 else
                 {
                     stringBuilder.Append("&sortDesc=");
                     stringBuilder.Append(key.Value());
                 }
             }
             if (queryParams.Fields.Count > 0 || queryParams.GetMetadataFields().Count > 0)
             {
                 stringBuilder.Append("&fields=");
                 int num1 = 0;
                 foreach (T field in queryParams.Fields)
                 {
                     QueryField queryField = (QueryField)field;
                     stringBuilder.Append(queryField.Value());
                     ++num1;
                     if (num1 != queryParams.Fields.Count)
                     {
                         stringBuilder.Append(",");
                     }
                 }
                 if (num1 > 0 && queryParams.GetMetadataFields().Count > 0)
                 {
                     stringBuilder.Append(",");
                 }
                 int num2 = 0;
                 foreach (string metadataField in queryParams.GetMetadataFields())
                 {
                     stringBuilder.Append(metadataField);
                     ++num2;
                     if (num2 != queryParams.GetMetadataFields().Count)
                     {
                         stringBuilder.Append(",");
                     }
                 }
             }
             if (queryParams.Page.HasValue)
             {
                 stringBuilder.Append("&page=");
                 stringBuilder.Append((object)queryParams.Page);
             }
             if (queryParams.Offset.HasValue)
             {
                 stringBuilder.Append("&offset=");
                 stringBuilder.Append((object)queryParams.Offset);
             }
             if (queryParams.PageSize.HasValue)
             {
                 stringBuilder.Append("&pageSize=");
                 stringBuilder.Append((object)queryParams.PageSize);
             }
             if (queryParams.Filter != null && queryParams.Filter.GetFilterText() != null && !string.IsNullOrEmpty(queryParams.Filter.GetFilterText()))
             {
                 stringBuilder.Append("&filter=");
                 stringBuilder.Append(queryParams.Filter.GetFilterText());
             }
         }
         return(stringBuilder.ToString());
     }
     catch (Exception ex)
     {
         throw new VCloudException(ex.Message);
     }
 }