public static void GenerateDataIfRequired() { var weekOfYear = new WeekOfYear() { Week = TimeEntry.GetIso8601WeekOfYear(DateTime.Now), Year = DateTime.Now.Year }; var firstDayOfCurrentWeek = TimeEntry.GetIso8601FirstDateOfWeek(weekOfYear.Year, weekOfYear.Week); var previousWeekStart = firstDayOfCurrentWeek - TimeSpan.FromDays(7); weekOfYear = new WeekOfYear() { Week = TimeEntry.GetIso8601WeekOfYear(previousWeekStart), Year = previousWeekStart.Year }; using (var instance = new GenerateTimeEntryData()) { if (instance.IsThereDataForWeek(weekOfYear)) { return; } instance.GenerateData(weekOfYear); } }
public override string GetCacheKey() { return(string.Format("TrainingDayCriteria_{0}_{1}_{2}_{3}_{4}", UserId == null ? "null" : UserId.GetCacheKey(), Year == null ? "null" : Year.GetCacheKey(), WeekOfYear == null ? "null" : WeekOfYear.GetCacheKey(), DayOfWeek == null ? "null" : DayOfWeek.GetCacheKey(), TrainingDayId == null ? "null" : TrainingDayId.GetCacheKey())); }
private void GenerateData(WeekOfYear weekOfYear) { var projects = _context.Projects.ToList(); var users = _context.TimeEntryUsers.ToList(); var weekDate = TimeEntry.GetIso8601FirstDateOfWeek(weekOfYear.Year, weekOfYear.Week); for (int week = 0; week < 104; week++) { if (weekDate >= DateTime.Now) { weekDate -= TimeSpan.FromDays(7); // don't enter future data continue; } foreach (var user in users) { var userProjects = new List <Project>(); for (int i = 0; i < _random.Next(3) + 1; i++) { userProjects.Add(projects[_random.Next(projects.Count)]); } for (int day = 0; day < 5; day++) { var currentDate = weekDate + TimeSpan.FromDays(day); var totalTime = 0.0; while (totalTime < 8.0) { var time = Math.Round(_random.NextDouble() * 4.0, 1); if (totalTime + time > 8.0) { time = 8.0 - totalTime; } totalTime += time; var project = userProjects[_random.Next(userProjects.Count)]; var timeEntry = new TimeEntry() { Date = currentDate, Hours = time, Project = project, UserId = user.Id }; _context.TimeEntries.AddObject(timeEntry); } } _context.SaveChanges(); } weekDate -= TimeSpan.FromDays(7); } }
private bool IsThereDataForWeek(WeekOfYear weekOfYear) { var mondayDate = TimeEntry.GetIso8601FirstDateOfWeek(weekOfYear.Year, weekOfYear.Week); // comparing day, month and year instead of .Date as mondayDate.Date is not supported if (_context.TimeEntries.Any(te => te.Date.Day == mondayDate.Day && te.Date.Month == mondayDate.Month && te.Date.Year == mondayDate.Year)) { return(true); } return(false); }
public Table Get(DateTime date) { var week = new WeekOfYear(); var diff = week.GetNumber(date) - week.GetNumber(_startDate); if (IsOdd(diff)) { return(_alternateTable); } else { return(_startTable); } }
/// <summary> /// Returns true if OutputDateInfo instances are equal /// </summary> /// <param name="other">Instance of OutputDateInfo to be compared</param> /// <returns>Boolean</returns> public bool Equals(OutputDateInfo other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return (( DayOfYear == other.DayOfYear || DayOfYear.Equals(other.DayOfYear) ) && ( DayOfWeek == other.DayOfWeek || DayOfWeek.Equals(other.DayOfWeek) ) && ( WeekOfYear == other.WeekOfYear || WeekOfYear.Equals(other.WeekOfYear) ) && ( SecondsInDay == other.SecondsInDay || SecondsInDay.Equals(other.SecondsInDay) ) && ( MinutesInDay == other.MinutesInDay || MinutesInDay.Equals(other.MinutesInDay) ) && ( Ticks == other.Ticks || Ticks.Equals(other.Ticks) )); }
/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; // Suitable nullity checks etc, of course :) hashCode = hashCode * 59 + DayOfYear.GetHashCode(); hashCode = hashCode * 59 + DayOfWeek.GetHashCode(); hashCode = hashCode * 59 + WeekOfYear.GetHashCode(); hashCode = hashCode * 59 + SecondsInDay.GetHashCode(); hashCode = hashCode * 59 + MinutesInDay.GetHashCode(); hashCode = hashCode * 59 + Ticks.GetHashCode(); return(hashCode); } }
public override string GetCacheKey() { return(string.Format("TrainingDayKey_{0}_{1}_{2}_{3}_{4}", UserId, Year.ToString(), WeekOfYear.ToString(), DayOfWeek.ToString(), TrainingDayId.ToString())); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return(WeekOfYear.TryConvert(reader.Value)); }