示例#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;
            }
        }