public void PrepareReminder(Profile dbProfile, IRemindable dtoEntry, IHasReminder entry, IHasReminder origEntry, DateTime dateTime, ReminderType type, ReminderRepetitions repetitions) { if (dtoEntry.RemindBefore.HasValue) { if (origEntry == null || origEntry.Reminder == null) { entry.Reminder = new ReminderItem(); } else { entry.Reminder = origEntry.Reminder; } //entry.Reminder.ConnectedObject = entry.ToString(); entry.Reminder.DateTime = dateTime; entry.Reminder.Profile = dbProfile; entry.Reminder.Type = type; entry.Reminder.RemindBefore = dtoEntry.RemindBefore != TimeSpan.Zero ? dtoEntry.RemindBefore.Value : (TimeSpan?)null; entry.Reminder.Repetitions = repetitions; entry.Reminder.Name = getReminderName(dateTime, type, dtoEntry, entry); Session.SaveOrUpdate(entry.Reminder); dbProfile.DataInfo.ReminderHash = Guid.NewGuid(); } else if (origEntry != null && origEntry.Reminder != null) { Session.Delete(origEntry.Reminder); entry.Reminder = null; dbProfile.DataInfo.ReminderHash = Guid.NewGuid(); } }
static string getReminderName(DateTime dateTime, ReminderType type, IRemindable dtoEntry, IHasReminder entry) { if (type == ReminderType.Birthday) { return(string.Format(LocalizedStrings.ReminderBirthday, ((CustomerDTO)dtoEntry).FullName, dateTime.Date.ToShortDateString())); } else if (type == ReminderType.ScheduleEntry) { return(string.Format(LocalizedStrings.ReminderScheduleEntry, dateTime.Date, ((ScheduleEntry)entry).Activity.Name)); } else if (type == ReminderType.EntryObject) { if (entry is SuplementsEntry) { return(string.Format(LocalizedStrings.ReminderSupplements, dateTime.Date.ToShortDateString())); } if (entry is StrengthTrainingEntry) { return(string.Format(LocalizedStrings.ReminderStrengthTraining, dateTime.ToShortDateString())); } if (entry is SizeEntry) { return(string.Format(LocalizedStrings.ReminderMeasurements, dateTime.Date.ToShortDateString())); } } return("TODO:Name not set"); }
internal long LocalSequenceNumber; // locally, we use this for resolving races between the periodic table reader, and any concurrent local register/unregister requests internal LocalReminderData(ReminderEntry entry) { Identity = new ReminderIdentity(entry.GrainRef, entry.ReminderName); firstTickTime = entry.StartAt; period = entry.Period; remindable = entry.GrainRef.Cast <IRemindable>(); ETag = entry.ETag; LocalSequenceNumber = -1; }
internal long LocalSequenceNumber; // locally, we use this for resolving races between the periodic table reader, and any concurrent local register/unregister requests internal LocalReminderData(ReminderEntry entry, ILoggerFactory loggerFactory) { Identity = new ReminderIdentity(entry.GrainRef, entry.ReminderName); firstTickTime = entry.StartAt; period = entry.Period; remindable = entry.GrainRef.Cast <IRemindable>(); ETag = entry.ETag; LocalSequenceNumber = -1; this.timerLogger = loggerFactory.CreateLogger <GrainTimer>(); }
internal LocalReminderData(ReminderEntry entry, LocalReminderService reminderService) { Identity = new ReminderIdentity(entry.GrainRef, entry.ReminderName); firstTickTime = entry.StartAt; period = entry.Period; remindable = entry.GrainRef.Cast <IRemindable>(); ETag = entry.ETag; LocalSequenceNumber = -1; this.reminderService = reminderService; this.timer = reminderService.asyncTimerFactory.Create(period, ""); }
internal void SetGrainTarget(IRemindable grain) { _grain = grain; }
internal void SetGrainTarget(IRemindable grain) => _grain = grain ?? throw new ArgumentNullException(nameof(grain));