Inheritance: IDayEntry
Example #1
0
 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));
 }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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));
        }
Example #4
0
        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;
            }
        }
Example #5
0
		/// <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) );
		}
Example #6
0
		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) );
		}
Example #7
0
		/// <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);
		}
Example #8
0
 /// <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);
 }
Example #9
0
 public bool OccursInMonth(DayEntry dayEntry)
 {
     return(DayEntry.OccursInMonth(dayEntry, TimeZone, Month));
 }
Example #10
0
 public bool OccursOn(DayEntry dayEntry)
 {
     return(dayEntry.DateUtc == day);
 }
Example #11
0
 public bool OccursBetween(DayEntry dayEntry)
 {
     return(DayEntry.OccursBetween(dayEntry, TimeZone, StartDateTime, EndDateTime));
 }
Example #12
0
 public bool OccursBefore(DayEntry dayEntry)
 {
     return(DayEntry.OccursBefore(dayEntry, EndDateTime));
 }
Example #13
0
		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();
					}
				}
			}
		}
Example #14
0
		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);
			}
		}
Example #15
0
        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;
        }