public static bool OccursBetween(DayEntry dayEntry, TimeZone timeZone, DateTime startDateTime, DateTime endDateTime) { //return ((timeZone.ToLocalTime(dayEntry.DateUtc) >= startDateTime) // && (timeZone.ToLocalTime(dayEntry.DateUtc) <= endDateTime) ); return((dayEntry.DateUtc >= startDateTime) && (dayEntry.DateUtc <= endDateTime)); }
/// <summary> /// Returns true if the specified DayEntry is within the same month as <c>month</c>; /// </summary> /// <param name="dayEntry"></param> /// <param name="timeZone"></param> /// <param name="month"></param> /// <returns></returns> public static bool OccursInMonth(DayEntry dayEntry, TimeZone timeZone, DateTime month) { DateTime startOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); DateTime endOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); endOfMonth = endOfMonth.AddMonths(1); endOfMonth = endOfMonth.AddSeconds(-1); TimeSpan offset = timeZone.GetUtcOffset(endOfMonth); endOfMonth = endOfMonth.AddHours(offset.Negate().Hours); return(OccursBetween(dayEntry, timeZone, startOfMonth, endOfMonth)); }
/// <summary> /// Returns true if the specified DayEntry is within the same month as <c>month</c>; /// </summary> /// <param name="dayEntry"></param> /// <param name="timeZone"></param> /// <param name="month"></param> /// <returns></returns> public static bool OccursInMonth(DayEntry dayEntry, DateTimeZone timeZone, DateTime month) { DateTime startOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); DateTime endOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); endOfMonth = endOfMonth.AddMonths(1); endOfMonth = endOfMonth.AddSeconds(-1); var localTime = LocalDateTime.FromDateTime(endOfMonth); var offset = timeZone.GetUtcOffset(localTime.InZoneStrictly(timeZone).ToInstant()); endOfMonth = endOfMonth.Add(offset.ToTimeSpan()); return(OccursBetween(dayEntry, timeZone, startOfMonth, endOfMonth)); }
internal void Load(DataManager data) { if (Loaded) { return; } lock (entriesLock) { if (Loaded) //SDH: standard thread-safe double check { return; } string fullPath = data.ResolvePath(FileName); FileStream fileStream = FileUtils.OpenForRead(fullPath); if (fileStream != null) { try { XmlSerializer ser = new XmlSerializer(typeof(DayEntry), Data.NamespaceURI); using (StreamReader reader = new StreamReader(fileStream)) { //XmlNamespaceUpgradeReader upg = new XmlNamespaceUpgradeReader( reader, "", Data.NamespaceURI ); DayEntry e = (DayEntry)ser.Deserialize(reader); Entries = e.Entries; } } catch (Exception e) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, e); } finally { fileStream.Close(); } } Entries.Sort((left, right) => right.CreatedUtc.CompareTo(left.CreatedUtc)); Loaded = true; } }
/// <summary> /// Returns true if the specified DayEntry is within the same month as <c>month</c>; /// </summary> /// <param name="dayEntry"></param> /// <param name="timeZone"></param> /// <param name="month"></param> /// <returns></returns> public static bool OccursInMonth(DayEntry dayEntry, TimeZone timeZone, DateTime month) { DateTime startOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); DateTime endOfMonth = new DateTime(month.Year, month.Month, 1, 0, 0, 0); endOfMonth = endOfMonth.AddMonths(1); endOfMonth = endOfMonth.AddSeconds(-1); TimeSpan offset = timeZone.GetUtcOffset(endOfMonth); endOfMonth = endOfMonth.AddHours(offset.Negate().Hours); return ( OccursBetween(dayEntry, timeZone, startOfMonth, endOfMonth) ); }
public static bool OccursBetween(DayEntry dayEntry, TimeZone timeZone, DateTime startDateTime, DateTime endDateTime) { //return ((timeZone.ToLocalTime(dayEntry.DateUtc) >= startDateTime) // && (timeZone.ToLocalTime(dayEntry.DateUtc) <= endDateTime) ); return ((dayEntry.DateUtc >= startDateTime) && (dayEntry.DateUtc <= endDateTime) ); }
/// <summary> /// Returns true if the specified DayEntry occurs before the day specified. /// </summary> /// <param name="dayEntry">The DayEntry to check the date of.</param> /// <param name="dateTime">The date the DayEntry should occur before</param> /// <returns>Returns true if the dayEntry occurs before the specified date.</returns> public static bool OccursBefore(DayEntry dayEntry, DateTime dateTime) { return (dayEntry.DateUtc.Date <= dateTime); }
/// <summary> /// Returns true if the specified DayEntry occurs before the day specified. /// </summary> /// <param name="dayEntry">The DayEntry to check the date of.</param> /// <param name="dateTime">The date the DayEntry should occur before</param> /// <returns>Returns true if the dayEntry occurs before the specified date.</returns> public static bool OccursBefore(DayEntry dayEntry, DateTime dateTime) { return(dayEntry.DateUtc.Date <= dateTime); }
public bool OccursInMonth(DayEntry dayEntry) { return(DayEntry.OccursInMonth(dayEntry, TimeZone, Month)); }
public bool OccursOn(DayEntry dayEntry) { return(dayEntry.DateUtc == day); }
public bool OccursBetween(DayEntry dayEntry) { return(DayEntry.OccursBetween(dayEntry, TimeZone, StartDateTime, EndDateTime)); }
public bool OccursBefore(DayEntry dayEntry) { return(DayEntry.OccursBefore(dayEntry, EndDateTime)); }
static internal void Save(DayEntry dayEntry, string fullPath) { fullPath = Path.Combine(fullPath, dayEntry.FileName); // We use the internal list to circumvent ignoring // items where IsPublic is set to false. if ( dayEntry.Entries.Count == 0 ) { if ( File.Exists( fullPath ) ) { File.Delete( fullPath ); } } else { FileStream fileStream = FileUtils.OpenForWrite(fullPath); if ( fileStream != null ) { try { XmlSerializer ser = new XmlSerializer(typeof(DayEntry),"urn:newtelligence-com:dasblog:runtime:data"); using (StreamWriter writer = new StreamWriter(fileStream)) { ser.Serialize(writer, dayEntry); } WriteLine(String.Format("Saved {0}", dayEntry.FileName)); } catch(Exception e) { ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error,e); } finally { fileStream.Close(); } } } }
public static void FixDays(string path) { ContentPath = path; IBlogDataService dataService = BlogDataServiceFactory.GetService(ContentPath, null); EntryCollection entries = dataService.GetEntriesForDay( DateTime.MaxValue.AddDays(-2), TimeZone.CurrentTimeZone, String.Empty, int.MaxValue, int.MaxValue, String.Empty); Hashtable DayEntries = new Hashtable(); foreach (Entry entry in entries) { DayEntry dayEntry = new DayEntry(); dayEntry.DateUtc = entry.CreatedUtc; if (DayEntries.ContainsKey(entry.CreatedUtc.Date)) dayEntry = DayEntries[entry.CreatedUtc.Date] as DayEntry; dayEntry.Entries.Add(entry); DayEntries[entry.CreatedUtc.Date] = dayEntry; } DirectoryInfo directoryInfo = new DirectoryInfo(path); foreach(FileInfo fileInfo in directoryInfo.GetFiles("*.dayentry.xml")) { // backup the old file try { DirectoryInfo backup = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "backup")); if (!backup.Exists) { backup.Create(); } fileInfo.MoveTo(Path.Combine(backup.FullName, fileInfo.Name)); } catch (Exception e) { ErrorTrace.Trace(TraceLevel.Error, e); } } foreach (DayEntry dayEntry in DayEntries.Values) { Save(dayEntry, path); } }
DayEntry InternalGetDayEntry(DateTime date) { DayEntry result = null; //System.Diagnostics.Debug.Write("Loading DayEntry for " + date.ToShortDateString()); if (data.Days.ContainsKey(date)) { DayEntry day = data.Days[date]; day.Load(data); result = day; } /* foreach (DayEntry day in data.Days) { if (day.DateUtc == date) { day.Load(data); result = day; break; } } */ if (result == null) { result = new DayEntry(); result.Initialize(); result.DateUtc = date; result.Save(data); data.IncrementEntryChange(); } return result; }