Ejemplo n.º 1
0
 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();
     }
 }
Ejemplo n.º 2
0
 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");
 }
Ejemplo n.º 3
0
            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;
            }
Ejemplo n.º 4
0
            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>();
            }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 7
0
 internal void SetGrainTarget(IRemindable grain) =>
 _grain = grain ?? throw new ArgumentNullException(nameof(grain));