/// <summary> /// Returns a Redmine object. /// </summary> /// <typeparam name="T">The type of objects to retrieve.</typeparam> /// <param name=RedmineKeys.ID>The id of the object.</param> /// <param name="parameters">Optional filters and/or optional fetched data.</param> /// <param name="includeParams">Optional parameters for "include".</param> /// <returns>Returns the object of type T.</returns> /// <exception cref="Redmine.Net.Api.RedmineException"></exception> /// <exception cref="System.InvalidOperationException"> An error occurred during deserialization. The original exception is available /// using the System.Exception.InnerException property.</exception> /// <code> /// <example> /// string issueId = "927"; /// NameValueCollection parameters = null; /// Issue issue = redmineManager.GetObject<Issue>(issueId, parameters); /// </example> /// </code> public T GetObject <T>(string id, NameValueCollection parameters, IncludeParameters includeParams = IncludeParameters.none) where T : class, new() { var type = typeof(T); if (type == typeof(Issue)) { if ((Array.IndexOf(parameters.AllKeys, "include") == -1) && (includeParams > IncludeParameters.none)) { StringBuilder buider = new StringBuilder(); if (includeParams.IsSet(IncludeParameters.children)) { buider.Append(IncludeParameters.children.ToString() + ","); } if (includeParams.IsSet(IncludeParameters.attachments)) { buider.Append(IncludeParameters.attachments.ToString() + ","); } if (includeParams.IsSet(IncludeParameters.relations)) { buider.Append(IncludeParameters.relations.ToString() + ","); } if (includeParams.IsSet(IncludeParameters.changesets)) { buider.Append(IncludeParameters.changesets.ToString() + ","); } if (includeParams.IsSet(IncludeParameters.journals)) { buider.Append(IncludeParameters.journals.ToString() + ","); } if (includeParams.IsSet(IncludeParameters.watchers)) { buider.Append(IncludeParameters.watchers.ToString() + ","); } parameters.Add("include", buider.ToString().Trim(',')); } } return(!urls.ContainsKey(type) ? null : ExecuteDownload <T>(string.Format(REQUEST_FORMAT, host, urls[type], id), "GetObject<" + type.Name + ">", parameters)); }
public static bool IsSet(this IncludeParameters source, IncludeParameters flag) { return (source & flag) == flag; }
public static bool IsSet(this IncludeParameters source, IncludeParameters flag) { return((source & flag) == flag); }