protected override void ProcessAnnouncement(RoyalGazette iEntry) { Int32 lWarningOffsetDays = 345; Boolean lProcessed = false; if ( iEntry.Publication.Year > 1 ) { if ( iEntry.Effective.Year > 1 ) { lProcessed = true; TimeSpan iTime = iEntry.Publication.Subtract(iEntry.Effective); mDaysBetweenPublicationAndEffective.IncrementForCount(iTime.Days, 0); if ( Math.Abs(iTime.Days) > lWarningOffsetDays ) { StrangeAnnouncements.Add(iEntry); } } if ( iEntry.Sign.Year > 1 ) { lProcessed = true; TimeSpan iTime = iEntry.Publication.Subtract(iEntry.Sign); mDaysBetweenSignAndPublication.IncrementForCount(iTime.Days, 0); if ( (iTime.Days < 0) | (iTime.Days > lWarningOffsetDays) ) { if ( !StrangeAnnouncements.Contains(iEntry) ) { StrangeAnnouncements.Add(iEntry); } } } if ( lProcessed ) { NumberOfAnnouncements++; } } }
protected override void ProcessAnnouncement(RoyalGazette iEntry) { Int32 lCount = 0; Int32 lProvinceGeocode = 0; foreach ( RoyalGazetteContent lContent in iEntry.Content ) { if ( ContentFitting(lContent) ) { lCount++; ProcessContent(lContent); lProvinceGeocode = lContent.Geocode; while ( lProvinceGeocode / 100 != 0 ) { lProvinceGeocode = lProvinceGeocode / 100; } } } if ( lCount > 0 ) { NumberOfAnnouncements++; mCreationsPerAnnouncement.IncrementForCount(lCount, lProvinceGeocode); if ( iEntry.Effective.Year > 1 ) { DateTime lDummy = new DateTime(2004, iEntry.Effective.Month, iEntry.Effective.Day); Int32 lIndex = lDummy.DayOfYear; if ( !mEffectiveDayOfYear.ContainsKey(lIndex) ) { mEffectiveDayOfYear[lIndex] = 0; } mEffectiveDayOfYear[lIndex]++; } } }
protected abstract void ProcessAnnouncement(RoyalGazette iEntry);
protected virtual Boolean AnnouncementDateFitting(RoyalGazette iEntry) { Boolean retval = ((iEntry.Publication.Year <= EndYear) && (iEntry.Publication.Year >= StartYear)); return retval; }
private RoyalGazette ParseSingeItem(String value) { value = value.Replace("\t", ""); RoyalGazette retval = null; Int32 position = value.IndexOf(EntryURL); if ( position >= 0 ) { retval = new RoyalGazette(); position = position + EntryURL.Length; Int32 position2 = value.IndexOf(EntryURLend); retval.URI = value.Substring(position, position2 - position); value = value.Substring(position2, value.Length - position2); position = value.IndexOf(EntryTitle) + EntryTitle.Length; position2 = value.IndexOf(EntryTitleEnd); retval.Title = value.Substring(position, position2 - position).Trim(); value = value.Substring(position2, value.Length - position2); position = value.IndexOf(EntryVolumeorPage) + EntryVolumeorPage.Length; position2 = value.IndexOf(ColumnEnd, position); String volume = value.Substring(position, position2 - position); retval.Volume = Convert.ToInt32(TambonHelper.ReplaceThaiNumerals(volume)); value = value.Substring(position2, value.Length - position2); position = value.IndexOf(EntryIssue) + EntryIssue.Length; position2 = value.IndexOf(ColumnEnd, position); String Issue = TambonHelper.ReplaceThaiNumerals(value.Substring(position, position2 - position).Trim()); value = value.Substring(position2, value.Length - position2); retval.Issue = new RoyalGazetteIssue(Issue); position = value.IndexOf(EntryDate) + EntryDate.Length; position2 = value.IndexOf(ColumnEnd, position); String Date = value.Substring(position, position2 - position); retval.Publication = TambonHelper.ParseThaiDate(Date); value = value.Substring(position2, value.Length - position2); position = value.IndexOf(EntryVolumeorPage) + EntryVolumeorPage.Length; position2 = value.IndexOf(ColumnEnd, position); String page = value.Substring(position, position2 - position); if ( String.IsNullOrEmpty(page) ) retval.PageInfo.Page = 1; else retval.PageInfo.Page = Convert.ToInt32(TambonHelper.ReplaceThaiNumerals(page)); if ( retval.Title.Contains('[') && retval.Title.EndsWith("]") ) { var beginSubTitle = retval.Title.LastIndexOf('['); retval.SubTitle = retval.Title.Substring(beginSubTitle + 1, retval.Title.Length - beginSubTitle - 2).Trim(); retval.Title = retval.Title.Substring(0, beginSubTitle - 1).Trim(); } } return retval; }