/// <summary> /// Initializes a new instance of the <see cref="JsonBackedObjectBase" /> class. /// </summary> /// <param name="json">The json.</param> public JsonBuildRequest(JToken json) : base(json) { r_BuildsProvider = new Lazy <IReadOnlyList <JsonBuild> >(() => { var array = sr_Builds.Eval(this); List <JsonBuild> items = JsonParsers.JArrayToObjects(array, JsonBuild.FromToken); return(items); }); r_DefinitionProvider = new Lazy <JsonBuildDefinition>(() => { var src = sr_Definition.Eval(this); var definition = JsonBuildDefinition.FromToken(src); return(definition); }); r_QueueProvider = new Lazy <JsonBuildQueue>(() => { var src = sr_Queue.Eval(this); var queue = JsonBuildQueue.FromToken(src); return(queue); }); r_RequesteddByProvider = new Lazy <JsonIdentity>(() => { var src = sr_RequestedBy.Eval(this); var identity = JsonIdentity.FromToken(src); return(identity); }); r_RequesteddForProvider = new Lazy <JsonIdentity>(() => { var src = sr_RequestedFor.Eval(this); var identity = JsonIdentity.FromToken(src); return(identity); }); }
/// <summary> /// Gets the links for work item revision. /// </summary> /// <typeparam name="TLinkCollection">The type of the t link collection.</typeparam> /// <param name="id">The identifier.</param> /// <param name="rev">The rev.</param> /// <param name="fromToken">From token.</param> /// <returns>Task<TLinkCollection>.</returns> public async Task <TLinkCollection> GetLinksForWorkItemRevision <TLinkCollection>(int id, int rev, Func <JArray, TLinkCollection> fromToken) where TLinkCollection : JsonLinkCollection { var exchange = StructuredHttpExchange.Get(WitRestCalls.Revision); exchange.SetRoute("{id}", id); exchange.SetRoute("{revisionNumber}", rev); exchange.SetQuery("$expand", "relations"); TLinkCollection result = await ProcessCollectionRequest(exchange, o => { JProperty rootToken = o.Properties().FirstOrDefault(p => p.Name == "relations"); JArray values; if (rootToken != null) { values = (JArray)rootToken.Value; } else { values = new JArray(); } TLinkCollection collection = JsonParsers.JArrayToInstance(values, fromToken); return(collection); }); return(result); }
public async Task <IReadOnlyList <T> > GetWorkItemRevisions <T>(int id, Func <JToken, T> func) { var exchange = StructuredHttpExchange.Get(WitRestCalls.Revisions); exchange.SetRoute("{id}", id); IReadOnlyList <T> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, func)); return(result); }
/// <summary> /// Creates the room. /// </summary> /// <param name="name">The name.</param> /// <param name="description">The description.</param> /// <returns>Task<ITeamRoom>.</returns> public async Task <ITeamRoom> CreateRoom(string name, string description) { const string format = " \"name\": \"{0}\", \"description\": \"{1}\", "; string body = "{" + String.Format(format, name, description) + "}"; var exchange = StructuredHttpExchange.Post("/chat/rooms", body); ITeamRoom result = await ProcessCollectionRequest(exchange, o => JsonParsers.JObjectToInstance(o, TeamRoomImpl.FromToken)); return(result); }
/// <summary> /// Gets the work item as JsonWorkItem. This is used privately to allow for manipulations /// that would not be feasible (without casting) using the JsonWorkItem interface. /// </summary> /// <param name="ids">The ids.</param> /// <param name="func"></param> /// <returns>Task<IReadOnlyList<JsonWorkItem>>.</returns> private async Task <IReadOnlyList <T> > JsonWorkItemsLoader <T>(IEnumerable <int> ids, Func <JToken, T> func) where T : JsonWorkItem { var exchange = StructuredHttpExchange.Get(WitRestCalls.WorkItems); exchange.SetQuery("ids", ToCommaList(ids)); IReadOnlyList <T> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, func)); return(result); }
public async Task <IReadOnlyList <TIteration> > GetAllIterations <TIteration>(string project, int depth, Func <JObject, TIteration> fromToken) where TIteration : JsonIteration { var exchange = StructuredHttpExchange.Get(WitRestCalls.AllIterations); exchange.SetQuery("$depth", depth); TIteration result = await ProcessProjectRequest(project, exchange, o => JsonParsers.JObjectToInstance(o, fromToken)); var retVal = new List <TIteration> { result }; AddChildIterations(retVal, result); return(retVal); }
public async Task <IReadOnlyList <TArea> > GetAreas <TArea>(string project, int depth, Func <JObject, TArea> fromToken) where TArea : JsonArea { var exchange = StructuredHttpExchange.Get(WitRestCalls.Areas); exchange.SetRoute("{*path}", ""); exchange.SetQuery("$depth", depth); TArea result = await ProcessProjectRequest(project, exchange, o => JsonParsers.JObjectToInstance(o, fromToken)); var retVal = new List <TArea> { result }; AddChildAreas(retVal, result); return(retVal); }
/// <summary> /// Gets the proxies. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonProxy> > GetProxies() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.Proxies); IReadOnlyList <JsonProxy> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonProxy.FromToken)); return(result); }
/// <summary> /// Gets the identity MRU. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetIdentityMru() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.IdentityMru); exchange.SetRoute("{mruName}", String.Empty); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
/// <summary> /// Gets the connected services. /// </summary> /// <param name="projectId">The project identifier.</param> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetConnectedServices(string projectId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.ConnectedServices); exchange.SetRoute("{projectId}", projectId); exchange.SetRoute("{name}", String.Empty); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
/// <summary> /// Gets the project team members. /// </summary> /// <param name="projectId">The project identifier.</param> /// <param name="teamId">The team identifier.</param> /// <returns>Task<IReadOnlyList<JsonProjectTeamMember>>.</returns> public async Task <IReadOnlyList <JsonProjectTeamMember> > GetProjectTeamMembers(Guid projectId, Guid teamId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(ProjectRestCalls.ProjectTeamMembers); exchange.SetRoute("{projectId}", projectId); exchange.SetRoute("{teamId}", teamId); IReadOnlyList <JsonProjectTeamMember> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonProjectTeamMember.FromToken)); return(result); }
/// <summary> /// Parse movie JSON /// </summary> /// <param name="movieJson">Movie JSON String</param> private Tuple <Movie, List <People> > parseMovieJson(String movieJson) { JObject obj = JObject.Parse(movieJson); movie.summary = JsonParsers.getValue(obj, "summary"); if (movie.genre == "" || movie.genre == null) { movie.genre = JsonParsers.getArray(obj, "genres"); } if (movie.title == "" || movie.title == null) { movie.title = JsonParsers.getValue(obj, "title"); } if (movie.year == "" || movie.year == null) { movie.year = JsonParsers.getValue(obj, "year"); } if (movie.rating == "" || movie.rating == null) { movie.rating = JsonParsers.getDouble(obj, "rating", "average"); } movie.star = Util.getStarPath(movie.rating); if (movie.rateNumber == "" || movie.rateNumber == null) { movie.rateNumber = JsonParsers.getValue(obj, "ratings_count"); } if (movie.posterUrl == "" || movie.posterUrl == null) { movie.posterUrl = JsonParsers.getDouble(obj, "images", "large"); } object[] countries = obj["countries"].ToArray(); if (movie.region == "" || movie.region == null) { movie.region = JsonParsers.getArray(obj, "countries"); } if (movie.posterUrl == "") { movie.posterUrl = App.imagePath + "default.png"; } List <People> peoples = new List <People>(); JArray array = (JArray)obj["directors"]; for (int i = 0; i < array.Count; i++) { People people = new People(); people.posterUrl = JsonParsers.getDouble(array[i], "avatars", "small"); if (people.posterUrl == "") { people.posterUrl = App.imagePath + "default.png"; } people.id = JsonParsers.getValue(array[i], "id"); people.name = JsonParsers.getValue(array[i], "name"); people.positionName = "导演"; people.position = People.DIRECTOR; peoples.Add(people); } array = (JArray)obj["casts"]; for (int i = 0; i < array.Count; i++) { People people = new People(); people.posterUrl = JsonParsers.getDouble(array[i], "avatars", "small"); if (people.posterUrl == "") { people.posterUrl = App.imagePath + "default.png"; } people.id = JsonParsers.getValue(array[i], "id"); people.name = JsonParsers.getValue(array[i], "name"); people.positionName = ""; people.position = People.ACTOR; peoples.Add(people); } return(Tuple.Create(movie, peoples)); }
/// <summary> /// Gets the item batch. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetItemBatch() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.ItemBatch); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
public async Task <IReadOnlyList <JsonBuildRequest> > GetRequests(string project) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(BuildRestCalls.Requests); IReadOnlyList <JsonBuildRequest> result = await ProcessProjectRequest(project, exchange, o => JsonParsers.ValuesToObjects(o, JsonBuildRequest.FromToken)); return(result); }
public async Task <IReadOnlyList <JsonBuildQuality> > GetQualities(string project) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(BuildRestCalls.Qualities); IReadOnlyList <JsonBuildQuality> result = await ProcessProjectRequest(project, exchange, o => JsonParsers.JArrayToObjects(o["value"].Value <JArray>(), JsonBuildQuality.FromToken)); return(result); }
/// <summary> /// Gets the changesets batch. /// </summary> /// <param name="ids">The ids.</param> /// <returns>Task<IReadOnlyList<JsonChangeSet>>.</returns> public async Task <IReadOnlyList <JsonChangeSet> > GetChangesetsBatch(List <int> ids) { var json = new JObject(); var array = new JArray(); foreach (int id in ids) { array.Add(id); } json.Add("changesetIds", array); json.Add("commentLength", 255); string body = json.ToString(); StructuredHttpExchange exchange = StructuredHttpExchange.Post(TfvcRestCalls.ChangesetsBatch, body); IReadOnlyList <JsonChangeSet> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonChangeSet.FromToken)); return(result); }
/// <summary> /// Gets the summaries. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetSummaries() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CodelensRestCalls.Filesummaries); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
/// <summary> /// Gets the items. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonVersionControlItem> > GetItems() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.Items); IReadOnlyList <JsonVersionControlItem> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonVersionControlItem.FromToken)); return(result); }
public async Task <IReadOnlyList <TProject> > GetProjects <TProject>(Func <JToken, TProject> fromToken) where TProject : JsonProject { var exchange = StructuredHttpExchange.Get("/projects/"); IReadOnlyList <TProject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, fromToken)); return(result); }
/// <summary> /// Gets the label items. /// </summary> /// <param name="labelId">The label identifier.</param> /// <returns>Task<IReadOnlyList<JsonTfvcLabelItem>>.</returns> public async Task <IReadOnlyList <JsonTfvcLabelItem> > GetLabelItems(int labelId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.LabelItems); exchange.SetRoute("{labelId}", labelId); IReadOnlyList <JsonTfvcLabelItem> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonTfvcLabelItem.FromToken)); return(result); }
public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetBacklogs() { var exchange = StructuredHttpExchange.Get(AgileRestCalls.Backlogs); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
/// <summary> /// Gets the project specific information. /// </summary> /// <param name="project">The project.</param> /// <returns>Task<IReadOnlyList<JsonProjectInfo>>.</returns> public async Task <IReadOnlyList <JsonProjectInfo> > GetProjectSpecificInfo(string project) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.ProjectSpecificInfo); exchange.SetRoute("{projectId}", project); IReadOnlyList <JsonProjectInfo> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonProjectInfo.FromToken)); return(result); }
/// <summary> /// Gets the teams. /// </summary> /// <param name="projectId">The project identifier.</param> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonTeam> > GetTeams(string projectId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.Teams); exchange.SetRoute("{projectId}", projectId); exchange.SetRoute("{*teamId}", String.Empty); IReadOnlyList <JsonTeam> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonTeam.FromToken)); return(result); }
/// <summary> /// Gets the shelveset work items. /// </summary> /// <param name="shelvesetId">The shelveset identifier.</param> /// <returns>Task<IReadOnlyList<JsonWorkItem>>.</returns> public async Task <IReadOnlyList <JsonWorkItem> > GetShelvesetWorkItems(string shelvesetId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.ShelvesetWorkItems); exchange.SetRoute("{shelvesetId}", shelvesetId); IReadOnlyList <JsonWorkItem> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonWorkItem.FromToken)); return(result); }
/// <summary> /// Gets the details. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetDetails() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.ConnectedServices); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
/// <summary> /// Gets all project information. /// </summary> /// <returns>Task<IReadOnlyList<JsonProjectInfo>>.</returns> public async Task <IReadOnlyList <JsonProjectInfo> > GetAllProjectInfo() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.AllProjectInfo); IReadOnlyList <JsonProjectInfo> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonProjectInfo.FromToken)); return(result); }
/// <summary> /// Gets the members. /// </summary> /// <param name="projectId">The project identifier.</param> /// <param name="teamId">The team identifier.</param> /// <returns>Task<IReadOnlyList<JsonIdentity>>.</returns> public async Task <IReadOnlyList <JsonIdentity> > GetMembers(string projectId, string teamId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(CoreRestCalls.Members); exchange.SetRoute("{projectId}", projectId); exchange.SetRoute("{teamId}", teamId); IReadOnlyList <JsonIdentity> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonIdentity.FromToken)); return(result); }
/// <summary> /// Gets the changeset work items. /// </summary> /// <param name="changeSetId">The change set identifier.</param> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonGeneralPurposeObject> > GetChangesetWorkItems(int changeSetId) { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.ChangesetWorkItems); exchange.SetRoute("{id}", changeSetId); IReadOnlyList <JsonGeneralPurposeObject> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonGeneralPurposeObject.FromToken)); return(result); }
private void downloadJsonCompleted(object sender, DownloadStringCompletedEventArgs e) { try { if (e.Error == null && !e.Cancelled) { string data = e.Result; JObject obj = JObject.Parse(data); movie.summary = JsonParsers.getValue(obj, "summary"); if (movie.genre == "" || movie.genre == null) { movie.genre = JsonParsers.getArray(obj, "genres"); } if (movie.title == "" || movie.title == null) { movie.title = JsonParsers.getValue(obj, "title"); } if (movie.year == "" || movie.year == null) { movie.year = JsonParsers.getValue(obj, "year"); } if (movie.rating == "" || movie.rating == null) { movie.rating = JsonParsers.getDouble(obj, "rating", "average"); } movie.star = Util.getStarPath(movie.rating); if (movie.rateNumber == "" || movie.rateNumber == null) { movie.rateNumber = JsonParsers.getValue(obj, "ratings_count"); } if (movie.posterUrl == "" || movie.posterUrl == null) { movie.posterUrl = JsonParsers.getDouble(obj, "images", "small"); } object[] countries = obj["countries"].ToArray(); if (movie.region == "" || movie.region == null) { movie.region = JsonParsers.getArray(obj, "countries"); } if (movie.posterUrl == "") { movie.posterUrl = App.imagePath + "default.png"; } setUI(); List <People> peoples = new List <People>(); JArray array = (JArray)obj["directors"]; for (int i = 0; i < array.Count; i++) { People people = new People(); people.posterUrl = JsonParsers.getDouble(array[i], "avatars", "small"); if (people.posterUrl == "") { people.posterUrl = App.imagePath + "default.png"; } people.id = JsonParsers.getValue(array[i], "id"); people.name = JsonParsers.getValue(array[i], "name"); people.positionName = "导演"; people.position = People.DIRECTOR; peoples.Add(people); } array = (JArray)obj["casts"]; for (int i = 0; i < array.Count; i++) { People people = new People(); people.posterUrl = JsonParsers.getDouble(array[i], "avatars", "small"); if (people.posterUrl == "") { people.posterUrl = App.imagePath + "default.png"; } people.id = JsonParsers.getValue(array[i], "id"); people.name = JsonParsers.getValue(array[i], "name"); people.positionName = ""; people.position = People.ACTOR; peoples.Add(people); } movie.peopleList = peoples; peopleList.ItemsSource = peoples; // Insert movie into cache Cache.insertMovie(movie); if (progressBar != null) { progressBar.Visibility = Visibility.Collapsed; } } else { var wEx = e.Error as WebException; if (wEx.Status == WebExceptionStatus.RequestCanceled) { if (App.isFromDormant) { App.isFromDormant = false; getMovieByID(); } } if (progressBar != null) { progressBar.Visibility = Visibility.Collapsed; } } } catch (WebException) { if (progressBar != null) { progressBar.Visibility = Visibility.Collapsed; } MessageBoxResult result = MessageBox.Show(AppResources.ConnectionError, "", MessageBoxButton.OK); } catch (Exception) { if (progressBar != null) { progressBar.Visibility = Visibility.Collapsed; } } }
/// <summary> /// Gets the changesets. /// </summary> /// <returns>Task<IReadOnlyList<JsonGeneralPurposeObject>>.</returns> public async Task <IReadOnlyList <JsonChangeSet> > GetChangesets() { StructuredHttpExchange exchange = StructuredHttpExchange.Get(TfvcRestCalls.Changesets); IReadOnlyList <JsonChangeSet> result = await ProcessCollectionRequest(exchange, o => JsonParsers.ValuesToObjects(o, JsonChangeSet.FromToken)); return(result); }