internal void Reset() { ProducedErrorId = default(Guid?); MyScreenName = default(string); OpponentNameWithTagNumber = default(string); Errors = new List <OutputLogError>(); lastOpponentSystemId = default(int); currentMatchDeckSubmitted = default(CourseDeckRaw); currentMatch = default(MatchResult); currentGameProgress = default(GameProgress); matches = new List <MatchResult>(); Results = new OutputLogResult(); }
internal void Reset() { ProducedErrorId = default; MyScreenName = default; OpponentNameWithTagNumber = default; Errors = new List <OutputLogError>(); lastOpponentSystemId = default; currentMatchDeckSubmitted = default; currentMatch = default; CurrentGameProgress = default; matches = new List <MatchResult>(); Results = new OutputLogResult(); Results2 = new OutputLogResult2(); }
internal void UploadOutputLogResult(string userId, OutputLogResult result, OutputLogResult2 result2) { PostResponseSimple("/api/User/LogFileProcessed", userId, new PostOutputLogProcessedRequest(result)); PostResponseSimple("/api/User/LogFileProcessed2", userId, new PostOutputLogProcessedRequest2(result2)); }
private void UploadInfoToServer(bool isLive, string logToSend, Action callbackOnError = null) { if (MainWindowVM.CanUpload == false) { callbackOnError?.Invoke(); return; } //RefreshAccessToken(); FileMonitor.ResetStringBuilder(); Task.Factory.StartNew(() => { try { LogSplitter.GetLastUploadHash(logToSend); //if (api.IsSameLastUploadHash(vm.Account.MtgaHelperUserId, uploadHash)) //{ // vm.WrapNetworkStatus(NetworkStatusEnum.UpToDate, () => Task.Delay(5000).Wait()); // return; //} OutputLogResult result = null; Guid?errorId = null; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(logToSend ?? ""))) { try { MainWindowVM.WrapNetworkStatus(NetworkStatusEnum.ProcessingLogFile, () => { (result, errorId) = Reader.LoadFileContent(MainWindowVM.Account.MtgaHelperUserId, ms).Result; }); if (result.CollectionByDate.Any(i => i.DateTime == default)) { Api.LogErrorRemoteFile(MainWindowVM.Account.MtgaHelperUserId, logToSend, $"_NODATE_outputlog_{DateTime.Now:yyyyMMddHHmmss}.zip"); } if (errorId.HasValue) { Api.LogErrorRemoteFile(MainWindowVM.Account.MtgaHelperUserId, logToSend, $"_parsererror_{errorId}_{DateTime.Now:yyyyMMddHHmmss}.zip"); } } catch (Exception ex) { if (logToSend != null) { Log.Error(ex, "Problem processing log piece ({logSize})", logToSend.Length); Api.LogErrorRemoteFile(MainWindowVM.Account.MtgaHelperUserId, logToSend, $"_unknownError{DateTime.Now:yyyyMMddHHmmss}.zip"); } } } MainWindowVM.WrapNetworkStatus(NetworkStatusEnum.Uploading, () => { CollectionResponse collection = Api.UploadOutputLogResult(MainWindowVM.Account.MtgaHelperUserId, result); MainWindowVM.SetCollection(collection); RefreshRareDraftingInfo(); }); } catch (HttpRequestException ex) { callbackOnError?.Invoke(); Log.Error(ex, "Error:"); MainWindowVM.SetProblemServerUnavailable(); } }); }
public PostOutputLogProcessedRequest(OutputLogResult result) { OutputLogResult = result; }
//public CollectionResponse UploadZippedLogFile(string userId, byte[] fileZipped) //{ // var baseAddress = new Uri(server); // var cookieContainer = new CookieContainer(); // using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer }) // using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) // { // client.Timeout = new TimeSpan(0, 5, 0); // var content = new MultipartFormDataContent(); // cookieContainer.Add(baseAddress, new Cookie("userId", userId)); // content.Add(new ByteArrayContent(fileZipped), "fileCollection", $"{userId}_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.zip"); // try // { // var response = client.PostAsync("/api/User/Collection", content).Result; // response.EnsureSuccessStatusCode(); // var strResponse = response.Content.ReadAsStringAsync().Result; // var parsed = JsonConvert.DeserializeObject<CollectionResponse>(strResponse); // return parsed; // } // catch (AggregateException ex) // { // throw new HttpRequestException("Remote server unavailable", ex); // } // } //} internal CollectionResponse UploadOutputLogResult(string userId, OutputLogResult result) { return(PostResponseSimple <CollectionResponse>("/api/User/LogFileProcessed", new PostOutputLogProcessedRequest(result))); }