Пример #1
0
        public LagGeneratorSpec GetSpecFromConfiguration()
        {
            LagGeneratorSpec spec = new LagGeneratorSpec()
            {
                antallHold           = 6,
                antallSkiver         = 12,
                antallskyttereilaget = 2,
                avbrekk         = false,
                MinutesEachTeam = 6,
                StartLagNr      = 1,
                StartTime       = new DateTime(2016, 6, 25, 8, 0, 0),
                OrionHoldId     = 1
            };

            return(spec);
        }
        public void OnWriteInputbutton_OnClickOn(object sender, RoutedEventArgs routedEventArgs)
        {
            if (InputRows.Count == 0)
            {
                return;
            }
            var spec = new LagGeneratorSpec()
            {
                antallHold           = this.m_antallHold,
                antallSkiver         = this.m_antallSkiver,
                antallskyttereilaget = this.m_antallskyttereilaget,
                avbrekk         = this.m_GenererAvbrekk,
                MinutesEachTeam = this.m_minutesEachTeam,
                StartLagNr      = this.m_startLagNr,
                StartTime       = this.m_startTime,
                OrionHoldId     = this.m_orionHoldId
            };
            var      list  = m_lagGeneratorService.GenererLag(InputRows.ToList(), spec);
            DateTime start = new DateTime(
                DateTime.Now.Year,
                DateTime.Now.Month,
                DateTime.Now.Day,
                DateTime.Now.Hour,
                DateTime.Now.Minute,
                DateTime.Now.Second);

            if (this.m_startTime.HasValue)
            {
                start = this.m_startTime.Value;
            }

            LagOppsettViewModel viewmodel = new LagOppsettViewModel(new LagOppsettDataService(), list, m_minutesEachTeam, start);
            var view = new LagOppsettView(viewmodel);

            OpenWindow(view, "Data input");
        }
Пример #3
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;
            }
        }