protected override void SaveReminderInternal(IReminder reminder, XmlElement reminderElement)
        {
            var ir = (IntervalReminder)reminder;

            reminderElement.SetAttribute("fromInterval", ir.FromInterval.ToString());
            reminderElement.SetAttribute("toInterval", ir.ToInterval.ToString());
        }
Example #2
0
        public ReminderConfigurationForm(PluginRepository plugins, IReminder reminder, IReminderController guiController)
        {
            this.pluginsRepository = plugins;
            this.reminder          = reminder;
            this.guiController     = guiController;
            this.InitializeComponent();

            var reminderControl = this.guiController.GetSettingsPanel();

            reminderControl.Dock = DockStyle.Fill;
            this.pnlRemider.Controls.Add(reminderControl);

            var notificationsControl = plugins.CherryCommands["Get Notifications Configuration Control"].Do(null) as Control;

            notificationsControl.Dock = DockStyle.Fill;
            this.notificationsTabPage.Controls.Add(notificationsControl);

            var conditionssControl = plugins.CherryCommands["Get Conditions Configuration Control"].Do(null) as Control;

            conditionssControl.Dock = DockStyle.Fill;
            this.conditionsTabPage.Controls.Add(conditionssControl);

            this.nameTextBox.Text        = this.reminder.Name;
            this.descriptionTextBox.Text = this.reminder.Description;
            this.guiController.LoadSettingsFromReminder(reminder);
            plugins.CherryCommands["Populate Notifications Configuration"].Do(
                new CompositeNotificationCommandArgs(this.reminder.CompositeNotification));
            plugins.CherryCommands["Populate Conditions Configuration"].Do(
                new CompositeConditionCommandArgs(this.reminder.CompositeCondition));
        }
        public ReminderConfigurationForm(PluginRepository plugins, IReminder reminder, IReminderController guiController)
        {
            this.pluginsRepository = plugins;
            this.reminder = reminder;
            this.guiController = guiController;
            this.InitializeComponent();

            var reminderControl = this.guiController.GetSettingsPanel();
            reminderControl.Dock = DockStyle.Fill;
            this.pnlRemider.Controls.Add(reminderControl);

            var notificationsControl = plugins.CherryCommands["Get Notifications Configuration Control"].Do(null) as Control;
            notificationsControl.Dock = DockStyle.Fill;
            this.notificationsTabPage.Controls.Add(notificationsControl);

            var conditionssControl = plugins.CherryCommands["Get Conditions Configuration Control"].Do(null) as Control;
            conditionssControl.Dock = DockStyle.Fill;
            this.conditionsTabPage.Controls.Add(conditionssControl);

            this.nameTextBox.Text = this.reminder.Name;
            this.descriptionTextBox.Text = this.reminder.Description;
            this.guiController.LoadSettingsFromReminder(reminder);
            plugins.CherryCommands["Populate Notifications Configuration"].Do(
                new CompositeNotificationCommandArgs(this.reminder.CompositeNotification));
            plugins.CherryCommands["Populate Conditions Configuration"].Do(
                new CompositeConditionCommandArgs(this.reminder.CompositeCondition));
        }
        public IReminder LoadReminder(XmlElement fromElement)
        {
            var plugName = fromElement.GetAttribute("typeName");

            if (plugName != this.PluginName)
            {
                throw new PluginException("typeName attribute is not " + this.PluginName);
            }

            IReminder result = this.LoadReminderInternal(fromElement);

            result.Enabled     = bool.Parse(fromElement.GetAttribute("enabled"));
            result.Name        = fromElement.GetAttribute("name");
            result.Description = ((XmlElement)fromElement.SelectSingleNode("description")).InnerText;

            var compositeNotificationNode = (XmlElement)fromElement.SelectSingleNode("compositeNotification");

            result.CompositeNotification.Load(compositeNotificationNode);

            var compositeConditionNode = (XmlElement)fromElement.SelectSingleNode("compositeCondition");

            result.CompositeCondition.Load(compositeConditionNode);

            return(result);
        }
Example #5
0
 private void EditReminder(IReminder reminder)
 {
     if ((DialogResult)this.editReminderCommand.Do(new ReminderCommandArgs(reminder)) == DialogResult.OK)
     {
         this.panel.UpdateReminder(reminder);
     }
 }
        protected override void SaveReminderInternal(IReminder reminder, XmlElement reminderElement)
        {
            var ir = (IntervalReminder)reminder;

            reminderElement.SetAttribute("fromInterval", ir.FromInterval.ToString());
            reminderElement.SetAttribute("toInterval", ir.ToInterval.ToString());
        }
Example #7
0
        public static void Set(IItem item, PropertyDefinition propertyDefinition, Reminders <T> newReminders)
        {
            Util.ThrowOnNullArgument(item, "item");
            Util.ThrowOnNullArgument(propertyDefinition, "propertyDefinition");
            Util.ThrowOnMismatchType <byte[]>(propertyDefinition, "propertyDefinition");
            ExTraceGlobals.RemindersTracer.TraceDebug <StoreObjectId, PropertyDefinition>(0L, "Reminders.Set - item={0}, propertyDefinition={1}", item.StoreObjectId, propertyDefinition);
            if (newReminders == null)
            {
                ExTraceGlobals.RemindersTracer.TraceDebug <PropertyDefinition>(0L, "Reminders.Set - Reminder list is null, deleting property={0}", propertyDefinition);
                item.Delete(propertyDefinition);
                return;
            }
            Reminders <T> .UpdateReminderIdentifiers(newReminders);

            ExTraceGlobals.RemindersTracer.TraceDebug <int>(0L, "Reminders.Set - Serializing reminders, count={0}", newReminders.ReminderList.Count);
            using (Stream stream = item.OpenPropertyStream(propertyDefinition, PropertyOpenMode.Create))
            {
                if (newReminders.ReminderList.Count > 0)
                {
                    IReminder reminder = newReminders.ReminderList[0];
                    newReminders.Version = reminder.GetCurrentVersion();
                }
                using (XmlWriter xmlWriter = XmlWriter.Create(stream))
                {
                    DataContractSerializer dataContractSerializer = new DataContractSerializer(typeof(Reminders <T>));
                    dataContractSerializer.WriteObject(xmlWriter, newReminders);
                }
            }
        }
        public DialogResult EditReminder(IReminder reminder)
        {
            var reminderGuiController = this.reminderPlugins.GetPlugin(reminder).GetGuiController();
            var form = new ReminderConfigurationForm(this.pluginsRepository, reminder, reminderGuiController);

            return((DialogResult)this.showDialogCommand.Do(new WindowCommandArgs(form)));
        }
        public override string Execute()
        {
            ////Note note = new Note("Homework", "I have to do my homework by the end of the week");
            ////Notebook notebook1 = new Notebook("First Notebook");

            //momentsToRemind.AddRange(EngineMaikaTI.loggedUser.Tasks.Where(t => t.Reminder != null).Select(x => x.Reminder));
            //// momentsToRemind.AddRange(EngineMaikaTI.loggedUser.LongTermTasks.Where(t => t.Reminder != null).Select(x => x.Reminder));
            //// momentsToRemind.AddRange(EngineMaikaTI.loggedUser.LongTermTasks.Where(s => s.AllTasks.Count > 0).Select(y => y.AllTasks).Where(t => t.Reminder != null).Select(x => x.Reminder));



            string taskName       = base.Parameters[0];
            string momentToRemind = base.Parameters[1];

            DateTime  dt       = DateTime.ParseExact(momentToRemind, Constants.Formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
            IReminder reminder = this.Factory.CreateReminder(dt);


            if (!SearchForTask(taskName))
            {
                throw new ArgumentException(Messages.WrongTaskName());
            }
            EngineMaikaTI.loggedUser.Tasks.Single(x => x.Title == taskName).Reminder = reminder;


            TimerCallback callback = new TimerCallback(reminder.Remind);
            Timer         timer    = new Timer(callback, null, EngineMaikaTI.loggedUser.Tasks.Single(x => x.Title == taskName).Reminder.MomentToRemind, TimeSpan.FromMilliseconds(-1));

            //
            //timer.Change();
            return(Messages.AddedReminderToTask(taskName));
            //return $"Created reminder to task: {taskName} successfully !";
        }
        protected override void SaveReminderInternal(IReminder reminder, XmlElement reminderElement)
        {
            var apr = (AfterPomodoroReminder)reminder;

            reminderElement.SetAttribute("started", apr.Started.ToString());
            reminderElement.SetAttribute("rung", apr.Rung.ToString());
            reminderElement.SetAttribute("timeout", apr.Timeout.ToString());
        }
Example #11
0
        protected override void SaveReminderInternal(IReminder reminder, XmlElement reminderElement)
        {
            var apr = (AfterPomodoroReminder)reminder;

            reminderElement.SetAttribute("started", apr.Started.ToString());
            reminderElement.SetAttribute("rung", apr.Rung.ToString());
            reminderElement.SetAttribute("timeout", apr.Timeout.ToString());
        }
Example #12
0
 private void SendReminder(IReminder reminder)
 {
     if (Reminders.Contains(reminder))
     {
         Reminders.Remove(reminder);
         reminder.Channel.SendMessageAsync($"{reminder.User.Mention}, here is your reminder for '{reminder.Message}'");
     }
 }
Example #13
0
        private bool RemoveReminder(IReminder reminder)
        {
            if (this.allReminders.Remove(reminder))
            {
                reminder.Unschedule();
            }

            return(false);
        }
Example #14
0
        public EditReminderCommand(IReminder reminder)
        {
            if (reminder == null)
            {
                throw new ArgumentNullException("reminder");
            }

            _reminder = reminder;
        }
Example #15
0
            public override Task Run(ref IReminder next)
            {
                Console.WriteLine("Delete reminder " + _id);

                if (_id == next?.ID)
                {
                    next = null;
                }
                return(Task.CompletedTask);
            }
Example #16
0
    public static IReminder <T> GetReminder <T>() where T : class, IIdentifiableEntity
    {
        IReminder <T> reminder = null;

        if (typeof(InvoiceSummary) == typeof(T))
        {
            reminder = new TimesheetReminder() as IReminder <T>;
        }
        return(reminder);
    }
Example #17
0
            public override Task Run(ref IReminder next)
            {
                Console.WriteLine("Create reminder " + _reminder.ID);

                if (next == null || _reminder.TriggerTime < next.TriggerTime)
                {
                    next = _reminder;
                }

                return(Task.CompletedTask);
            }
Example #18
0
        private async Task DisplayReminder(IReminder reminder)
        {
            var embed = new EmbedBuilder()
                        .WithColor(Color)
                        .WithDescription(reminder.Message.Replace("`", "'"))
                        .WithTimestamp(new DateTimeOffset(reminder.TriggerTime))
                        .WithFooter(new BalderHash32(reminder.ID).ToString())
                        .Build();

            await ReplyAsync(embed : embed);
        }
        public void AddReminder(IReminder reminder)
        {
            var item = new ListViewItem { Checked = reminder.Enabled, Text = reminder.Name };
            item.SubItems.Add(reminder.TypeName);
            this.remindersListView.Items.Add(item);

            // This is hack. We assign the Tag after the item addition to the list
            // in order to not catch the 'remindersListView.ItemChecked' event.
            // We don't need to catch the event because it sets reminder.Enable which shedules the timetrigger.
            // Thus in order to shedule time trigger only once we need the hack.
            item.Tag = reminder;
        }
Example #20
0
        public void CreateReminder(IReminder reminder)
        {
            var _reminder = new Reminder()
            {
                ID      = reminder.ID,
                EventID = reminder.EventID,
                Date    = reminder.Date,
                Message = reminder.Message
            };

            ReminderDatabaseHandler.CreateReminder(_reminder);
        }
Example #21
0
 private void DeleteReminder(IReminder reminder)
 {
     if (MessageBox.Show(
             this.GetPanel().FindForm(),
             "Are you sure you want to delete the reminder '" + reminder.Name + "'?",
             "Delete Reminder?",
             MessageBoxButtons.YesNo,
             MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         this.removeReminderCommand.Do(new ReminderCommandArgs(reminder));
         this.panel.RemoveReminder(reminder);
     }
 }
        public CreateReminderViewModel(IReminder createdReminder, IReadOnlyList <Category> categories)
        {
            if (createdReminder == null)
            {
                throw new ArgumentNullException("createdReminder");
            }
            if (categories == null)
            {
                throw new ArgumentNullException("categories");
            }

            _createdReminder = createdReminder;
            _categories      = categories;
        }
Example #23
0
        public bool AddReminder(IReminder reminder)
        {
            if (!this.allReminders.Add(reminder))
            {
                return(false);
            }

            if (reminder.Enabled)
            {
                reminder.Schedule();
            }

            return(true);
        }
        public bool AddReminder(IReminder reminder)
        {
            if (!this.allReminders.Add(reminder))
            {
                return false;
            }

            if (reminder.Enabled)
            {
                reminder.Schedule();
            }

            return true;
        }
        public void AddReminder(IReminder reminder)
        {
            var item = new ListViewItem {
                Checked = reminder.Enabled, Text = reminder.Name
            };

            item.SubItems.Add(reminder.TypeName);
            this.remindersListView.Items.Add(item);

            // This is hack. We assign the Tag after the item addition to the list
            // in order to not catch the 'remindersListView.ItemChecked' event.
            // We don't need to catch the event because it sets reminder.Enable which shedules the timetrigger.
            // Thus in order to shedule time trigger only once we need the hack.
            item.Tag = reminder;
        }
        //Update in CRUD
        public void UpdateReminder(IReminder R1)
        {
            using (MySqlConnection conn = new MySqlConnection(connectionString))
            {
                string query = "UPDATE reminder SET EventID = @EventID, Date = @Date, Message=@Message WHERE ID=@ID; ";
                using (MySqlCommand command = new MySqlCommand(query, conn))
                {
                    command.Parameters.AddWithValue("@ID", R1.ID);
                    command.Parameters.AddWithValue("@EventID", R1.EventID);
                    command.Parameters.AddWithValue("@Date", R1.EventID);
                    command.Parameters.AddWithValue("@Message", R1.Message);

                    command.ExecuteNonQuery();
                }
            }
        }
        //Create in CRUD
        public void CreateReminder(IReminder R1)
        {
            using (MySqlConnection conn = new MySqlConnection(connectionString))
            {
                string query = "INSERT INTO reminder VALUES(@EventID, @Date,@Message); ";

                using (MySqlCommand command = new MySqlCommand(query, conn))
                {
                    command.Parameters.AddWithValue("@EventID", R1.EventID);
                    command.Parameters.AddWithValue("@Date", R1.Date);
                    command.Parameters.AddWithValue("@Message", R1.Message);

                    command.ExecuteNonQuery();
                }
            }
        }
        public void SaveReminder(IReminder reminder, XmlElement parentElement)
        {
            var reminderElement = parentElement.OwnerDocument.CreateElement("reminder");

            parentElement.AppendChild(reminderElement);

            reminderElement.SetAttribute("enabled", reminder.Enabled.ToString());
            reminderElement.SetAttribute("typeName", reminder.TypeName);
            reminderElement.SetAttribute("name", reminder.Name);
            var descriptionElement = reminderElement.OwnerDocument.CreateElement("description");
            descriptionElement.InnerText = reminder.Description;
            reminderElement.AppendChild(descriptionElement);

            this.SaveReminderInternal(reminder, reminderElement);

            reminder.CompositeNotification.Save(reminderElement);
            reminder.CompositeCondition.Save(reminderElement);
        }
        public void SaveReminder(IReminder reminder, XmlElement parentElement)
        {
            var reminderElement = parentElement.OwnerDocument.CreateElement("reminder");

            parentElement.AppendChild(reminderElement);

            reminderElement.SetAttribute("enabled", reminder.Enabled.ToString());
            reminderElement.SetAttribute("typeName", reminder.TypeName);
            reminderElement.SetAttribute("name", reminder.Name);
            var descriptionElement = reminderElement.OwnerDocument.CreateElement("description");

            descriptionElement.InnerText = reminder.Description;
            reminderElement.AppendChild(descriptionElement);

            this.SaveReminderInternal(reminder, reminderElement);

            reminder.CompositeNotification.Save(reminderElement);
            reminder.CompositeCondition.Save(reminderElement);
        }
Example #30
0
        private void UpdateLocalDB(UserCondition condition)
        {
            IReminder reminderManager = DependencyService.Get <IReminder>();

            if (condition.reminder == UserCondition.ReminderType.None)
            {
                reminderManager.CancelAlarm(condition);
            }
            else
            {
                reminderManager.SetAlarm(condition); //TODO
            }

            App.db.AddOrUpdateReminder(new ReminderData
            {
                UserConditionId = condition.Id,
                ReminderType    = reminderTypePicker.SelectedIndex
            });

            App.db.AddOrUpdateCondition(new ConditionData(condition));
        }
Example #31
0
            public override Task Run(ref IReminder _)
            {
                Console.WriteLine("Send reminder " + _reminder.ID);

                return(Task.Run(async() =>
                {
                    if (_client.GetChannel(_reminder.ChannelId) is ITextChannel channel)
                    {
                        if (!string.IsNullOrWhiteSpace(_reminder.Prelude))
                        {
                            await channel.SendMessageAsync(_reminder.Prelude);
                        }

                        string name;
                        if (channel.Guild != null)
                        {
                            var user = (await channel.Guild.GetUserAsync(_reminder.UserId));
                            name = user.Nickname ?? user.Username;
                        }
                        else
                        {
                            var user = _client.GetUser(_reminder.UserId);
                            name = user.Username;
                        }

                        var embed = new EmbedBuilder()
                                    .WithDescription(_reminder.Message)
                                    .WithAuthor(name)
                                    .WithFooter(new FriendlyId32(_reminder.ID).ToString());

                        await channel.SendMessageAsync(embed: embed.Build());
                    }
                    else
                    {
                        Console.WriteLine($"Cannot send reminder: Channel `{_reminder.ChannelId}` is null");
                    }

                    await _reminders.Delete(_reminder.ID);
                }));
            }
 protected abstract void SaveReminderInternal(IReminder reminder, XmlElement reminderElement);
        public void RemoveReminder(IReminder reminder)
        {
            var listItem = this.remindersListView.Items.Cast <ListViewItem>().Where(item => item.Tag == reminder).First();

            this.remindersListView.Items.Remove(listItem);
        }
 public ReminderCommandArgs(IReminder reminder)
 {
     this.Reminder = reminder;
 }
 public void SaveSettingsToReminder(IReminder reminder)
 {
     this.EditorControl.Save(reminder as IntervalReminder);
 }
        private bool RemoveReminder(IReminder reminder)
        {
            if (this.allReminders.Remove(reminder))
            {
                reminder.Unschedule();
            }

            return false;
        }
 private void EditReminder(IReminder reminder)
 {
     if ((DialogResult)this.editReminderCommand.Do(new ReminderCommandArgs(reminder)) == DialogResult.OK)
     {
         this.panel.UpdateReminder(reminder);
     }
 }
 public void LoadSettingsFromReminder(IReminder reminder)
 {
     this.EditorControl.Populate(reminder as IntervalReminder);
 }
 public DialogResult EditReminder(IReminder reminder)
 {
     var reminderGuiController = this.reminderPlugins.GetPlugin(reminder).GetGuiController();
     var form = new ReminderConfigurationForm(this.pluginsRepository, reminder, reminderGuiController);
     return (DialogResult)this.showDialogCommand.Do(new WindowCommandArgs(form));
 }
 public void RemoveReminder(IReminder reminder)
 {
     var listItem = this.remindersListView.Items.Cast<ListViewItem>().Where(item => item.Tag == reminder).First();
     this.remindersListView.Items.Remove(listItem);
 }
        public void UpdateReminder(IReminder reminder)
        {
            var listItem = this.remindersListView.Items.Cast <ListViewItem>().Where(item => item.Tag == reminder).First();

            listItem.Text = reminder.Name;
        }
 public void SaveSettingsToReminder(IReminder reminder)
 {
     this.EditorControl.Save(reminder as IntervalReminder);
 }
 public void LoadSettingsFromReminder(IReminder reminder)
 {
     this.EditorControl.Populate(reminder as IntervalReminder);
 }
Example #44
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(
            IApplicationBuilder app,
            IHostingEnvironment env,
            IStatisticsUpdater statisticsUpdater,
            IReminder reminder,
            IInfoService infoService,
            IEventsUpdater eventsUpdater,
            IEmailSender emailSender,
            IPublicEventService publicEventService,
            IUserService userService,
            IPrivateEventService privateEventService,
            INoteService noteService,
            IReminderSettingService reminderSettingService
            )
        {
            var options = new RewriteOptions()
                          .AddRedirectToHttps();

            app.UseRewriter(options);
            app.UseHangfireServer();
            app.UseHangfireDashboard();
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            app.UseStaticFiles();
            app.UseAuthentication();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=PublicEvents}/{action=Index}");

                routes.MapRoute(
                    name: "privacy",
                    template: "PolitykaPrywatnosci",
                    defaults: new { controller = "PublicEvents", action = "PolitykaPrywatnosci" });

                routes.MapRoute(
                    name: "categoryView",
                    template: "Kategoria/{categoryId}/{categoryName}",
                    defaults: new { controller = "PublicEvents", action = "CategoryView" });

                routes.MapRoute(
                    name: "interval",
                    template: "Interwaly",
                    defaults: new { controller = "PublicEvents", action = "IntervalTimer" });

                routes.MapRoute(
                    name: "stopwatch",
                    template: "Stoper",
                    defaults: new { controller = "PublicEvents", action = "Stoper" });

                routes.MapRoute(
                    name: "userPanel",
                    template: "Panel",
                    defaults: new { controller = "User", action = "Index" });

                routes.MapRoute(
                    name: "calendar",
                    template: "Kalendarz",
                    defaults: new { controller = "User", action = "Calendar" });

                routes.MapRoute(
                    name: "create",
                    template: "Dodaj",
                    defaults: new { controller = "User", action = "Create" });

                routes.MapRoute(
                    name: "timezones",
                    template: "StrefyCzasowe",
                    defaults: new { controller = "PublicEvents", action = "TimeZones" });

                routes.MapRoute(
                    name: "event",
                    template: "wydarzenie/{id}/{name}",
                    defaults: new { controller = "PublicEvents", action = "Event" });
            });
            RecurringJob.AddOrUpdate(() => statisticsUpdater.UpdateStatistics(), Cron.MinuteInterval(5));
            RecurringJob.AddOrUpdate(() => eventsUpdater.GetFilmwebEventsFilms(), Cron.Daily);
            RecurringJob.AddOrUpdate(() => eventsUpdater.GetFilmwebEventsSerials(), Cron.Daily);
            RecurringJob.AddOrUpdate(() => eventsUpdater.GetKupBilecikEvents(), Cron.Daily);
            RecurringJob.AddOrUpdate(() => eventsUpdater.GetTicketMasterEvents(), Cron.Daily);
            RecurringJob.AddOrUpdate(() => eventsUpdater.GetEmpikEvents(), Cron.Daily);
            RecurringJob.AddOrUpdate(() => reminder.SendEmail(), Cron.Daily);
        }
 public void SaveSettingsToReminder(IReminder reminder)
 {
     this.EditorControl.Save(reminder as AfterPomodoroReminder);
 }
 public void SaveReminder(IReminder reminder, XmlElement parentElement)
 {
 }
 public void LoadSettingsFromReminder(IReminder reminder)
 {
     this.EditorControl.Populate(reminder as AfterPomodoroReminder);
 }
 public IReminderPlugin GetPlugin(IReminder reminder)
 {
     return this.GetPlugin(reminder.TypeName);
 }
 public void UpdateReminder(IReminder reminder)
 {
     var listItem = this.remindersListView.Items.Cast<ListViewItem>().Where(item => item.Tag == reminder).First();
     listItem.Text = reminder.Name;
 }
 private void DeleteReminder(IReminder reminder)
 {
     if (MessageBox.Show(
         this.GetPanel().FindForm(),
         "Are you sure you want to delete the reminder '" + reminder.Name + "'?",
         "Delete Reminder?",
         MessageBoxButtons.YesNo,
         MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         this.removeReminderCommand.Do(new ReminderCommandArgs(reminder));
         this.panel.RemoveReminder(reminder);
     }
 }