public async Task GetAssetDigest() { var request = CommonRequest.GetGetAssetDigestMessageRequest(Client); var requests = CommonRequest.FillRequest(request, Client, false, false); var serverRequest = GetRequestBuilder().GetRequestEnvelope(requests); var serverResponse = await PostProto <Request>(serverRequest).ConfigureAwait(false); ParseServerResponse(serverResponse); if (serverResponse.StatusCode == ResponseEnvelope.Types.StatusCode.Redirect) { await GetAssetDigest().ConfigureAwait(false); return; } var responses = serverResponse.Returns; if (responses != null) { if (responses.Count > 0) { var getAssetDigestResponse = new GetAssetDigestResponse(); getAssetDigestResponse.MergeFrom(responses[0]); CommonRequest.ProcessGetAssetDigestResponse(Client, getAssetDigestResponse); CommonRequest.ProcessCommonResponses(Client, responses, false, false); } } }
public void SetAssetDigests(GetAssetDigestResponse assetDigestResponse) { if (_assetDigestResponse == null || assetDigestResponse.TimestampMs > _assetDigestResponse.TimestampMs) { _assetDigestResponse = assetDigestResponse; SaveTemplate(AssetDigestFile, _assetDigestResponse.ToByteString().ToByteArray()); } }
public static void ProcessGetAssetDigestResponse(Client client, GetAssetDigestResponse response) { if (response == null) { return; } var i = 0; foreach (var element in response.Digest) { Logger.Debug($"Digest {i}: {element}"); i++; } Logger.Debug("PageOffset:" + response.PageOffset); client.PageOffset = response.PageOffset; Logger.Debug("TimestampMs:" + response.TimestampMs); }
public async Task <MethodResult <bool> > GetAssetDigest() { var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.GetAssetDigest, RequestMessage = new GetAssetDigestMessage { AppVersion = _client.VersionInt, DeviceManufacturer = _client.Settings.HardwareManufacturer, DeviceModel = _client.Settings.HardwareModel, Locale = _client.LocaleInfo.TimeZone, Platform = Platform.Ios }.ToByteString() }); GetAssetDigestResponse getAssetDigestResponse = null; try { getAssetDigestResponse = GetAssetDigestResponse.Parser.ParseFrom(response); LogCaller(new LoggerEventArgs("Download asset digest loaded", LoggerTypes.Success)); return(new MethodResult <bool> { Success = true }); } catch (Exception ex) { if (response.IsEmpty) { LogCaller(new LoggerEventArgs("Failed to request GetAssetDigestResponse", LoggerTypes.Exception, ex)); } return(new MethodResult <bool>()); } }
/// <summary> /// Provides a safe way to invoke the <see cref="AssetDigestReceived" /> event. /// </summary> /// <param name="value"></param> public void RaiseAssetDigestReceived(GetAssetDigestResponse value) => AssetDigestReceived?.Invoke(this, value);
public Templates() { _assetDigestResponse = LoadAssetDigest(); _itemTemplatesResponse = LoadItemTemplates(); }