Exemple #1
0
 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;
        }
Exemple #3
0
        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;
        }