Пример #1
0
        public LagPanel(Lag aLag)
        {
            mLag = aLag;
            InitializeComponent();

            BackColor = SystemColors.Control;
        }
Пример #2
0
        private void LoadResults(Lag mSelectedLag)
        {
            if (mSelectedLag == null)
            {
                ChosenLag = null;
                this.OnPropertyChanged("ChosenLag");
                return;
            }

            var nyttLag = m_databaseService.GetLag(mSelectedLag.LagNummer);

            m_chosenLag = new ObservableCollection <ResultRowViewModel>();

            foreach (var skive in nyttLag.SkiverILaget)
            {
                if (skive.SkytterGuid != null)
                {
                    var results = m_databaseService.GetResultsForSkytter(skive.SkytterGuid.Value);

                    m_chosenLag.Add(new ResultRowViewModel(mSelectedLag.LagNummer, skive.SkiveNummer, skive.Skytter, results));
                }
                else
                {
                    m_chosenLag.Add(new ResultRowViewModel(mSelectedLag.LagNummer, skive.SkiveNummer));
                }
            }
            this.OnPropertyChanged("ChosenLag");
        }
Пример #3
0
        private void AddOrUpdate(Lag lag, Match match, DataContext context, MatchImport.ExcelMatch excelMatch, List <Vaapen> våpen)
        {
            var existing = (from l in context.Lag
                            where l.LagId == lag.LagId
                            select l).FirstOrDefault();

            if (existing == null)
            {
                context.Lag.Add(lag);
            }
            else
            {
                existing.Navn         = lag.Navn;
                existing.HemmeligKode = lag.HemmeligKode;
                existing.Farge        = lag.Farge;
            }

            if (!match.DeltakendeLag.Any(x => x.Lag.LagId == lag.LagId))
            {
                var lagIMatch = match.LeggTil(existing ?? lag);

                // Legg til våpen bare på nye lag i matcher (dvs. ikke få flere våper ved flere importer)
                var felle = våpen.Single(x => x.VaapenId == Constants.Våpen.Felle);
                for (int i = 0; i < excelMatch.PrLagFelle.GetValueOrDefault(); i++)
                {
                    lagIMatch.LeggTilVåpen(felle);
                }

                var bombe = våpen.Single(x => x.VaapenId == Constants.Våpen.Bombe);
                for (int i = 0; i < excelMatch.PrLagBombe.GetValueOrDefault(); i++)
                {
                    lagIMatch.LeggTilVåpen(bombe);
                }
            }
        }
Пример #4
0
        private List <Lag> LesFra(ExcelWorksheet excelWorksheet)
        {
            var lagListe = new Dictionary <string, Lag>();

            var sheet = excelWorksheet;

            for (int row = 2; row <= sheet.Dimension.End.Row; row++)
            {
                var lag = new Lag
                {
                    LagId        = sheet.GetValue(ExcelSheet.Lag.LagId, row),
                    Navn         = sheet.GetValue(ExcelSheet.Lag.Navn, row),
                    HemmeligKode = sheet.GetValue(ExcelSheet.Lag.HemmeligKode, row),
                    Farge        = sheet.GetValue(ExcelSheet.Lag.Farge, row),
                    Ikon         = sheet.GetValue(ExcelSheet.Lag.Ikon, row),
                };

                // Siste endring gjelder
                if (lagListe.ContainsKey(lag.LagId))
                {
                    lagListe.Remove(lag.LagId);
                }

                lagListe.Add(lag.LagId, lag);
            }

            return(lagListe.Values.ToList());
        }
Пример #5
0
        public void GenerateFilesButtonBase_OnClick(object sender, RoutedEventArgs routedEventArgs)
        {
            if (string.IsNullOrEmpty(m_filePath))
            {
                return;
            }

            if (!Directory.Exists(m_filePath))
            {
                MessageBox.Show(string.Format("Path Does not exsist{0}", m_filePath), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            Collection <Lag> lagCollection = new Collection <Lag>();

            foreach (var lag in LagKilde)
            {
                var nyttLag = new Lag(lag);
                lagCollection.Add(nyttLag);
            }

            foreach (var skive in Skiver)
            {
                var lagFunnet = lagCollection.FirstOrDefault(x => x.LagNummer == skive.LagNummer);

                var funnetSkive = lagFunnet.SkiverILaget.FirstOrDefault(x => x.SkiveNummer == skive.SkiveNummer);
                if (funnetSkive.Skytter != null)
                {
                    funnetSkive.Skytter = new Skytter(funnetSkive.Skytter);
                }

                funnetSkive.Free = funnetSkive.Free;
            }
            m_databaseService.StoreToDatabase(lagCollection, this.m_filePath);
        }
Пример #6
0
    public static void Main(string[] args)
    {
        StreamReader             lagFil = new StreamReader(args[0], Encoding.Default);
        StreamReader             resFil = new StreamReader(args[1], Encoding.Default);
        Dictionary <string, Lag> tab    = new Dictionary <string, Lag>
                                              (StringComparer.CurrentCultureIgnoreCase);
        List <Lag> list = new  List <Lag>();
        string     s;

        while ((s = lagFil.ReadLine()) != null)
        {
            Lag g = new Lag(s);
            list.Add(g);
            tab.Add(s, g);
        }
        char[] gr = { ' ', '\t' };
        while ((s = resFil.ReadLine()) != null)
        {
            string[] a    = s.Split(gr, StringSplitOptions.RemoveEmptyEntries);
            Lag      lag1 = tab[a[0]];
            Lag      lag2 = tab[a[1]];
            Lag.RegistreraMatch(lag1, lag2, int.Parse(a[2]), int.Parse(a[3]));
        }
        list.Sort();
        foreach (Lag l in list)
        {
            Console.WriteLine(l);
        }
    }
Пример #7
0
        /// <summary>
        /// 更正globaltime
        /// </summary>
        /// <param name="requestTime">c2s时候的localtime</param>
        /// <param name="globalTime">s的</param>
        /// <returns></returns>
        public Lag Sync(int requestTime, int globalTime)
        {
            Lag  res                = new Lag();
            long now                = GetTime();
            int  localTime          = (int)(now - _startTime);
            int  lag                = (int)(localTime - requestTime); // c -> s -> 花费的时间
            int  elapseFromLastSync = localTime - _timeSync;

            if (localTime < requestTime)
            {
                // invalid sync
                return(res);
            }
            if (_timeElapse < 0 || elapseFromLastSync < 0)
            {
                // first time sync
                _timeElapse   = 0;
                _timeShift    = 0;
                _timeSync     = localTime;
                _estimateFrom = globalTime;
                _estimateTo   = globalTime + lag;
            }
            else
            {
                int estimate = globalTime + lag / 2;
                _estimateFrom += elapseFromLastSync;
                _estimateTo   += elapseFromLastSync;
                int estimateLast = _estimateFrom + (_estimateTo - _estimateFrom) / 2;
                _timeElapse += elapseFromLastSync;
                _timeShift  += estimate - estimateLast;
                _timeSync    = localTime;
                if (estimate < _estimateFrom || estimate > _estimateTo)
                {
                    _estimateFrom = globalTime;
                    _estimateTo   = globalTime + lag;
                }
                else
                {
                    if (globalTime > _estimateFrom)
                    {
                        _estimateFrom = globalTime;
                    }
                    if (globalTime + lag < _estimateTo)
                    {
                        _estimateTo = globalTime + lag;
                    }
                }
            }
            res.L = lag / 2;
            if (_timeShift == 0 || _timeElapse <= 0)
            {
                res.E = 0;
            }
            else
            {
                res.E = (double)(_timeShift / _timeElapse);
            }
            return(res);
        }
Пример #8
0
        public static Series <TKey, (TValue, (TKey, TValue)), Lag <TKey, TValue, TCursor> > Lag <TKey, TValue, TCursor>(
            this ContainerSeries <TKey, TValue, TCursor> series, int lag = 1, int step = 1)
            where TCursor : ISpecializedCursor <TKey, TValue, TCursor>
        {
            var cursor = new Lag <TKey, TValue, TCursor>(series.GetContainerCursor(), lag + 1, step);

            return(cursor.Source);
        }
Пример #9
0
        private Lag InsertNewTeam(Lag inputel)
        {
            if (inputel == null)
            {
                return(null);
            }

            var           insert            = new Lag(inputel);
            List <Skiver> feilvalidertSkive = new List <Skiver>();

            foreach (var skive in insert.SkiverILaget)
            {
                if (skive.SkiveNummer <= 0)
                {
                    feilvalidertSkive.Add(skive);
                    Log.Warning("Fant Lag med tomt skivenr ved insett av nytt lag lag={0}", insert.LagNummer);
                    continue;
                }

                if (skive.Skytter != null)
                {
                    if (skive.Skytter.SkytterNr == "0" && string.IsNullOrEmpty(skive.Skytter.Name))
                    {
                        skive.Free        = true;
                        skive.Skytter     = null;
                        skive.SkytterGuid = null;
                    }
                    else
                    {
                        var foundSkytter = m_Skyttere.Find(y => y.SkytterNr == skive.Skytter.SkytterNr);
                        if (foundSkytter != null)
                        {
                            UpdateSkytter(foundSkytter, skive.Skytter);
                            skive.Skytter     = null;
                            skive.SkytterGuid = foundSkytter.Id;
                        }
                        else
                        {
                            m_Skyttere.Add(skive.Skytter);
                            skive.SkytterGuid = skive.Skytter.Id;
                            skive.Skytter     = null;
                        }
                    }
                }
            }

            foreach (var delSKive in feilvalidertSkive)
            {
                insert.SkiverILaget.Remove(delSKive);
            }

            m_LagList.Add(insert);
            return(insert);
        }
Пример #10
0
        private Lag GetLagNr(List <Lag> retVal, int lagNr, int orionHoldId, int maxSkiveriLaget)
        {
            var foudLag = retVal.FirstOrDefault(x => x.LagNummer == lagNr);

            if (foudLag == null)
            {
                foudLag = new Lag(lagNr, orionHoldId, maxSkiveriLaget);
                retVal.Add(foudLag);
            }

            return(foudLag);
        }
Пример #11
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                mLag = null;
                toolTip.RemoveAll();

                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }
Пример #12
0
        static void Load(Client player, string[] cmd, int iarg)
        {
            player.TellSystem(Chat.Pink + "CPU: ", Chat.White + Lag.ServerLoad(true));
            var mu = Lag.ServerMemoryUsage();

            if (mu == null)
            {
                player.TellSystem(Chat.Pink, "Error getting memory status");
            }
            else
            {
                player.TellSystem(Chat.Pink + "Memory: ", Chat.White + mu.Quota.ToString("0.0%") + " " + mu.UsedGB.ToString("0.000") + " / " + mu.TotalGB.ToString("0.000") + " GB");
            }
        }
Пример #13
0
        public List <Lag> GetLag()
        {
            List <Lag> lagRes = new List <Lag>();

            try
            {
                IniDatabase();

                foreach (var lag in m_LagList)
                {
                    var lagdef = m_LagDefinitionList.Find(x => x.LagNummer == lag.LagNummer);
                    Lag cpy    = new Lag(lag);
                    if (lagdef != null)
                    {
                        cpy.LagTid = lagdef.LagTid;
                    }

                    foreach (var skive in lag.SkiverILaget)
                    {
                        if (skive.SkytterGuid != null)
                        {
                            var skytt = m_Skyttere.Find(y => y.Id == skive.SkytterGuid);
                            if (skytt != null)
                            {
                                var skiveFunnet = cpy.SkiverILaget.Find(ak => ak.SkiveNummer == skive.SkiveNummer);
                                if (skiveFunnet != null)
                                {
                                    skiveFunnet.Skytter     = new Skytter(skytt);
                                    skiveFunnet.SkytterGuid = skytt.Id;
                                    skiveFunnet.Skytter.Id  = skytt.Id;
                                }
                            }
                        }
                    }


                    lagRes.Add(cpy);
                }
            }
            catch (Exception e)
            {
                Log.Error(e, "GetLag");
            }

            return(lagRes);
        }
Пример #14
0
    public void AddCurse(float severity, GameObject player) // la sévérité commence autour de 0.2 et fini proche de 10-20 probablement pas trop certain tho
    {
        Effect curse;
        int    randomCurse = Random.Range(0, 4);

        if (AlchemyValues.potionProgress >= 100)
        {
            AlchemyValues.potionProgress = 100;
            curse = new Death();
        }
        else
        {
            switch (randomCurse)
            {
            case 0:
                if (severity >= 0.4)
                {
                    severity = 0.4f;
                }
                curse = new Slow((2 * severity) + 0.05f);
                break;

            case 1:
                curse = new Sheep((4 * severity) + 3);
                break;

            case 2:
                curse = new Pacifsm((1 * severity) + 0.05f);
                break;

            case 3:
                curse = new Lag(3 + (int)severity);
                break;

            default:
                curse = new Sheep(4 * severity);
                break;
            }
        }


        playerEffects[int.Parse(player.name.Substring(1))].Add(curse);
        curse.Invoke(player);

        GameObject.Find("CurseDisplay").GetComponent <CurseDisplayer>().SetCurseDisplay(curse);
    }
Пример #15
0
        public Lag GetLag(int lagNr)
        {
            Lag funnetLag = null;

            try
            {
                IniDatabase();
                var searchLag = m_LagList.Find(x => x.LagNummer == lagNr);
                if (searchLag == null)
                {
                    return(null);
                }
                funnetLag = new Lag(searchLag);
                var lagdef = m_LagDefinitionList.Find(x => x.LagNummer == lagNr);
                if (lagdef != null)
                {
                    funnetLag.LagTid = lagdef.LagTid;
                }
                foreach (var skive in funnetLag.SkiverILaget)
                {
                    if (skive.SkytterGuid != null)
                    {
                        var skytt = m_Skyttere.Find(y => y.Id == skive.SkytterGuid);
                        if (skytt != null)
                        {
                            var skiveFunnet = searchLag.SkiverILaget.Find(ak => ak.SkiveNummer == skive.SkiveNummer);
                            if (skiveFunnet != null)
                            {
                                skiveFunnet.Skytter     = new Skytter(skytt);
                                skiveFunnet.SkytterGuid = skytt.Id;
                                skiveFunnet.Skytter.Id  = skytt.Id;
                            }
                        }
                    }
                }
                return(funnetLag);
            }
            catch (Exception e)
            {
                Log.Error(e, "GetLag");
            }

            return(funnetLag);
        }
Пример #16
0
        public Lag GetLeonLagWithSum(int lag)
        {
            var funnetLag = m_LagList.Find(x => x.LagNummer == lag);
            Lag nyttLag   = null;

            if (funnetLag != null)
            {
                nyttLag = new Lag(funnetLag);

                foreach (var lagskive in funnetLag.SkiverILaget)
                {
                    var nyskive = nyttLag.SkiverILaget.Find(x => x.SkiveNummer == lagskive.SkiveNummer);
                    if (nyskive == null)
                    {
                        continue;
                    }

                    if (lagskive.SkytterGuid != null)
                    {
                        var skytter = m_Skyttere.Find(y => y.Id == lagskive.SkytterGuid);
                        if (skytter == null)
                        {
                            continue;
                        }

                        nyskive.Skytter          = new Skytter(skytter);
                        nyskive.SkytterGuid      = skytter.Id;
                        nyskive.Skytter.TotalSum = 0;
                        var res = m_Resultater.Find(z => z.SkytterId == lagskive.SkytterGuid);
                        if (res != null)
                        {
                            nyskive.Skytter.TotalSum     = res.TotalSum();
                            nyskive.Skytter.TotalFeltSum = res.FeltSum();
                        }
                    }
                }
            }


            return(nyttLag);
        }
Пример #17
0
        public void OpprettNyttLag(Guid matchId, string hemmeligKode, string navn)
        {
            using (var context = _dataContextFactory.Create())
            {
                var match = context.Matcher.Single(x => x.MatchId == matchId);

                var lag = new Lag
                {
                    LagId        = Guid.NewGuid().ToString(),
                    Navn         = navn,
                    HemmeligKode = hemmeligKode
                };

                match.LeggTil(lag);

                context.SaveChanges();
            }

            _tilgangsKontroll.Nullstill();
            _gameStateService.Calculate(); // For å få laget med på resultatlista
        }
Пример #18
0
        public List <Lag> ConvertToOrionLag(List <Lag> inputFomLeon)
        {
            List <Lag> OrionLag = new List <Lag>();


            int StartSkytter = 0;

            foreach (var leonLag in inputFomLeon)
            {
                int orionHoldId = leonLag.OrionHoldId;
                foreach (var skive in leonLag.SkiverILaget)
                {
                    var skivenr = skive.SkiveNummer - 1;

                    int skytterNr = (leonLag.LagNummer - 1) * m_AntallSkyttereILaget + skivenr;

                    int StartLagNr  = skytterNr / m_AntallSkyttereILaget + 1;
                    int forsteSkive = (skytterNr) % m_AntallSkyttereILaget;
                    int hold        = 0;
                    while (hold < m_AntallHold)
                    {
                        int LagNr   = StartLagNr + hold;
                        Lag lag     = this.GetLagNr(OrionLag, LagNr, orionHoldId, m_AntallSkiver);
                        int SkiveNr = (hold * m_AntallSkyttereILaget) + skive.SkiveNummer;
                        //SkiveNr = SkiveNr+ skive.SkiveNummer -1;
                        var newSkive = lag.GetSkiveNr(SkiveNr);
                        if (skive.Skytter != null)
                        {
                            newSkive.Skytter = new Skytter(skive.Skytter);
                        }

                        hold++;
                        Log.Info("Convert from {0} {1} to {2} {3}", leonLag.LagNummer, skive.SkiveNummer, lag.LagNummer, SkiveNr);
                    }
                }
            }

            return(OrionLag);
        }
Пример #19
0
        public static Lag SettOppEtLagMedDeltakere(int lagIndex, int antallDeltakere, string prefix = "Lag")
        {
            var lag = new Lag
            {
                LagId        = prefix + string.Format("{0}", lagIndex),
                Navn         = prefix + string.Format("Navn{0}", lagIndex),
                Farge        = prefix + string.Format("Farge{0}", lagIndex),
                HemmeligKode = prefix + string.Format("HemmeligKode{0}", lagIndex),
                Ikon         = prefix + string.Format("Ikon{0}.gif", lagIndex),
            };

            //lag.HemmeligKode = lag.LagId;

            for (int i = 1; i <= antallDeltakere; i++)
            {
                lag.LeggTilDeltaker(new Deltaker(string.Format("{0}-{1}", lag.LagId, i), string.Format("{0}-{1}Navn", lag.LagId, i))
                {
                    Kode = "Kode" + lagIndex + "_" + i
                });
            }

            return(lag);
        }
Пример #20
0
 public LagViewModel(Lag lag)
 {
     m_lag = lag;
 }
Пример #21
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);
        }
Пример #22
0
 public int Add(Lag lag)
 {
     throw new NotImplementedException();
 }
Пример #23
0
        public bool UpdateDataBaseFromLeon(List <Lag> inputFomLeon, bool initCom)
        {
            try
            {
                bool flush = false;

                if (initCom)
                {
                    this.m_LagList.Clear();
                    this.m_Skyttere.Clear();
                    this.m_Resultater.Clear();
                    if (inputFomLeon.Count > 0)
                    {
                        foreach (var inputel in inputFomLeon)
                        {
                            Lag currentLag = null;
                            var foundTeam  = this.m_LagList.Find(x => x.LagNummer == inputel.LagNummer);
                            if (foundTeam != null)
                            {
                                currentLag = UpdateTeam(foundTeam, inputel);
                                flush      = true;
                            }
                            else
                            {
                                currentLag = InsertNewTeam(inputel);
                                flush      = true;
                            }
                        }

                        if (flush)
                        {
                            FlushDatabase();
                        }

                        return(true);
                    }

                    return(false);
                }

                if (inputFomLeon.Count < 10)
                {
                    var inputel    = inputFomLeon[0];
                    var foundTeam  = this.m_LagList.Find(x => x.LagNummer == inputel.LagNummer);
                    Lag currentLag = null;
                    if (foundTeam != null)
                    {
                        currentLag = UpdateTeam(foundTeam, inputel);
                        flush      = true;
                    }
                    else
                    {
                        currentLag = InsertNewTeam(inputel);
                        flush      = true;
                    }

                    foreach (var skive in inputel.SkiverILaget)
                    {
                        UpdateSkytterByOrionId(skive.Skytter);
                        UpdateSkytterTotalSum(skive.Skytter);
                    }

                    if (flush)
                    {
                        FlushDatabase();
                    }

                    return(true);
                }

                return(false);
            }
            catch (Exception e)
            {
                Log.Error(e, "Error");
                return(false);
            }
        }
Пример #24
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);
        }
Пример #25
0
        public List <Lag> GenererLag(List <InputData> data, LagGeneratorSpec spec)
        {
            try
            {
                List <Lag> retVal = new List <Lag>();
                if (data == null)
                {
                    return(retVal);
                }

                if (data.Count == 0)
                {
                    return(retVal);
                }

                int StartSkytter = 0;
                int linje        = 0;
                foreach (var skytterIn in data)
                {
                    linje++;
                    int hold        = 0;
                    int LagNr       = StartSkytter / spec.antallskyttereilaget + 1;
                    int forsteSkive = StartSkytter % spec.antallskyttereilaget + 1;
                    while (hold < spec.antallHold)
                    {
                        Lag lag = this.GetLagNr(retVal, LagNr, spec.OrionHoldId, spec.antallSkiver);

                        int SkiveNr = (hold * spec.antallskyttereilaget) + forsteSkive;
                        if (lag == null)
                        {
                            Log.Error(string.Format(" Fant ikke Lag {0} linje={1}", LagNr, linje));
                            break;
                        }
                        var skive = lag.FinnLedigSkive(SkiveNr);
                        if (skive == null)
                        {
                            Log.Error(string.Format(" Fant ikke ledig skive ={0} Lag={1} linje={2}", SkiveNr, LagNr, linje));
                            break;
                        }
                        skive.Skytter = new Skytter()
                        {
                            Klasse       = skytterIn.Klasse,
                            Name         = skytterIn.Name,
                            Skytterlag   = skytterIn.Skytterlag,
                            SkytterNr    = skytterIn.SkytterNr.ToString(),
                            SkytterlagNr = skytterIn.SkytterlagNr
                        };
                        if (spec.avbrekk)
                        {
                            LagNr = LagNr + 2;
                        }
                        else
                        {
                            LagNr = LagNr + 1;
                        }

                        hold++;
                    }

                    StartSkytter++;
                }


                return(retVal);
            }
            catch (Exception e)
            {
                Log.Error(e, "Error");
                throw;
            }
        }
Пример #26
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);
        }
Пример #27
0
 public int Add(Lag lag)
 {
     entities.Lag.AddObject(lag);
     entities.SaveChanges();
     return lag.Id;
 }