Beispiel #1
0
 private void UpdateSkytter(Skytter foundSkytter, Skytter skytter)
 {
     Log.Info("Updating skytter with number={0}", foundSkytter.SkytterNr);
     foundSkytter.Name         = UpdateString(skytter.Name);
     foundSkytter.Klasse       = UpdateString(skytter.Klasse);
     foundSkytter.Skytterlag   = UpdateString(skytter.Skytterlag);
     foundSkytter.SkytterlagNr = skytter.SkytterlagNr;
 }
Beispiel #2
0
        private void UpdateSkytterTotalSum(Skytter skytter)
        {
            if (skytter == null)
            {
                return;
            }

            var res = m_Resultater.FirstOrDefault(x => x.SkytterNr == skytter.SkytterNr);

            if (res != null)
            {
                skytter.TotalSum = res.TotalSum();
            }
        }
Beispiel #3
0
        private bool UpdateSkytterByOrionId(Skytter skytter)
        {
            if (skytter == null)
            {
                return(false);
            }

            Skytter found = null;

            if (!string.IsNullOrEmpty(skytter.SkytterNr))
            {
                found = m_Skyttere.FirstOrDefault(x => x.SkytterNr == skytter.SkytterNr);
            }
            else
            {
                Log.Warning("Skytter named {0} missing SkytterId {0} {1} {2}", skytter.Name, skytter.Skytterlag, skytter.SkytterNr);
                found = m_Skyttere.FirstOrDefault(x => x.Name == skytter.Name && x.Skytterlag == skytter.Skytterlag);
                if (found != null)
                {
                    Log.Warning("Skytter named {0} missing SkytterId {0} {1} {2} found By Name", skytter.Name, skytter.Skytterlag, skytter.SkytterNr);
                }
            }

            if (found == null)
            {
                found            = new Skytter(skytter);
                found.Klasse     = UpdateString(skytter.Klasse);
                found.Name       = UpdateString(skytter.Name);
                found.Skytterlag = UpdateString(skytter.Skytterlag);
                m_Skyttere.Add(found);
                return(true);
            }
            else
            {
                found.Klasse       = UpdateString(skytter.Klasse);
                found.Name         = UpdateString(skytter.Name);
                found.Skytterlag   = UpdateString(skytter.Skytterlag);
                found.SkytterNr    = UpdateString(skytter.SkytterNr);
                found.SkytterlagNr = skytter.SkytterlagNr;
                return(true);
            }
        }
Beispiel #4
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);
        }
Beispiel #5
0
        public List <Lag> ParseLeonOutputFormat(string[] inputLines)
        {
            var retColl = new List <Lag>();

            if (inputLines == null)
            {
                return(retColl);
            }


            foreach (var line in inputLines)
            {
                string currentLine = line;
                if (currentLine != null)
                {
                    currentLine = currentLine.Trim();
                }

                if (!string.IsNullOrEmpty(currentLine))
                {
                    var elements   = line.Split(new char[] { ';' }, StringSplitOptions.None);
                    Lag currentLag = new Lag();

                    if (elements.Length >= 6)
                    {
                        currentLag.OrionHoldId = Convert.ToInt32(elements[holdIdIndex]);
                        currentLag.LagNummer   = Convert.ToInt32(elements[lagNrIndex]);
                        var Skive = new Skiver();
                        Skive.SkiveNummer = Convert.ToInt32(elements[skiveNrIndex]);
                        currentLag.SkiverILaget.Add(Skive);

                        var currentSKytter = new Skytter();
                        currentSKytter.Name = elements[NavnIndex];
                        if (!string.IsNullOrEmpty(currentSKytter.Name))
                        {
                            currentSKytter.Name = currentSKytter.Name.Trim();
                        }

                        currentSKytter.Skytterlag = elements[skytterlagIndex];
                        if (!string.IsNullOrEmpty(currentSKytter.Skytterlag))
                        {
                            currentSKytter.Skytterlag = currentSKytter.Skytterlag.Trim();
                        }

                        currentSKytter.Klasse = elements[klasseIndex];
                        if (!string.IsNullOrEmpty(currentSKytter.Klasse))
                        {
                            currentSKytter.Klasse = currentSKytter.Klasse.Trim();
                        }

                        if (elements.Length > 6 && !string.IsNullOrEmpty(elements[totalsumIndex]))
                        {
                            currentSKytter.TotalSum = Convert.ToInt32(elements[totalsumIndex]);
                        }

                        if (elements.Length > skytterNrIndex && !string.IsNullOrEmpty(elements[skytterNrIndex]))
                        {
                            currentSKytter.SkytterNr = elements[skytterNrIndex];
                            if (!string.IsNullOrEmpty(currentSKytter.SkytterNr))
                            {
                                currentSKytter.SkytterNr = currentSKytter.SkytterNr.Trim();
                            }
                        }
                        if (!string.IsNullOrEmpty(currentSKytter.Name) && !string.IsNullOrEmpty(currentSKytter.SkytterNr))
                        {
                            Skive.Skytter = currentSKytter;
                        }

                        var funnetLag = retColl.FirstOrDefault(x => x.LagNummer == currentLag.LagNummer && x.OrionHoldId == currentLag.OrionHoldId);
                        if (funnetLag != null)
                        {
                            var funnetSkive = funnetLag.SkiverILaget.FirstOrDefault(x => x.SkiveNummer == Skive.SkiveNummer);
                            if (funnetSkive != null)
                            {
                                if (funnetSkive.Skytter != null)
                                {
                                    if (Skive.Skytter != null)
                                    {
                                        Log.Error("Skive already imported {0} Changing skytter from {1} to {2}", funnetSkive.SkiveNummer, funnetSkive.Skytter.Name, Skive.Skytter.Name);
                                        funnetSkive.Skytter = Skive.Skytter;
                                    }
                                    else
                                    {
                                        Log.Error("Skive already imported {0} Removing skytter {1} ", funnetSkive.SkiveNummer, funnetSkive.Skytter.Name);
                                        funnetSkive.Skytter = null;
                                    }
                                }
                                else
                                {
                                    if (Skive.Skytter != null)
                                    {
                                        Log.Error("Skive already imported {0} setting skytter from null to {1}", funnetSkive.SkiveNummer, Skive.Skytter.Name);
                                        funnetSkive.Skytter = Skive.Skytter;
                                    }
                                }
                            }
                            else
                            {
                                funnetLag.SkiverILaget.Add(Skive);
                            }
                        }
                        else
                        {
                            retColl.Add(currentLag);
                        }
                    }
                }
            }
            return(retColl);
        }
Beispiel #6
0
        private Lag UpdateTeam(Lag foundTeam, Lag inputlag)
        {
            foundTeam.LagTid         = inputlag.LagTid;
            foundTeam.MaxSkiveNummer = inputlag.MaxSkiveNummer;
            foundTeam.OrionHoldId    = inputlag.OrionHoldId;
            foreach (var skive in inputlag.SkiverILaget)
            {
                if (skive.SkiveNummer <= 0)
                {
                    Log.Warning("Fant Lag med tomt skivenr");
                    continue;
                }

                var foundSKive = foundTeam.SkiverILaget.Find(x => x.SkiveNummer == skive.SkiveNummer);
                if (foundSKive == null)
                {
                    Log.Info("Fant ikke skive nr {0} lag til lag nr {1}", skive.SkiveNummer, foundTeam.LagNummer);
                    foundSKive = new Skiver(skive);
                    foundTeam.SkiverILaget.Add(foundSKive);
                }

                if (skive.Skytter != null)
                {
                    if (skive.Skytter.SkytterNr == "0" && string.IsNullOrEmpty(skive.Skytter.Name))
                    {
                        foundSKive.Free        = true;
                        foundSKive.Skytter     = null;
                        foundSKive.SkytterGuid = null;
                    }
                    else
                    {
                        var foundSkytter = m_Skyttere.Find(y => y.SkytterNr == skive.Skytter.SkytterNr);
                        if (foundSkytter != null)
                        {
                            UpdateSkytter(foundSkytter, skive.Skytter);
                            foundSKive.Skytter     = null;
                            foundSKive.SkytterGuid = foundSkytter.Id;
                        }
                        else
                        {
                            var nySkytter = new Skytter(skive.Skytter);
                            foundSKive.Skytter     = null;
                            foundSKive.SkytterGuid = nySkytter.Id;
                            m_Skyttere.Add(nySkytter);
                            Log.Info("La til ny skytter Lag={0} skive{1} navn={2}", foundTeam.LagNummer, foundSKive.SkiveNummer, nySkytter.Name);
                        }
                    }
                }
                else
                {
                    if (foundSKive.SkytterGuid != null)
                    {
                        var foundSkytter = m_Skyttere.Find(y => y.Id == foundSKive.SkytterGuid);
                        if (foundSkytter != null)
                        {
                            Log.Error(
                                "Remove skytter = {0} nr={1} from Lag={2} skive={3}",
                                foundSkytter.Name,
                                foundSkytter.SkytterNr,
                                foundTeam.LagNummer,
                                foundSKive.SkiveNummer);
                        }

                        foundSKive.Skytter = null;
                    }

                    foundSKive.SkytterGuid = null;
                }

                //var newSKive = new Skiver(skive);

                //foundTeam.SkiverILaget.Add(newSKive);
            }

            return(foundTeam);
        }
        public ResultRowViewModel(int lagNummer, int skiveNummer, Skytter coSkytter = null, List <Resultat> result = null)
        {
            this.LagNummer   = lagNummer;
            this.SkiveNummer = skiveNummer;
            if (coSkytter != null)
            {
                this.Name       = coSkytter.Name;
                this.SkytterNr  = coSkytter.SkytterNr;
                this.Klasse     = coSkytter.Klasse;
                this.Skytterlag = coSkytter.Skytterlag;
            }

            if (result != null && result.Count > 0)
            {
                foreach (var res in result)
                {
                    int i = 0;

                    foreach (var serie in res.Serier)
                    {
                        if (!serie.Valid)
                        {
                            continue;
                        }

                        i++;
                        if (i == 1)
                        {
                            int sum = res.TotalSum();
                            this.Res1 = sum.ToString();
                        }
                        else
                        {
                            int sum  = res.FeltSum(i);
                            int sum2 = res.FeltInnerSum(i);
                            if (i == 2)
                            {
                                this.Res2 = string.Format("{0}/{1}", sum, sum2);
                            }
                            else if (i == 3)
                            {
                                this.Res3 = string.Format("{0}/{1}", sum, sum2);
                            }
                            else if (i == 4)
                            {
                                this.Res4 = string.Format("{0}/{1}", sum, sum2);
                            }
                            else if (i == 5)
                            {
                                this.Res5 = string.Format("{0}/{1}", sum, sum2);
                            }
                            else if (i == 6)
                            {
                                this.Res6 = string.Format("{0}/{1}", sum, sum2);
                            }
                        }
                    }
                    int totSum      = 0;
                    int totSumInner = 0;
                    totSum      = totSum + res.FeltSum();
                    totSumInner = totSumInner + res.FeltInnerSum();
                    this.Total  = string.Format("{0}/{1}", totSum, totSumInner);
                }
            }
        }