Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
 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)));
        }