public void Update(SkytterResultat resultat) { foreach (var ser in resultat.Serier) { var foundSerie = this.Serier.Find(x => x.Nr == ser.Nr && x.Valid); if (foundSerie != null) { Log.Warning("Fant tidligere Serie {0} {1} Skytternr={1}", foundSerie.Nr, foundSerie.ValidTime, SkytterNr); foundSerie.Valid = false; } ser.Valid = true; ser.ValidTime = DateTime.Now; this.Serier.Add(new Serie(ser)); } }
public List<SkytterResultat> ConvertToLeonLag(List<SkytterResultat> inputFomOrion) { List<SkytterResultat> resColl = new List<SkytterResultat>(); foreach (var res in inputFomOrion) { SkytterResultat newres = new SkytterResultat(); int leonLagnr = res.LagNummer % m_AntallSkiver; newres.LagNummer = leonLagnr; newres.OrionHoldId = res.OrionHoldId; newres.Id = res.Id; if(res.Skytter==null) { continue; } newres.Skytter = new Skytter(res.Skytter); newres.SkytterNr = res.Skytter.SkytterNr; // her må startholdet stå int serieNr = 0; if (res.SkiveNr <= m_AntallSkyttereILaget) { serieNr = 1; } else { int test = res.SkiveNr % this.m_AntallSkyttereILaget; serieNr = res.SkiveNr / this.m_AntallSkyttereILaget; if (test != 0) { serieNr = serieNr + 1; } } newres.SkiveNr = res.SkiveNr % m_AntallSkyttereILaget; if(newres.SkiveNr == 0) { newres.SkiveNr = m_AntallSkyttereILaget; }; var foundSkytter = resColl.FirstOrDefault(x => x.SkytterNr == res.SkytterNr); if (foundSkytter != null) { } else { newres.Skytter = res.Skytter; resColl.Add(newres); foundSkytter = newres; } foreach(var ser in res.Serier) { var nyserie = new Serie(ser); nyserie.Nr = serieNr; var definition = this.m_definition.Find(defno => defno.HoldNr == serieNr); if (definition != null) { if (definition.HoldType == HoldType.FeltHold) { var feltVerdier = new List<Skuddverdi>(); foreach (var value in nyserie.Verdier) { if (value.GetType() == typeof(BaneVerdi)) { var felt=m_SkuddVerdiParser.ParseSkudd(value.ToValue()); feltVerdier.Add(felt); } } nyserie.Verdier = feltVerdier; } } foundSkytter.Serier.Add(nyserie); } } return resColl; }
public void Update(SkytterResultat resultat) { foreach (var ser in resultat.Serier) { var foundSerie = this.Serier.Find(x => x.Nr == ser.Nr && x.Valid); if (foundSerie!=null) { Log.Warning("Fant tidligere Serie {0} {1} Skytternr={1}", foundSerie.Nr, foundSerie.ValidTime, SkytterNr); foundSerie.Valid = false; } ser.Valid = true; ser.ValidTime=DateTime.Now; this.Serier.Add(new Serie(ser)); } }
public List<SkytterResultat> ParseOrionResultOutputFormat(string[] inputLines) { var retColl = new List<SkytterResultat>(); if (inputLines == null) { return retColl; } foreach (var line in inputLines) { string currentLine = line; try { if (currentLine != null) { currentLine = currentLine.Trim(); } if (!string.IsNullOrEmpty(currentLine)) { var elements = line.Split(new char[] { ';' }, StringSplitOptions.None); SkytterResultat currentRes = new SkytterResultat(); if (elements.Length >= 6) { currentRes.OrionHoldId = Convert.ToInt32(elements[holdIdIndex]); currentRes.LagNummer = Convert.ToInt32(elements[lagNrIndex]); currentRes.SkiveNr = Convert.ToInt32(elements[skiveNrIndex]); var currentSKytter = new Skytter(); currentSKytter.Name = elements[NavnIndex]; currentSKytter.Skytterlag = elements[skytterlagIndex]; currentSKytter.Klasse = elements[klasseIndex]; if (elements.Length > totalsumIndex && !string.IsNullOrEmpty(elements[totalsumIndex])) { int totres; if(int.TryParse(elements[totalsumIndex], out totres)) { currentSKytter.TotalSum = totres; } else { throw new FormatException(string.Format("{0} not able to parse totsum index {1} {2}", line, totalsumIndex, elements[totalsumIndex])); } } if (elements.Length > skytterNrIndex && !string.IsNullOrEmpty(elements[skytterNrIndex])) { currentSKytter.SkytterNr = elements[skytterNrIndex]; currentRes.SkytterNr = currentSKytter.SkytterNr; } if (!string.IsNullOrEmpty(currentSKytter.Name)) { currentRes.Skytter = currentSKytter; } var funnetSkytterRes = retColl.FirstOrDefault(x => x.LagNummer == currentRes.LagNummer && x.OrionHoldId == currentRes.OrionHoldId && x.SkytterNr == currentRes.SkytterNr); if (funnetSkytterRes != null) { } else { funnetSkytterRes = currentRes; retColl.Add(currentRes); } int nesteSerieNr = 0; foreach (var serie in funnetSkytterRes.Serier) { if (serie.Nr > nesteSerieNr) { nesteSerieNr = serie.Nr; } } nesteSerieNr = nesteSerieNr + 1; ParseSerier(elements, serieStartIndex, nesteSerieNr, funnetSkytterRes.Serier); } } } catch(Exception e) { Log.Error(e, currentLine); throw; } } return retColl; }