Example #1
0
        /// <summary>
        ///     Get business get buttons (partners)
        /// </summary>
        public async Task <IResult <InstaBusinessPartnersList> > GetBusinessPartnersButtonsAsync()
        {
            InstaUserAuthValidator.Validate(userAuthValidate);
            try
            {
                var data     = new JObject();
                var dataStr  = httpHelper.GetSignature(data);
                var instaUri = InstaUriCreator.GetBusinessInstantExperienceUri(dataStr);

                var request  = httpHelper.GetDefaultRequest(HttpMethod.Get, instaUri, deviceInfo);
                var response = await httpRequestProcessor.SendAsync(request).ConfigureAwait(false);

                var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    return(Result.UnExpectedResponse <InstaBusinessPartnersList>(response, json));
                }

                var obj      = JsonConvert.DeserializeObject <InstaBusinessPartnerContainer>(json);
                var partners = new InstaBusinessPartnersList();

                foreach (var p in obj.Partners)
                {
                    partners.Add(p);
                }

                return(Result.Success(partners));
            }
            catch (HttpRequestException httpException)
            {
                logger?.LogError(httpException, "Error");
                return(Result.Fail(httpException, default(InstaBusinessPartnersList), ResponseType.NetworkProblem));
            }
            catch (Exception exception)
            {
                logger?.LogError(exception, "Error");
                return(Result.Fail <InstaBusinessPartnersList>(exception));
            }
        }