public List <OrionResult> GetOrionResult(OrionViewModel orionViewModel) { if (this.CheckForNewFile() == false) { return(null); } var filename = GetFilename(); var updFile = this.GetUPDFilename(); var allLines = m_fileHandler.ReadAllLines(filename); var id = "NoId"; var result = new List <OrionResult>(); foreach (var line in allLines) { if (string.IsNullOrWhiteSpace(line)) { continue; } var or = OrionResult.ParseFromOrion(line, orionViewModel); id = or.OrionId.ToString(); if (or.ShooterId > 0) { DatabaseApi.Save(or); result.Add(or); } } var dbroot = DatabaseApi.GetActiveCompetition(); var backupPath = Path.Combine(dbroot, "Backup"); if (!Directory.Exists(backupPath)) { Directory.CreateDirectory(backupPath); } var bkupfilename = Path.Combine(backupPath, string.Format("{0}_Orion_{1}_kmonew.txt", DateTime.Now.ToString("yyyyMMdd-HHmmss"), id)); try { File.Move(filename, bkupfilename); File.Delete(updFile); } catch (Exception ex) { Log.Error(ex, "Unable to move to backup: " + filename); } return(result); }
private static ResultType GetResultType(OrionResult result, OrionViewModel orionViewModel) { if (orionViewModel == null) { return(ResultType.Felt); } foreach (var rangeViewModel in orionViewModel.RangeViews) { if (rangeViewModel.FirstTarget >= result.Target && rangeViewModel.LastTarget <= result.Target) { return(rangeViewModel.ResultType); } } return(ResultType.Felt); }
public static OrionResult ParseFromOrion(string orionResultLine, OrionViewModel orionViewModel) { if (string.IsNullOrWhiteSpace(orionResultLine)) { Log.Error("Empty orion result line"); return(null); } var tokens = orionResultLine.Split(';'); var result = new OrionResult { OrionId = TryGetIntFromToken(tokens[0], "OrionId"), Team = TryGetIntFromToken(tokens[1], "Team"), Target = TryGetIntFromToken(tokens[2], "Target"), ShooterId = TryGetIntFromToken(tokens[3], "ShooterId"), Name = tokens[4].Trim(), ClubName = tokens[5].Trim(), Class = tokens[6].Trim(), TotalSum = TryGetIntFromToken(tokens[7], "TotalSum") }; if (tokens.Length > 8) { result.Series = new List <string>(); for (int c = 8; c < tokens.Length; c++) { if (tokens[c].Contains("#")) { ResultType resultType = GetResultType(result, orionViewModel); result.Series.Add(ParsePegasus(tokens[c], resultType)); } else { result.Series.Add(tokens[c]); } } } result.AllSeries = string.Join(";", result.Series); return(result); }
////public static int GetNextOrionAndRange(OrionSetupViewModel orionSetup, OrionResult orionResult, out int nextRangeId) ////{ //// nextRangeId = 0; //// var currentRangeId = GetRangeIdFromResult(orionSetup, orionResult); //// foreach (var orionViewModel in orionSetup.OrionViewModels) //// { //// if (orionViewModel.OrionId < orionResult.OrionId) //// { //// continue; //// } //// if (orionViewModel.OrionId == orionResult.OrionId) //// { //// foreach (var rangeViewModel in orionViewModel.RangeViews) //// { //// if (rangeViewModel.RangeId > currentRangeId && rangeViewModel.RangeType == RangeType.Shooting) //// { //// return rangeViewModel.RangeId; //// } //// } //// } //// if (orionViewModel.OrionId > orionResult.OrionId) //// { //// foreach (var rangeViewModel in orionViewModel.RangeViews) //// { //// if (rangeViewModel.RangeType == RangeType.Shooting) //// { //// nextRangeId = rangeViewModel.RangeId; //// return orionViewModel.OrionId; //// } //// } //// } //// } //// return 0; ////} public static OrionResult GetResultForThisRange(System.Collections.Generic.IEnumerable <OrionResult> allResultsForShooter, OrionViewModel orion, RangeViewModel rangeViewModel) { var resultForThisOrion = allResultsForShooter.Where(r => r.OrionId == orion.OrionId); foreach (var orionResult in resultForThisOrion) { if (orionResult.Target >= rangeViewModel.FirstTarget && orionResult.Target <= rangeViewModel.LastTarget) { return(orionResult); } } return(null); }