/// <summary> /// Get self account information like joined date or switched to business account date /// </summary> public async Task <IResult <InstaWebAccountInfo> > GetAccountInfoAsync() { InstaUserAuthValidator.Validate(userAuthValidate); try { var instaUri = InstaWebUriCreator.GetAccountsDataUri(); var request = httpHelper.GetWebRequest(HttpMethod.Get, instaUri, deviceInfo); var response = await httpRequestProcessor.SendAsync(request).ConfigureAwait(false); var html = await response.Content.ReadAsStringAsync().ConfigureAwait(false); if (response.StatusCode != HttpStatusCode.OK) { return(Result.Fail($"Error! Status code: {response.StatusCode}", default(InstaWebAccountInfo))); } var json = html.GetJson(); if (json.IsEmpty()) { return(Result.Fail("Json response isn't available.", default(InstaWebAccountInfo))); } var obj = JsonConvert.DeserializeObject <InstaWebContainerResponse>(json); if (obj.Entry?.SettingsPages != null) { var first = obj.Entry.SettingsPages.FirstOrDefault(); if (first != null) { return(Result.Success(InstaConvertersFabric.Instance.GetWebAccountInfoConverter(first).Convert())); } } return(Result.Fail("Date joined isn't available.", default(InstaWebAccountInfo))); } catch (HttpRequestException httpException) { logger?.LogError(httpException, "Error"); return(Result.Fail(httpException, default(InstaWebAccountInfo), ResponseType.NetworkProblem)); } catch (Exception exception) { logger?.LogError(exception, "Error"); return(Result.Fail(exception, default(InstaWebAccountInfo))); } }