/// <summary> /// Create a new <see cref="Altask.www.Models.TaskInstance"/> from a <see cref="Altask.Data.Dto.Occurrence"/>. /// </summary> /// <param name="task"></param> /// <param name="date"></param> /// <param name="occurrence"></param> /// <returns></returns> public TaskInstance MergeOccurrence(Data.Dto.Occurrence occurrence) { AssetId = occurrence.AssetId; Asset = occurrence.Asset; AsEarlyAsDate = occurrence.AsEarlyAsDate; Completed = occurrence.Completed; CompletedBy = occurrence.CompletedBy; CompletedOn = occurrence.CompletedOn; Date = occurrence.Date; Dismissed = occurrence.Dismissed; DismissedBy = occurrence.DismissedBy; DismissedOn = occurrence.DismissedOn; FormModel = occurrence.FormModel; OccurrenceId = occurrence.Id; ResumedBy = occurrence.ResumedBy; ResumedOn = occurrence.ResumedOn; ScheduleId = occurrence.ScheduleId; Started = occurrence.Started; StartedBy = occurrence.StartedBy; StartedOn = occurrence.StartedOn; StoppedBy = occurrence.StoppedBy; StoppedOn = occurrence.StoppedOn; TimeSpent = occurrence.TimeSpent; UserId = occurrence.UserId; User = occurrence.User; return(this); }
internal override void BeforeCreate(Data.Model.Occurrence entity, Data.Dto.Occurrence dto) { var schedule = entity.Schedule ?? Context.Schedules.FirstOrDefault(s => s.Id == entity.ScheduleId); entity.Date = entity.Date.LessSeconds(); var date = entity.Date; if (schedule.AsEarlyAsN.HasValue) { switch (schedule.AsEarlyAsFrequency) { case "Minute(s)": entity.AsEarlyAsDate = date.AddMinutes(-(double)schedule.AsEarlyAsN); break; case "Hour(s)": entity.AsEarlyAsDate = date.AddHours(-(double)schedule.AsEarlyAsN); break; case "Day(s)": entity.AsEarlyAsDate = date.AddDays(-(double)schedule.AsEarlyAsN); break; case "Week(s)": entity.AsEarlyAsDate = date.AddDays(-(double)(schedule.AsEarlyAsN * 7)); break; case "Month(s)": entity.AsEarlyAsDate = date.AddMonths(-schedule.AsEarlyAsN.Value); break; } } }