Esempio n. 1
0
        public void ConvertLog(IEncounterLog herosLog, SharedValues sharedValues)
        {
            herosLog.Name            = sharedValues.Target;
            herosLog.EncounterDate   = sharedValues.LogStart.ToLocalTime();
            herosLog.EncounterResult = sharedValues.Success ? "Success" : "Fail";

            var time = TimeSpan.FromSeconds(sharedValues.FightDuration);

            herosLog.EncounterTime = new TimeSpan(time.Days, time.Hours, time.Minutes, time.Seconds);

            foreach (var sharedValuesPlayerValue in sharedValues.PlayerValues)
            {
                var characterStats = new CharacterStatistics()
                {
                    Name        = sharedValuesPlayerValue.Character,
                    DisplayName = sharedValuesPlayerValue.Account.Substring(1),
                    BossDps     = Math.Round(sharedValuesPlayerValue.DPSBoss),
                    BossDamage  = sharedValuesPlayerValue.TotalBoss,
                    AllDps      = Math.Round(sharedValuesPlayerValue.DPSAll),
                    AllDamage   = sharedValuesPlayerValue.TotalAll,
                    Down        = sharedValuesPlayerValue.Down.ToString(),
                    Role        = sharedValuesPlayerValue.Profession,
                };

                if (sharedValuesPlayerValue.Dead &&
                    sharedValuesPlayerValue.FightDurationPlayer < sharedValues.FightDuration)
                {
                    var percent    = (sharedValuesPlayerValue.FightDurationPlayer / sharedValues.FightDuration * 100).ToString("0");
                    var timeOfDead = TimeSpan.FromSeconds(sharedValuesPlayerValue.FightDurationPlayer);
                    characterStats.Dead = $"{timeOfDead.Minutes}m {timeOfDead.Seconds}s ({percent}% alive)";
                }

                AddSkills(sharedValuesPlayerValue.Skills, characterStats);

                herosLog.CharacterStatistics.Add(characterStats);
            }

            herosLog.BossDps =
                Math.Round(sharedValues.PlayerValues.Sum(i => i.TotalBoss) / sharedValues.FightDuration);

            herosLog.AllDps =
                Math.Round(sharedValues.PlayerValues.Sum(i => i.TotalAll) / sharedValues.FightDuration);
        }
Esempio n. 2
0
        public void Upload(IEncounterLog log)
        {
            var restClient  = new RestClient("https://www.dps.report");
            var restRequest = new RestRequest("/uploadContent?json=1");

            restRequest.Method = Method.POST;
            restRequest.AddFile("file", log.EvtcPath);

            var restResponse = restClient.Execute(restRequest);

            if (restResponse.ResponseStatus == ResponseStatus.Completed && restResponse.StatusCode == HttpStatusCode.OK)
            {
                log.ReportUploadComplete = true;
                dynamic json = SimpleJson.DeserializeObject(restResponse.Content);
                log.ReportUrl = json["permalink"].ToString();
                _messageBus.SendMessage(new UploadedEncounterMessage(log));
            }
            else
            {
                log.ReportUploadComplete = false;
                _messageBus.SendMessage(new LogMessage($"{restResponse.StatusCode} - {restResponse.Content}"));
            }
        }
Esempio n. 3
0
        public void Upload(IEncounterLog log)
        {
            var restClient  = new RestClient("https://www.gw2raidar.com");
            var restRequest = new RestRequest("/api/upload.json");

            restRequest.Method = Method.POST;
            restRequest.AddFile("file", log.EvtcPath);
            restRequest.AddParameter("username", Settings.Default.RaidarUser);
            restRequest.AddParameter("password", Settings.Default.RaidarPassword.Unprotect());

            var restResponse = restClient.Execute(restRequest);

            if (restResponse.ResponseStatus == ResponseStatus.Completed && restResponse.StatusCode == HttpStatusCode.OK)
            {
                log.RaidarUploadComplete = true;
                _messageBus.SendMessage(new UploadedReportMessage(log));
            }
            else
            {
                log.RaidarUploadComplete = false;
                _messageBus.SendMessage(new LogMessage($"{restResponse.StatusCode} - {restResponse.Content}"));
            }
        }
 public UploadedEncounterMessage(IEncounterLog encounterLog)
 {
     EncounterLog = encounterLog;
 }
 public UpdatedEncounterMessage(IEncounterLog encounterLog)
 {
     EncounterLog = encounterLog;
 }
Esempio n. 6
0
 public NewEncounterMessage(IEncounterLog encounterLog)
 {
     EncounterLog = encounterLog;
 }
Esempio n. 7
0
 public void CreateRaidHerosFile(IEncounterLog encounterLog)
 {
     _encounterLog = encounterLog;
     _logfileParser.ParseLogfile(encounterLog.Name, encounterLog.EvtcPath, GetOutputDir(_directoryName), _directoryName);
 }
Esempio n. 8
0
 public UploadedReportMessage(IEncounterLog encounterLog)
 {
     EncounterLog = encounterLog;
 }
Esempio n. 9
0
 public void Upload(IEncounterLog log)
 {
     DiscClient.client.SendMessageAsync(DiscClient.channel, null, false, embed);
 }
Esempio n. 10
0
 public void AddReport(IEncounterLog log)
 {
     embed.AddField(log.Name, log.ReportUrl, false);
 }