Пример #1
0
 public SkiverViewModel(int lagNummer, Skiver skive)
 {
     m_skive          = skive;
     this.LagNummer   = lagNummer;
     this.SkiveNummer = skive.SkiveNummer;
     if (skive.Skytter != null)
     {
         SkytterNr  = skive.Skytter.SkytterNr;
         Name       = skive.Skytter.Name;
         Skytterlag = skive.Skytter.Skytterlag;
         Klasse     = skive.Skytter.Klasse;
     }
 }
Пример #2
0
        public List <Lag> ConvertToLeonLag(List <Lag> inputFomLeon)
        {
            List <Lag> OrionLag = new List <Lag>();

            var inputFomLeonSorted = inputFomLeon.OrderBy(x => x.LagNummer);

            foreach (var res in inputFomLeonSorted)
            {
                res.SkiverILaget = res.SkiverILaget.OrderBy(x => x.SkiveNummer).ToList();
            }

            foreach (var res in inputFomLeonSorted)
            {
                Lag newres = new Lag();
                newres.OrionHoldId = res.OrionHoldId;
                newres.LagTid      = res.LagTid;

                foreach (var skive in res.SkiverILaget)
                {
                    if (skive.SkiveNummer <= 0)
                    {
                        Log.Error("Fant skive uten nr");
                    }
                    int StartLeonLag = res.LagNummer;
                    int Leonserienr  = 0;
                    int LeonLagNr;
                    int leonSkivenr;
                    if (skive.SkiveNummer <= m_AntallSkyttereILaget)
                    {
                        StartLeonLag = res.LagNummer;
                        LeonLagNr    = res.LagNummer;
                        leonSkivenr  = skive.SkiveNummer;
                        Leonserienr  = 1;
                    }
                    else
                    {
                        int brok = (skive.SkiveNummer - 1) / m_AntallSkyttereILaget;
                        Leonserienr = brok + 1;
                        LeonLagNr   = StartLeonLag - brok;
                        leonSkivenr = m_AntallSkyttereILaget - skive.SkiveNummer % this.m_AntallSkyttereILaget;
                    }


                    var funnetLag = OrionLag.FirstOrDefault(x => x.LagNummer == LeonLagNr);
                    if (funnetLag != null)
                    {
                        Log.Trace("Fant lagnr {0} ut fra {1}", LeonLagNr, res.LagNummer);
                    }
                    else
                    {
                        funnetLag        = new Lag(LeonLagNr, res.OrionHoldId, m_AntallSkyttereILaget);
                        funnetLag.LagTid = res.LagTid;
                        OrionLag.Add(funnetLag);
                    }

                    var funnetSkive = funnetLag.SkiverILaget.FirstOrDefault(x => x.SkiveNummer == leonSkivenr);
                    if (funnetSkive == null)
                    {
                        funnetSkive = new Skiver {
                            SkiveNummer = leonSkivenr
                        };
                        if (skive.Skytter != null)
                        {
                            funnetSkive.Skytter     = new Skytter(skive.Skytter);
                            funnetSkive.SkytterGuid = skive.Skytter.Id;
                        }
                        funnetLag.SkiverILaget.Add(funnetSkive);
                    }
                    else
                    {
                        if (funnetSkive.Skytter != null)
                        {
                            if (skive.Skytter != null)
                            {
                                if (skive.Skytter.SkytterNr != funnetSkive.Skytter.SkytterNr)
                                {
                                    Log.Error("Funnet feil i skytter fra lag {0}, skive {1} fant={2} har={3}", res.LagNummer, skive.SkiveNummer, funnetSkive.Skytter.SkytterNr, skive.Skytter.SkytterNr);
                                }
                            }
                        }
                        else
                        {
                            if (skive.Skytter != null)
                            {
                                funnetSkive.Skytter     = new Skytter(skive.Skytter);
                                funnetSkive.SkytterGuid = skive.Skytter.Id;
                            }
                        }
                    }
                }
            }

            return(OrionLag);
        }
Пример #3
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);
        }
Пример #4
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);
        }