Exemple #1
0
 public Serie(Serie cpy)
 {
     this.Nr = cpy.Nr;
     this.Navn = cpy.Navn;
     this.AntallTellende = cpy.AntallTellende;
     this.Verdier = new List<Skuddverdi>();
     this.Valid = cpy.Valid;
     this.ValidTime = cpy.ValidTime;
     foreach (var foundSerir in cpy.Verdier)
     {
         this.Verdier.Add(foundSerir);
     }
 }
Exemple #2
0
 public Resultat(string skytterNr, Guid skytterId, List<Serie> serier)
 {
     this.Serier = new List<Serie>();
     this.Id = Guid.NewGuid();
     this.SkytterId = skytterId;
     this.SkytterNr = skytterNr;
     if (serier != null)
     {
         foreach (var ser in serier)
         {
             var newser = new Serie(ser);
             this.Serier.Add(newser);
         }
     }
 }
        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;
        }
        private void ParseSerier(string[] elements, int serieStartIndex, int nesteSerieNr, List<Serie> serier)
        {
            if(elements.Length< serieStartIndex)
            {
                return;
            }
            int serieNr = nesteSerieNr;
            int currentSerie = serieStartIndex;
            while (currentSerie<elements.Length)
            {
                Serie next = new Serie()
                {
                    Nr = serieNr
                };

                int skuddnr = 1;
                foreach (char c in elements[currentSerie])
                {
                    var verdire=m_skuddParser.ParseSkudd(c.ToString());
                    verdire.Nr = skuddnr;
                    skuddnr++;
                    next.Verdier.Add(verdire);
                }


                if(next.Verdier.Count>0)
                {
                    serier.Add(next);
                }

                currentSerie++;
                serieNr++;
            }
        }