Exemplo n.º 1
0
        static void Main(string[] args)
        {
            try {
                var builder = new ContainerBuilder();
                Bootstrap.SetDefault(builder);

                using (var container = builder.Build())
                {
                    // Start de main programma loop
                    new ProgramInternals(container.Resolve <Func <string, Form> >())
                    .Run(args.Length >= 1 ? args[0] : null);
                }
            }
            catch (Exception Exc)
            {
                FoutmeldingSchrijver.Log(Exc);
                throw;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Genereer een presentatie aan de hand van meegegeven Liturgie en Template voor de Liederen
        /// </summary>
        public void GeneratePresentation()
        {
            _token = new CancellationTokenSource();
            StatusWijziging?.Invoke(Status.Gestart, null, null);

            var succes       = true;
            var slidesGemist = 0;
            var exception    = string.Empty;

            // Hier pas COM calls want dit is de juiste thread
            using (var applicatie = _mppFactory.GetApplication())
                //Creeer een nieuwe lege presentatie volgens de template thema (toon scherm zodat bij fout nog iets te zien is)
                using (var presentatie = applicatie.Open(_dependentFileList.FullTemplateTheme, metWindow: true))
                {
                    //Minimaliseer scherm
                    applicatie.MinimizeInterface();

                    try
                    {
                        // Voor elke regel in de liturgie moeten sheets worden gemaakt (als dat mag)
                        // Gebruik een list zodat we de plek weten voor de progress
                        var hardeLijst = _liturgie.Where(l => l.VerwerkenAlsSlide).ToList();
                        foreach (var regel in hardeLijst)
                        {
                            var lijstTotaal = _liturgie.Count();
                            var bijItem     = hardeLijst.IndexOf(regel);

                            var resultaat = _regelVerwerker[regel.VerwerkenAlsType]
                                            .Init(applicatie, presentatie, _mppFactory, _liedFormatter, _buildSettings, _buildDefaults, _dependentFileList, _liturgie, _lengteBerekenaar, (p) => Voortgang?.Invoke(lijstTotaal, bijItem, p))
                                            .Verwerk(regel, Volgende(_liturgie, regel), _token.Token);
                            slidesGemist += resultaat.SlidesGemist;

                            if (_stop)
                            {
                                break;
                            }
                        }

                        //sla de presentatie op
                        presentatie.OpslaanAls(_opslaanAls);
                    }
                    catch (Exception ex)
                    {
                        succes    = false;
                        exception = ex.ToString();
                        FoutmeldingSchrijver.Log(exception);
                    }
                }
            _token = null;

            // dispose voordat we een statuswijziging hebben, anders is de applicatie niet op tijd gesloten

            if (succes)
            {
                // gereedmelding geven
                if (_stop)
                {
                    StatusWijziging?.Invoke(Status.StopFout, "Tussentijds gestopt door de gebruiker.", null);
                }
                else
                {
                    StatusWijziging?.Invoke(Status.StopGoed, null, slidesGemist);
                }
            }
            else
            {
                StatusWijziging?.Invoke(Status.StopFout, exception, null);
            }
        }
        private static Instellingen LoadFromJsonFile(IFileOperations fileManager, string instellingenFile, string maskFile)
        {
            try {
                SaveInstellingen saveInstellingen;

                if (!fileManager.FileExists(instellingenFile))
                {
                    return(null);
                }

                using (var file = new StreamReader(fileManager.FileReadStream(instellingenFile)))
                {
                    var serializer = new JsonSerializer();
                    saveInstellingen = (SaveInstellingen)serializer.Deserialize(file, typeof(SaveInstellingen));
                }
                if (saveInstellingen == null)
                {
                    return(null);
                }
                var instellingen = new Instellingen()
                {
                    DatabasePad                       = saveInstellingen.DatabasePad ?? Instellingen.Default.DatabasePad,
                    BijbelPad                         = saveInstellingen.BijbelPad ?? Instellingen.Default.BijbelPad,
                    TemplateTheme                     = saveInstellingen.TemplateTheme ?? Instellingen.Default.TemplateTheme,
                    TemplateLied                      = saveInstellingen.TemplateLied ?? Instellingen.Default.TemplateLied,
                    TemplateBijbeltekst               = saveInstellingen.TemplateBijbeltekst ?? Instellingen.Default.TemplateBijbeltekst,
                    TekstChar_a_OnARow                = saveInstellingen.TekstChar_a_OnARow ?? Instellingen.Default.TekstChar_a_OnARow,
                    TekstFontName                     = saveInstellingen.TekstFontName ?? Instellingen.Default.TekstFontName,
                    TekstFontPointSize                = saveInstellingen.TekstFontPointSize ?? Instellingen.Default.TekstFontPointSize,
                    RegelsPerLiedSlide                = saveInstellingen.RegelsPerLiedSlide ?? Instellingen.Default.RegelsPerLiedSlide,
                    RegelsPerBijbeltekstSlide         = saveInstellingen.RegelsPerBijbeltekstSlide ?? Instellingen.Default.RegelsPerBijbeltekstSlide,
                    Een2eCollecte                     = saveInstellingen.Een2eCollecte ?? Instellingen.Default.Een2eCollecte,
                    DeTekstVraag                      = saveInstellingen.DeTekstVraag ?? Instellingen.Default.DeTekstVraag,
                    DeLezenVraag                      = saveInstellingen.DeLezenVraag ?? Instellingen.Default.DeLezenVraag,
                    GebruikDisplayNameVoorZoeken      = saveInstellingen.GebruikDisplayNameVoorZoeken ?? Instellingen.Default.GebruikDisplayNameVoorZoeken,
                    ToonBijbeltekstenInLiturgie       = saveInstellingen.ToonBijbeltekstenInLiturgie ?? Instellingen.Default.ToonBijbeltekstenInLiturgie,
                    ToonGeenVersenBijVolledigeContent = saveInstellingen.ToonGeenVersenBijVolledigeContent ?? Instellingen.Default.ToonGeenVersenBijVolledigeContent,
                    StandaardTeksten                  = saveInstellingen.StandaardTeksten ?? Instellingen.Default.StandaardTeksten,
                    VersOnderbrekingOverSlidesHeen    = saveInstellingen.VersOnderbrekingOverSlidesHeen ?? Instellingen.Default.VersOnderbrekingOverSlidesHeen,
                    ToonAlsLiedOnderbrokenWordt       = saveInstellingen.ToonAlsLiedOnderbrokenWordt ?? Instellingen.Default.ToonAlsLiedOnderbrokenWordt,
                };

                if (!fileManager.FileExists(maskFile))
                {
                    return(instellingen);
                }

                using (var file = new StreamReader(fileManager.FileReadStream(maskFile)))
                {
                    var serializer = new JsonSerializer();
                    foreach (var mask in (SaveMask[])serializer.Deserialize(file, typeof(SaveMask[])))
                    {
                        instellingen.AddMask(new Mapmask(mask.Name, mask.RealName));
                    }
                }

                return(instellingen);
            }
            catch (Exception exc)
            {
                FoutmeldingSchrijver.Log(exc);
            }
            return(null);
        }