Exemple #1
0
        public async Task <string> GetAccessTokenAsync(string redirectUri, string code)
        {
            var requestUri = new StringBuilder();

            requestUri.AppendFormat("https://graph.facebook.com/v6.0/oauth/access_token");
            requestUri.AppendFormat("?redirect_uri={0}", Uri.EscapeUriString(redirectUri));
            requestUri.AppendFormat("&code={0}", Uri.EscapeUriString(code));
            requestUri.AppendFormat("&client_id={0}", _configuration.AppId);
            requestUri.AppendFormat("&client_secret={0}", _configuration.AppSecret);

            using (var client = new HttpClient())
            {
                using (var response = await client.GetAsync(requestUri.ToString()))
                {
                    var content = await response.Content.ReadAsStringAsync();

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new FacebookClientException(content, (int)response.StatusCode);
                    }

                    return(_jsonUtil.DeserializeOrCreate <FacebookAccessTokenResponse>(content).AccessToken);
                }
            }
        }
Exemple #2
0
        public async Task <MicrosoftGraphAccessTokenResponse> GetAccessTokenAsync(string redirectUri, string code)
        {
            var requestArgs = new Dictionary <string, string>
            {
                ["redirect_uri"]  = redirectUri,
                ["code"]          = code,
                ["grant_type"]    = "authorization_code",
                ["client_id"]     = _configuration.AppId,
                ["client_secret"] = _configuration.AppSecret
            };

            using (var client = new HttpClient())
            {
                using (var response = await client.PostAsync(TokenApiRequestUri, new FormUrlEncodedContent(requestArgs !)))
                {
                    var content = await response.Content.ReadAsStringAsync();

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new MicrosoftGraphClientException(content, (int)response.StatusCode);
                    }

                    return(_jsonUtil.DeserializeOrCreate <MicrosoftGraphAccessTokenResponse>(content));
                }
            }
        }
        private void UpdateMonsterDuration(Monster monster, IList <IDurationChange> changes, INotificationSession notificationSession)
        {
            var modifiers = _jsonUtil.DeserializeOrCreate <List <ActiveStatsModifier> >(monster.Modifiers);

            foreach (var change in changes.OfType <ModifierDurationChange>())
            {
                ApplyChangeOnMonsterModifier(monster, modifiers, change, notificationSession);
            }

            UpdateItemsDuration(monster.Items, changes.OfType <IITemDurationChange>(), notificationSession);

            monster.Modifiers = _jsonUtil.Serialize(modifiers);
        }
Exemple #4
0
        private Item GivenAnItem(ItemData itemData)
        {
            _jsonUtil.DeserializeOrCreate <ItemData>(SomeItemDataJson)
            .Returns(itemData);
            _jsonUtil.SerializeNonNull(itemData)
            .Returns(SomeUpdatedJsonData);

            return(new Item
            {
                Data = SomeItemDataJson
            });
        }
        public void CreateItemFromRequest_ShouldSerializeJsonData_AndSetItemTemplateId()
        {
            var itemData     = new ItemData();
            var jsonItemData = "some-json";
            var itemTemplate = CreateItemTemplate();

            _jsonUtil.DeserializeOrCreate <PartialItemTemplateData>(Arg.Any <string>())
            .Returns(new PartialItemTemplateData());
            _jsonUtil.SerializeNonNull(itemData)
            .Returns(jsonItemData);

            var actualItem = _factory.CreateItem(ItemOwnerType.Character, 10, itemTemplate, itemData);

            actualItem.ItemTemplateId.Should().Be(itemTemplate.Id);
            actualItem.Data.Should().BeEquivalentTo(jsonItemData);
        }
Exemple #6
0
        public void ApplyChangesAndNotify(Group group, PatchGroupConfigRequest request, INotificationSession notificationSession)
        {
            var config = _jsonUtil.DeserializeOrCreate <GroupConfig>(group.Config);

            if (request.AllowPlayersToAddObject.HasValue)
            {
                config.AllowPlayersToAddObject = request.AllowPlayersToAddObject.Value;
            }
            if (request.AllowPlayersToSeeSkillGmDetails.HasValue)
            {
                config.AllowPlayersToSeeSkillGmDetails = request.AllowPlayersToSeeSkillGmDetails.Value;
            }
            if (request.AllowPlayersToSeeGemPriceWhenIdentified.HasValue)
            {
                config.AllowPlayersToSeeGemPriceWhenIdentified = request.AllowPlayersToSeeGemPriceWhenIdentified.Value;
            }

            group.Config = _jsonUtil.SerializeNonNull(config);

            notificationSession.NotifyGroupChangeConfig(group.Id, config);
        }
Exemple #7
0
        public Item CreateItem(ItemTemplate itemTemplate, ItemData itemData)
        {
            var itemTemplateData = _jsonUtil.DeserializeOrCreate <PartialItemTemplateData>(itemTemplate.Data);

            if (itemTemplateData.Charge.HasValue)
            {
                itemData.Charge = itemTemplateData.Charge.Value;
            }
            if (itemTemplateData.Lifetime != null)
            {
                itemData.Lifetime = itemTemplateData.Lifetime;
            }
            if (itemTemplateData.Quantifiable == true && itemData.Quantity == null)
            {
                itemData.Quantity = 1;
            }
            itemData.Icon ??= itemTemplateData.Icon;
            if (string.IsNullOrEmpty(itemData.Name))
            {
                if (itemData.NotIdentified == true && !string.IsNullOrEmpty(itemTemplateData.NotIdentifiedName))
                {
                    itemData.Name = itemTemplateData.NotIdentifiedName;
                }
                else
                {
                    itemData.Name = itemTemplate.Name;
                }
            }

            var item = new Item
            {
                Data           = _jsonUtil.SerializeNonNull(itemData),
                ItemTemplateId = itemTemplate.Id
            };

            return(item);
        }
Exemple #8
0
 public IReadOnlyItemData GetItemData(Item item)
 {
     return(_jsonUtil.DeserializeOrCreate <ItemData>(item.Data));
 }