public PrepareSaveToFileFactory(WachtrijRegel voorRegel) { _voorRegel = voorRegel; }
/// <summary> /// Alleen de poll thread start een generatie. /// </summary> private void PollVoorStart() { while (_startThread != null) { Thread.Sleep(100); if (_bezigMetRegel == null && (new[] { State.Onbekend, State.Geinitialiseerd }.Contains(_huidigeStatus))) { var volgendePresentatie = _wachtrij.FirstOrDefault(r => IsRegelCompleet(r)); if (volgendePresentatie != null) { if (!IsRegelCompleet(volgendePresentatie)) continue; lock (this) { if (MagUpdaten(volgendePresentatie, _bezigMetRegel) && _wachtrij.Contains(volgendePresentatie)) { _bezigMetRegel = volgendePresentatie; Start(volgendePresentatie); } } } } } }
private void Start(WachtrijRegel regel) { var opslaanAlsBestandsnaam = Path.GetTempFileName(); Initialiseer(regel.Liturgie.LiturgieRegels, regel.Liturgie, regel.WrappedBuilderData, regel.WrappedBuilderData, opslaanAlsBestandsnaam); Start(); }
private void Opruimen(WachtrijRegel regel) { throw new NotImplementedException(); }
private void GereedMelding(string opgeslagenAlsBestand = null, string foutmelding = null, int? slidesGemist = null) { if (opgeslagenAlsBestand != null && foutmelding == null) AfrondenGelukt(opgeslagenAlsBestand, slidesGemist ?? 0); else { if (foutmelding != null) FoutmeldingSchrijver.Log(foutmelding); AfrondenMislukt(opgeslagenAlsBestand); } lock (this) { _verwerkt.Add(_bezigMetRegel); _bezigMetRegel.Voortgang.Gereed = true; _wachtrij.Remove(_bezigMetRegel); _bezigMetRegel = null; } }
private static bool MagUpdaten(WachtrijRegel regel, WachtrijRegel bezigMetRegel) { return regel != bezigMetRegel && !regel.Voortgang.Gereed; }
private static bool IsRegelCompleet(WachtrijRegel regel) { return regel != null && regel.WrappedBuilderData != null && regel.Liturgie != null && regel.Bestanden.All(b => b.Ontvangen); }
public WachtrijRegel NieuweWachtrijRegel(ConnectTools.Berichten.BuilderData metBuilderData, ConnectTools.Berichten.Liturgie metLiturgie) { var regel = new WachtrijRegel() { Voortgang = new Voortgang(), Token = new Token() { ID = Guid.NewGuid() }, ToegevoegdOp = DateTime.Now, Bestanden = new List<BestandStreamToken>() }; regel.Liturgie = new Wachtrij.Liturgie(metLiturgie, (new PrepareSaveToFileFactory(regel)).MaakBestandStreamToken); regel.WrappedBuilderData = new Wachtrij.BuilderData(metBuilderData, (new PrepareSaveToFileFactory(regel)).MaakBestandStreamToken); lock (this) { regel.Index = _wachtrij.Count() > 0 ? _wachtrij.Max(w => w.Index) + 1 : 1; _wachtrij.Add(regel); } return regel; }