Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }