public DestinyCharacterResponse GetCharacterByAccountAndClass(EBungieMembershipType membership, string displayName, EDestinyClass characterClass, int[] components) { var character = GetSingleProfile(membership, displayName, components).Characters.Data.FirstOrDefault(ch => ch.Value.ClassType == characterClass).Value; // We call again API to get full definition of character (including stuff and not only "basic definition")s return(GetCharacter(membership, character.MembershipId, character.CharacterId, components)); }
public IEnumerable <UserInfoCard> SearchDestinyPlayer(EBungieMembershipType membership, string displayName) { var request = new RestRequest("SearchDestinyPlayer/{membership}/{accountName}", Method.GET); request.AddUrlSegment("membership", (int)membership); request.AddUrlSegment("accountName", displayName); return(client.Execute <ApiResponse <IEnumerable <UserInfoCard> > >(request).Response); }
public DestinyProfileResponse GetProfile(EBungieMembershipType membership, long membershipId, int[] components) { var request = new RestRequest("{membership}/Profile/{membershipId}/?components={components}"); request.AddUrlSegment("membership", (int)membership); request.AddUrlSegment("membershipId", membershipId); request.AddUrlSegment("components", string.Join(",", components)); return(client.Execute <ApiResponse <DestinyProfileResponse> >(request).Response); }
public DestinyProfileResponse GetSingleProfile(EBungieMembershipType membership, string displayName, int[] components) { var profiles = SearchDestinyPlayer(membership, displayName); if (profiles.Count() != 1) { throw new System.Exception("More than one profile found or no profil found, cannot return single profile"); } return(GetProfile(membership, profiles.First().MembershipId, components)); }
/// <summary> /// Return an item from a character /// </summary> /// <param name="membership"></param> /// <param name="membershipId"></param> /// <param name="instanceId"></param> /// <param name="components"></param> /// <returns></returns> public InstanciatedItemComponent GetItem(EBungieMembershipType membership, long membershipId, long instanceId, int[] components) { var request = new RestRequest("{membership}/Profile/{membershipId}/Item/{instanceId}/?components={components}"); request.AddUrlSegment("membership", (int)membership); request.AddUrlSegment("membershipId", membershipId); request.AddUrlSegment("instanceId", instanceId); request.AddUrlSegment("components", string.Join(",", components)); return(client.Execute <ApiResponse <InstanciatedItemComponent> >(request).Response); }
public Item GetItem(EBungieMembershipType membershipType, long membershipId, long itemHash, long itemInstance) { var itemDescInstance = Destiny2RestApi.Instance.GetItem(membershipType, membershipId, itemInstance, new int[] { 300 }); var itemDefinition = Destiny2RestApi.Instance.GetDefinition <DestinyInventoryItemDefinition>(itemHash); var itemModel = new Item(itemDefinition); var statisticsList = new List <ItemStatistic>(); var primaryStat = itemDescInstance.Instance.Data.PrimaryStat; foreach (var stat in itemDefinition.Stats.Stats) { if (stat.Value.StatHash == null) { continue; } var statDescription = Destiny2RestApi.Instance.GetDefinition <DestinyStatDefinition>(stat.Value.StatHash); if (string.IsNullOrEmpty(statDescription.DisplayProperties.Name)) { continue; } var statElement = new ItemStatistic(statDescription, stat.Value); if (statElement.Hash == primaryStat.StatHash) { statElement.Value = primaryStat.Value; statElement.IsPrimaryStatistic = true; } statisticsList.Add(statElement); } itemModel.Statistics = statisticsList.OrderBy(elt => elt.Name); return(itemModel); }
/// <summary> /// Retrieve profiles based on the display name of the account /// </summary> /// <param name="membership"></param> /// <param name="displayName"></param> /// <param name="components"></param> /// <returns></returns> public IEnumerable <DestinyProfileResponse> GetProfile(EBungieMembershipType membership, string displayName, int[] components) { var profiles = SearchDestinyPlayer(membership, displayName); return(profiles.Select(prof => GetProfile(membership, prof.MembershipId, components))); }