示例#1
0
        private void report_upload_status(object sender, ProgressChangedEventArgs e)
        {
            bw_status_update status = e.UserState as bw_status_update;

            int percent_uploaded = status.percent_upload;

            if (percent_uploaded > 100)
            {
                percent_uploaded = 100;
            }

            if (percent_uploaded < 0)
            {
                percent_uploaded = 0;
            }

            pb_upload_bar.Value = percent_uploaded;
            if (status.matchs_uploaded > 0)
            {
                lb_uploaded_matchs.Text = status.matchs_uploaded.ToString();
            }
            if (status.builds_uploaded > 0)
            {
                lb_uploaded_builds.Text = status.builds_uploaded.ToString();
            }
            lb_ready_to_upload.Text = (valid_matchs - status.matchs_uploaded).ToString();
            tb_upload_progress.AppendText(status.text_update);
            lb_upload_status_text.Text = string.Format(status.text_update);
        }
示例#2
0
        private void upload_files(object sender, DoWorkEventArgs e)
        {
            if (bw_file_uploader.CancellationPending)
            {
                return;
            }

            bw_status_update status       = new bw_status_update {
            };
            List <string> uploaded_builds = new List <string> {
            };

            Crossout.AspWeb.Models.API.v2.UploadReturn upload_return = Upload.GetPreviousUploads(session.LocalUserID);
            Crossout.AspWeb.Models.API.v2.UploadEntry  upload_entry  = new Crossout.AspWeb.Models.API.v2.UploadEntry {
                uploader_uid = session.LocalUserID, match_list = new List <Crossout.AspWeb.Models.API.v2.MatchEntry> {
                }, build_list = new List <Crossout.AspWeb.Models.API.v2.BuildEntry> {
                }
            };
            Crossout.AspWeb.Models.API.v2.BuildEntry build_entry = new Crossout.AspWeb.Models.API.v2.BuildEntry {
            };
            upload_entry.uploader_uid = session.LocalUserID;
            upload_entry.match_list   = new List <Crossout.AspWeb.Models.API.v2.MatchEntry> {
            };
            upload_entry.build_list   = new List <Crossout.AspWeb.Models.API.v2.BuildEntry> {
            };

            DateTime min_upload_date = DateTime.MaxValue;
            DateTime max_upload_date = DateTime.MinValue;
            int      percent_upload  = 0;

            upload_return = Upload.UploadToCrossoutDB(upload_entry);
            upload_entry  = new Crossout.AspWeb.Models.API.v2.UploadEntry {
                uploader_uid = session.LocalUserID, match_list = new List <Crossout.AspWeb.Models.API.v2.MatchEntry> {
                }, build_list = new List <Crossout.AspWeb.Models.API.v2.BuildEntry> {
                }
            };

            foreach (FileTraceManagment.MatchRecord match in match_history)
            {
                if (bw_file_uploader.CancellationPending)
                {
                    return;
                }

                if (upload_return.uploaded_matches.Contains(match.MatchData.ServerGUID))
                {
                    continue;
                }

                if (match.MatchData.ServerGUID == 0)
                {
                    continue;
                }

                if (match.MatchData.LocalPlayer.UID == 0)
                {
                    continue;
                }

                if (match.MatchData.PlayerRecords.Any(x => x.Value.UID == 0 && x.Value.Bot == 0))
                {
                    continue;
                }

                if (!match.MatchData.MatchRewards.Any())
                {
                    continue;
                }

                if (match.MatchData.WinningTeam == -1)
                {
                    continue;
                }

                if (match.MatchData.MatchType == GlobalData.TEST_SERVER_MATCH)
                {
                    continue;
                }

                if (match.MatchData.MatchType == GlobalData.CUSTOM_MATCH)
                {
                    continue;
                }

                if (match.MatchData.MatchStart < min_upload_date)
                {
                    min_upload_date = match.MatchData.MatchStart;
                }

                if (match.MatchData.MatchEnd > max_upload_date)
                {
                    max_upload_date = match.MatchData.MatchEnd;
                }

                foreach (FileTraceManagment.RoundRecord round in match.MatchData.RoundRecords)
                {
                    foreach (FileTraceManagment.Player player in round.Players)
                    {
                        if (bw_file_uploader.CancellationPending)
                        {
                            return;
                        }

                        if (!build_records.ContainsKey(player.BuildHash))
                        {
                            continue;
                        }

                        if (build_records[player.BuildHash].Parts.Count == 0)
                        {
                            continue;
                        }

                        if (build_records[player.BuildHash].PowerScore == 0)
                        {
                            continue;
                        }

                        if (uploaded_builds.Contains(player.BuildHash))
                        {
                            continue;
                        }

                        uploaded_builds.Add(player.BuildHash);
                        upload_entry.build_list.Add(Upload.PopulateBuildEntry(build_records[player.BuildHash]));
                    }
                }
                upload_entry.match_list.Add(Upload.PopulateMatchEntry(match, translations));

                if (upload_entry.match_list.Count >= GlobalData.UPLOAD_LIST_SIZE)
                {
                    percent_upload         = percent_upload = get_percent_upload(upload_return.uploaded_matches.Count);
                    status.text_update     = string.Format("Uploading {0} matches from {1} to {2}." + Environment.NewLine, upload_entry.match_list.Count, min_upload_date, max_upload_date);
                    status.text_update    += string.Format("Uploading {0} builds." + Environment.NewLine, upload_entry.build_list.Count);
                    status.percent_upload  = percent_upload;
                    status.matchs_uploaded = upload_return.uploaded_matches.Count;
                    status.builds_uploaded = upload_return.uploaded_builds;
                    bw_file_uploader.ReportProgress(0, status);

                    upload_return   = Upload.UploadToCrossoutDB(upload_entry);
                    min_upload_date = DateTime.MaxValue;
                    max_upload_date = DateTime.MinValue;
                    upload_entry    = new Crossout.AspWeb.Models.API.v2.UploadEntry {
                        uploader_uid = session.LocalUserID, match_list = new List <Crossout.AspWeb.Models.API.v2.MatchEntry> {
                        }, build_list = new List <Crossout.AspWeb.Models.API.v2.BuildEntry> {
                        }
                    };
                }
            }

            status.text_update     = string.Format("Uploading {0} matches from {1} to {2}." + Environment.NewLine, upload_entry.match_list.Count, min_upload_date, max_upload_date);
            status.percent_upload  = percent_upload;
            status.matchs_uploaded = upload_return.uploaded_matches.Count;
            status.builds_uploaded = upload_return.uploaded_builds;
            bw_file_uploader.ReportProgress(0, status);

            upload_return = Upload.UploadToCrossoutDB(upload_entry);

            percent_upload         = get_percent_upload(upload_return.uploaded_matches.Count);
            status.text_update     = string.Format("Finished upload of {0} from {1} to {2}." + Environment.NewLine, upload_entry.match_list.Count, min_upload_date, max_upload_date);
            status.percent_upload  = percent_upload;
            status.matchs_uploaded = upload_return.uploaded_matches.Count;
            status.builds_uploaded = upload_return.uploaded_builds;
            bw_file_uploader.ReportProgress(0, status);
        }