mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
using System.Net.Http;
|
|
using ZuneUI;
|
|
|
|
namespace Microsoft.Zune.Service
|
|
{
|
|
partial class CommunityCommerce
|
|
{
|
|
private static readonly HttpClient _client = Escargot._client;
|
|
|
|
public static HRESULT TrySignIn()
|
|
{
|
|
if (!Escargot.HasToken)
|
|
return HRESULT._NS_E_SUBSCRIPTIONSERVICE_LOGIN_FAILED;
|
|
|
|
try
|
|
{
|
|
string url = Service2.Instance.GetEndPointUri(EServiceEndpointId.SEID_Commerce) + $"/account/signin";
|
|
HttpRequestMessage request = new(HttpMethod.Post, url);
|
|
request.Headers.UserAgent.ParseAdd(CommunityService.AppUserAgent);
|
|
|
|
var contentStream = GetSignInRequestBody();
|
|
request.Content = new StreamContent(contentStream);
|
|
request.Content.Headers.ContentType = new(Atom.Constants.ATOM_MIMETYPE);
|
|
request.Content.Headers.ContentLength = contentStream.Length;
|
|
|
|
Escargot.AuthenticateRequest(request);
|
|
|
|
var response = _client.Send(request);
|
|
response.EnsureSuccessStatusCode();
|
|
|
|
var responseObj = ReadSignInResponse(response.Content.ReadAsStream());
|
|
|
|
uint? errorCode = responseObj?.AccountState?.SignInErrorCode;
|
|
if (errorCode != 0)
|
|
return new HRESULT(unchecked((int)errorCode));
|
|
|
|
MemberInfo = responseObj;
|
|
return HRESULT._S_OK;
|
|
}
|
|
catch
|
|
{
|
|
return HRESULT._NS_E_SUBSCRIPTIONSERVICE_LOGIN_FAILED;
|
|
}
|
|
}
|
|
}
|
|
}
|