示例#1
0
        public BibleReferenceRange Build()
        {
            if (First == null)
            {
                throw new InvalidOperationException("Must add at least one reference");
            }

            var range = new BibleReferenceRange {
                First = First, Last = Last
            };

            return(range);
        }
示例#2
0
        public BibleReferenceParser.Data.BibleReferenceRange Deserialize()
        {
            var startReference = new BibleReference {
                Book = (BibleBook)StartBook, Chapter = StartChapter, Verse = StartVerse
            };
            var endReference = new BibleReference {
                Book = (BibleBook)EndBook, Chapter = EndChapter, Verse = EndVerse
            };
            var referenceRange = new BibleReferenceParser.Data.BibleReferenceRange {
                First = startReference, Last = endReference
            };

            return(referenceRange);
        }
        public object Clone()
        {
            var clone = new BibleReferenceRange {
                First = null, Last = null
            };

            if (First != null)
            {
                clone.First = First.Clone() as BibleReference;
            }
            if (Last != null)
            {
                clone.Last = Last.Clone() as BibleReference;
            }
            return(clone);
        }
示例#4
0
        public static BibleReferenceRange From(BibleReferenceParser.Data.BibleReferenceRange referenceRange)
        {
            var startReference = referenceRange.First;
            var endReference   = referenceRange.Last == null ? referenceRange.First : referenceRange.Last;

            var model = new BibleReferenceRange();

            model.StartBook    = (int)startReference.Book;
            model.StartChapter = startReference.Chapter.GetValueOrDefault(1);
            model.StartVerse   = startReference.Verse.GetValueOrDefault(1);

            model.EndBook    = (int)endReference.Book;
            model.EndChapter = endReference.Chapter.GetValueOrDefault(BibleDetails.GetLastChapterForBook(endReference.Book));
            model.EndVerse   = endReference.Verse.GetValueOrDefault(BibleDetails.GetLastVerseForBookChapter(endReference.Book, model.EndChapter));

            return(model);
        }
 public static bool IsValidBibleReferenceRange(BibleReferenceRange referenceRange)
 {
     if (referenceRange == null)
     {
         return(false);
     }
     if (!IsValidBibleReference(referenceRange.First))
     {
         return(false);
     }
     if (referenceRange.Last != null)
     {
         if (!IsValidBibleReference(referenceRange.Last))
         {
             return(false);
         }
         if (referenceRange.Last.CompareTo(referenceRange.First) < 0)
         {
             return(false);
         }
     }
     return(true);
 }