public void Initialise() { _liturgieSettingsDefault = new LiturgieSettings { ToonBijbeltekstenInLiturgie = true, }; }
public void Initialise() { _liturgieInterpreteer = new Mock <ILiturgieTekstNaarObject>().Object; _liturgieSettingsDefault = new LiturgieSettings { ToonBijbeltekstenInLiturgie = true, }; }
private DatabaseResultaat Opzoeken(ILiturgieTekstObject item, LiturgieSettings settings) { var setNaam = item.Benaming; if (item is ILiturgieInterpretatieBijbeltekst) { return(BijbeltekstOpzoeken(setNaam, item as ILiturgieInterpretatieBijbeltekst, settings)); } var zoekNaam = item.Deel; if (IsNullOrEmpty(item.Deel)) { setNaam = FileEngineDefaults.CommonFilesSetName; zoekNaam = item.Benaming; } return(NormaalOpzoeken(setNaam, zoekNaam, item.Verzen.ToList(), settings)); }
public ITekstNaarSlideConversieResultaat ConverteerNaarSlide(ILiturgieTekstObject tekstInput, LiturgieSettings settings, IEnumerable <LiturgieMapmaskArg> masks = null) { var regel = (Slide)null; var isBlancoSlide = false; // zoek de regels in de database en pak ook de naamgeving daar uit over var dbResult = (DatabaseResultaat)null; if (!tekstInput.OptiesGebruiker.NietVerwerkenViaDatabase) { dbResult = Opzoeken(tekstInput, settings); // TODO blanco check if (dbResult.Status != DatabaseZoekStatus.Opgelost) { return(new ConversieResultaat(dbResult.Status, tekstInput)); } regel = new Slide(dbResult); isBlancoSlide = string.Compare(tekstInput.Benaming, LiturgieOptieSettings.BlancoSlide, true) == 0; } else { regel = new Slide(tekstInput.Benaming, tekstInput.Deel, tekstInput.VerzenZoalsIngevoerd); } // verwerk de opties regel.VerwerkenAlsSlide = !tekstInput.OptiesGebruiker.NietVerwerkenViaDatabase; regel.TonenInOverzicht = tekstInput.OptiesGebruiker.ToonInOverzicht ?? regel.TonenInOverzicht; regel.TonenInVolgende = tekstInput.OptiesGebruiker.ToonInVolgende ?? true; regel.OverslaanInVolgende = isBlancoSlide; // Check of er een mask is (mooiere naam) // Anders underscores als spaties tonen var maskCheck = masks?.FirstOrDefault(m => Compare(m.RealName, regel.DisplayEdit.Naam, true) == 0); if (maskCheck != null) { regel.DisplayEdit.Naam = maskCheck.Name; } else { regel.DisplayEdit.Naam = (regel.DisplayEdit.Naam ?? "").Replace("_", " "); } regel.DisplayEdit.SubNaam = (regel.DisplayEdit.SubNaam ?? "").Replace("_", " "); // regel visualisatie na bewerking if (IsNullOrEmpty(regel.DisplayEdit.NaamOverzicht)) { regel.DisplayEdit.NaamOverzicht = regel.DisplayEdit.Naam; } // kijk of de opties nog iets zeggen over alternatieve naamgeving if (!IsNullOrWhiteSpace(tekstInput.OptiesGebruiker.AlternatieveNaamOverzicht)) { regel.DisplayEdit.NaamOverzicht = tekstInput.OptiesGebruiker.AlternatieveNaamOverzicht; regel.DisplayEdit.SubNaam = null; } else if (!IsNullOrWhiteSpace(tekstInput.TeTonenNaamOpOverzicht)) { regel.DisplayEdit.NaamOverzicht = tekstInput.TeTonenNaamOpOverzicht; regel.DisplayEdit.SubNaam = null; } // kijk of de opties nog iets zeggen over alternatieve naamgeving if (!IsNullOrWhiteSpace(tekstInput.OptiesGebruiker.AlternatieveNaam)) { regel.DisplayEdit.Naam = tekstInput.OptiesGebruiker.AlternatieveNaam; regel.DisplayEdit.SubNaam = null; } else if (!IsNullOrWhiteSpace(tekstInput.TeTonenNaam)) { regel.DisplayEdit.Naam = tekstInput.TeTonenNaam; regel.DisplayEdit.SubNaam = null; } // geef de oplossing terug return(new ConversieResultaat(DatabaseZoekStatus.Opgelost, tekstInput, regel)); }
private DatabaseResultaat BijbeltekstOpzoeken(string setNaam, ILiturgieInterpretatieBijbeltekst item, LiturgieSettings settings) { var resultaat = new DatabaseResultaat(VerwerkingType.bijbeltekst); var content = new List <ILiturgieContent>(); var versDelenLijst = item.PerDeelVersen.ToList(); var displaySelected = false; foreach (var deel in versDelenLijst) { var dbResult = _database.KrijgItem(VerwerkingType.bijbeltekst, setNaam, deel.Deel, deel.Verzen, settings); if (dbResult.Status != DatabaseZoekStatus.Opgelost) { return(new DatabaseResultaat(dbResult.Status)); } content.AddRange(dbResult.Content); if (!displaySelected) { resultaat.DisplayEdit.Naam = !string.IsNullOrEmpty(dbResult.Onderdeel.AlternatieveNaam) ? dbResult.Onderdeel.AlternatieveNaam : dbResult.Onderdeel.Naam; resultaat.DisplayEdit.SubNaam = dbResult.Fragment.Naam; displaySelected = true; } } resultaat.DisplayEdit.VersenGebruikDefault = item.VerzenZoalsIngevoerd; resultaat.Content = content.ToList(); resultaat.DisplayEdit.VolledigeContent = versDelenLijst.Count == 1 && !versDelenLijst.FirstOrDefault().Verzen.Any(); resultaat.TonenInOverzicht = settings.ToonBijbeltekstenInLiturgie; return(resultaat); }
private DatabaseResultaat NormaalOpzoeken(string setNaam, string zoekNaam, IEnumerable <string> verzen, LiturgieSettings settings) { var resultaat = new DatabaseResultaat(VerwerkingType.normaal); var verzenList = verzen.ToList(); var dbResult = _database.KrijgItem(VerwerkingType.normaal, setNaam, zoekNaam, verzenList, settings); if (dbResult.Status != DatabaseZoekStatus.Opgelost) { return(new DatabaseResultaat(dbResult.Status)); } if (dbResult.Onderdeel.Naam == FileEngineDefaults.CommonFilesSetName) { resultaat.DisplayEdit.Naam = dbResult.Fragment.Naam; resultaat.DisplayEdit.VersenGebruikDefault = string.Empty; // Expliciet: Common bestanden hebben nooit versen } else { resultaat.DisplayEdit.Naam = dbResult.Onderdeel.Naam; resultaat.DisplayEdit.SubNaam = dbResult.Fragment.Naam; } resultaat.Content = dbResult.Content.ToList(); if (dbResult.ZonderContentSplitsing) { resultaat.DisplayEdit.VersenGebruikDefault = string.Empty; // Altijd default gebruiken omdat er altijd maar 1 content is } resultaat.DisplayEdit.VolledigeContent = !verzenList.Any(); // Basis waarde van tonen in overzicht bepalen if (setNaam != FileEngineDefaults.CommonFilesSetName && !(dbResult.StandaardNietTonenInLiturgie ?? false)) { resultaat.TonenInOverzicht = true; // Nullable. Alleen true als we het belangrijk vinden. Is default, kan overschreven worden. } // bepaal de naamgeving if (!IsNullOrWhiteSpace(dbResult.Onderdeel.AlternatieveNaam)) { resultaat.DisplayEdit.Naam = dbResult.Onderdeel.AlternatieveNaam.Equals(_defaultSetNameEmpty, StringComparison.CurrentCultureIgnoreCase) ? null : dbResult.Onderdeel.AlternatieveNaam; } return(resultaat); }
public IOplossing KrijgItem(VerwerkingType alsType, string onderdeelNaam, string fragmentNaam, IEnumerable <string> fragmentDelen, LiturgieSettings settings) { var database = alsType == VerwerkingType.normaal ? _databases.GetDefault() : _databases.Extensions.FirstOrDefault(e => e.Name == LiturgieDatabaseSettings.DatabaseNameBijbeltekst); if (database == null) { return new Oplossing() { Status = DatabaseZoekStatus.DatabaseFout } } ; var set = database.Engine.Where(s => string.Equals(s.Name.SafeName, onderdeelNaam, StringComparison.CurrentCultureIgnoreCase) || (settings.GebruikDisplayNameVoorZoeken && string.Equals(s.Settings.DisplayName, onderdeelNaam, StringComparison.CurrentCultureIgnoreCase))).FirstOrDefault(); if (set == null) { return new Oplossing() { Status = DatabaseZoekStatus.SetFout } } ; // Kijk of we het specifieke item in de set kunnen vinden var subSet = set.Where(r => Compare(r.Name.SafeName, fragmentNaam, StringComparison.CurrentCultureIgnoreCase) == 0 || Compare(r.Name.Name, fragmentNaam, StringComparison.CurrentCultureIgnoreCase) == 0).FirstOrDefault(); if (subSet == null) { return new Oplossing() { Status = DatabaseZoekStatus.SubSetFout } } ; var returnValue = new Oplossing { Onderdeel = new OplossingOnderdeel { Naam = set.Name.Name, VeiligeNaam = set.Name.SafeName, AlternatieveNaam = set.Settings.DisplayName, }, Fragment = new OplossingOnderdeel { Naam = subSet.Name.Name, VeiligeNaam = subSet.Name.SafeName, }, ZonderContentSplitsing = !set.Settings.ItemsHaveSubContent, StandaardNietTonenInLiturgie = set.Settings.NotVisibleInIndex, }; // Je kunt geen verzen opgeven als we ze niet los hebben. // (Andere kant op kan wel: geen verzen opgeven terwijl ze er wel zijn (wat 'alle verzen' betekend)) if (fragmentDelen != null && fragmentDelen.Any() && !(set.Settings.ItemsHaveSubContent || set.Settings.ItemIsSubContent)) { return new Oplossing() { Status = DatabaseZoekStatus.VersOnderverdelingMismatch } } ; if (fragmentDelen == null || !fragmentDelen.Any()) { // We hebben geen versenlijst en de set instellingen zeggen zonder verzen te zijn dus hebben we n samengevoegd item if (!(set.Settings.ItemsHaveSubContent || set.Settings.ItemIsSubContent)) { var content = KrijgDirecteContent(subSet.Content, null); if (content == null) { return new Oplossing() { Status = DatabaseZoekStatus.VersOnleesbaar } } ; returnValue.Content = new List <ILiturgieContent> { content }; } // Een item met alle verzen else { returnValue.Content = KrijgContentDelayed(subSet, set.Settings) .Select(s => s.GetContent()) .Where(s => s != null) // omdat we alles ophalen kunnen hier dingen in zitten die niet kloppen .OrderBy(s => s.Nummer) // Op volgorde van nummer .ToList(); } } else { // Specifieke verzen var delayedContent = KrijgContentDelayed(subSet, set.Settings); var preSelect = InterpreteerNummers(fragmentDelen, delayedContent.Select(c => c.PossibleNummer)) // We houden de volgorde van het opgeven aan omdat die afwijkend kan zijn .Select(n => n.ToString()) .Select(n => new { Naam = n, SubSet = delayedContent.FirstOrDefault(c => c.PossibleNummer == n), }) .ToList(); // Specifieke verzen moeten allemaal gevonden kunnen worden if (preSelect.Any(c => c.SubSet == null)) { return new Oplossing() { Status = DatabaseZoekStatus.VersFout } } ; returnValue.Content = preSelect .Select(s => s.SubSet.GetContent()) .ToList(); // Specifieke verzen moeten allemaal interpreteerbaar zijn if (returnValue.Content.Any(c => c == null)) { return new Oplossing() { Status = DatabaseZoekStatus.VersOnleesbaar } } ; } returnValue.Status = DatabaseZoekStatus.Opgelost; return(returnValue); }