private void replace(ReminderItemDTO selected, ReminderItemDTO saved) { ReminderItemsReposidory.Instance.Replace(selected, saved); SelectedReminder = saved; NotifyOfPropertyChange(() => Reminders); }
public ReminderItemDTO SaveReminder(Token token, ReminderItemDTO reminder) { var securityInfo = SecurityManager.EnsureAuthentication(token); var service = new ReminderService(Session, securityInfo, Configuration); return(service.SaveReminder(reminder)); }
private ReminderItemDTO CreateReminder(DateTime dateTime, ReminderRepetitions pattern, DateTime?lastShown = null, TimeSpan?remindBefore = null) { ReminderItemDTO item = new ReminderItemDTO(); item.DateTime = dateTime; item.Repetitions = pattern; item.LastShown = lastShown; item.RemindBefore = remindBefore; return(item); }
public void New() { var dlg = new EditDomainObjectWindow(); var ctrl = new usrReminderDetails(); dlg.SetControl(ctrl); var reminder = new ReminderItemDTO(); ctrl.ReminderItem = reminder; if (dlg.ShowDialog() == true) { ReminderItemsReposidory.Instance.Add(ctrl.ReminderItem); } }
public void SaveNewReminder() { var profile = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile, ClientInformation); var reminder = new ReminderItemDTO(); reminder.Name = "name"; reminder.DateTime = DateTime.UtcNow; RunServiceMethod(delegate(InternalBodyArchitectService service) { var res = service.SaveReminder(data.Token, reminder); Assert.AreNotEqual(Guid.Empty, res.GlobalId); reminder.ProfileId = res.ProfileId; UnitTestHelper.CompareObjects(res, reminder, true); }); var dbItem = Session.QueryOver <ReminderItem>().SingleOrDefault(); Assert.AreEqual(ReminderType.Custom, dbItem.Type); }
public ReminderItemDTO SaveReminder(ReminderItemDTO reminder) { Log.WriteWarning("SaveReminder:Username={0},GlobalId={1}", SecurityInfo.SessionData.Profile.UserName, reminder.GlobalId); if (!SecurityInfo.Licence.IsPremium) { throw new LicenceException("This feature is allowed for Premium account"); } var dbReminder = reminder.Map <ReminderItem>(); using (var trans = Session.BeginSaveTransaction()) { Profile dbProfile = Session.Load <Profile>(SecurityInfo.SessionData.Profile.GlobalId); ReminderItem db = Session.Get <ReminderItem>(reminder.GlobalId); if (db != null) { if (SecurityInfo.SessionData.Profile.GlobalId != db.Profile.GlobalId) { throw new CrossProfileOperationException("Cannot modify Reminder for another user"); } } dbReminder.Profile = dbProfile; if (reminder.RemindBefore.HasValue && reminder.RemindBefore.Value.TotalDays > 7) { throw new ArgumentOutOfRangeException("RemindBefore can be maximum 7 days"); } int res = Session.QueryOver <ReminderItem>().Where(x => x.Name == dbReminder.Name && x.GlobalId != dbReminder.GlobalId && x.Profile == dbProfile).RowCount(); if (res > 0) { throw new UniqueException("Reminder with the same name is already exist"); } dbReminder = Session.Merge(dbReminder); dbProfile.DataInfo.ReminderHash = Guid.NewGuid(); trans.Commit(); return(dbReminder.Map <ReminderItemDTO>()); } }
public void SaveReminder_Validation_UniqueName() { var profile = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile, ClientInformation); var reminder = new ReminderItemDTO(); reminder.Name = "name"; reminder.DateTime = DateTime.UtcNow.AddDays(2); RunServiceMethod(delegate(InternalBodyArchitectService service) { service.SaveReminder(data.Token, reminder); }); reminder = new ReminderItemDTO(); reminder.Name = "name"; RunServiceMethod(delegate(InternalBodyArchitectService service) { service.SaveReminder(data.Token, reminder); }); }
public void SaveNewReminder_DataInfo() { var profile = (ProfileDTO)profiles[0].Tag; SessionData data = CreateNewSession(profile, ClientInformation); var oldHash = profiles[0].DataInfo.ReminderHash; var reminder = new ReminderItemDTO(); reminder.Name = "name"; reminder.DateTime = DateTime.UtcNow; RunServiceMethod(delegate(InternalBodyArchitectService service) { var res = service.SaveReminder(data.Token, reminder); Assert.AreNotEqual(Guid.Empty, res.GlobalId); reminder.ProfileId = res.ProfileId; UnitTestHelper.CompareObjects(res, reminder, true); }); var dbItem = Session.Get <Profile>(profile.GlobalId); Assert.AreNotEqual(dbItem, dbItem.DataInfo.ReminderHash); }
public void SaveReminder_Validation_UniqueName_DifferentUser() { var profile = (ProfileDTO)profiles[0].Tag; var profile1 = (ProfileDTO)profiles[1].Tag; SessionData data = CreateNewSession(profile, ClientInformation); var reminder = new ReminderItemDTO(); reminder.Name = "name"; reminder.DateTime = DateTime.UtcNow; RunServiceMethod(delegate(InternalBodyArchitectService service) { service.SaveReminder(data.Token, reminder); }); data = CreateNewSession(profile1, ClientInformation); reminder = new ReminderItemDTO(); reminder.Name = "name"; reminder.DateTime = DateTime.UtcNow; RunServiceMethod(delegate(InternalBodyArchitectService service) { service.SaveReminder(data.Token, reminder); }); Assert.AreEqual(2, Session.QueryOver <ReminderItem>().RowCount()); }
public ReminderItemDTO ReminderOperation(ReminderOperationParam remindersParam) { ReminderItemDTO res = null; using (var tx = Session.BeginSaveTransaction()) { //DateTime now = Configuration.TimerService.UtcNow; Profile dbProfile = Session.Load <Profile>(SecurityInfo.SessionData.Profile.GlobalId); var dbReminder = Session.Get <ReminderItem>(remindersParam.ReminderItemId); if (dbReminder.Profile != dbProfile) { throw new CrossProfileOperationException("Cannot change reminder from another user"); } if (remindersParam.Operation == ReminderOperationType.Delete) { deleteReminder(dbReminder, true); } else if (remindersParam.Operation == ReminderOperationType.CloseAfterShow) { if (dbReminder.Repetitions == ReminderRepetitions.Once) { deleteReminder(dbReminder, true); } else { dbReminder.LastShown = Configuration.TimerService.UtcNow; Session.Update(dbReminder); res = dbReminder.Map <ReminderItemDTO>(); } } tx.Commit(); return(res); } }
public ReminderItemDTO SaveReminder(Token token, ReminderItemDTO reminder) { return(exceptionHandling(token, () => InternalService.SaveReminder(token, reminder))); }
public ReminderOperationServiceCommand(ReminderItemDTO reminder, ReminderOperationType operation) { this.reminder = reminder; this.operation = operation; }
public void Delete(ReminderItemDTO reminder) { ServicePool.Add(new ReminderOperationServiceCommand(reminder, ReminderOperationType.CloseAfterShow)); NotificationsReposidory.Instance.Remove(reminder.GlobalId); }
public ReminderItemViewModel(ReminderItemDTO reminder) { this.Reminder = reminder; }