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"); }
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; } }