public void Initialize() { try { MaterialSkin.MaterialSkinManager.Themes theme = MaterialSkin.MaterialSkinManager.Instance.Theme; Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); List <Reminder> corruptedReminders = BLReminder.CheckForCorruptedReminders(); if (corruptedReminders != null) { string message = "RemindMe has detected"; if (corruptedReminders.Count > 1) { message += " problems with the following reminders: \r\n"; foreach (Reminder rem in corruptedReminders) { message += "- " + rem.Name + "\r\n"; } message += "\r\nThey have been removed from your list of reminders."; } else { message += " a problem with the reminder:\r\n\"" + corruptedReminders[0].Name + "\". \r\nIt has been removed from your list of reminders."; } MaterialMessageFormManager.MakeMessagePopup(message, 0); } BLIO.Log("Loading reminders from database"); //Give initial value to newReminderUc newReminderUc = new MUCNewReminder(this); newReminderUc.Visible = false; newReminderUc.saveState = false; this.Parent.Controls.Add(newReminderUc); //MaterialForm1.Instance.ucNewReminder = newReminderUc; //BLFormLogic.AddRemindersToListview(lvReminders, BLReminder.GetReminders().Where(r => r.Hide == 0).ToList()); //Get all "active" reminders); BLIO.Log("Starting the reminder timer"); tmrCheckReminder.Start(); pnlReminders.Visible = true; pnlReminders.DragDrop += MUCReminders_DragDrop; pnlReminders.DragEnter += MUCReminders_DragEnter; int counter = 0; //List<Reminder> reminders = BLReminder.GetOrderedReminders(); List <Reminder> conditionalReminders = BLReminder.GetReminders(true).Where(r => r.HttpId != null).Where(r => r.Hide == 0).Where(r => r.Enabled == 1).ToList(); List <Reminder> activeReminders = BLReminder.GetReminders().Where(r => r.Hide == 0).OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).ToList(); List <Reminder> disabledReminders = BLReminder.GetReminders().Where(r => r.Hide == 0).OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).ToList(); //we've got postponed reminders, now do this if (BLReminder.GetReminders().Where(r => !string.IsNullOrWhiteSpace(r.PostponeDate)).ToList().Count > 0) { activeReminders = OrderPostponedReminders(); } foreach (Reminder rem in activeReminders) { if (pnlReminders.Controls.Count >= 7) { break; //Only 7 reminders on 1 page } pnlReminders.Controls.Add(new MUCReminderItem(rem)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } foreach (Reminder rem in conditionalReminders) { if (pnlReminders.Controls.Count >= 7) { break; //Only 7 reminders on 1 page } pnlReminders.Controls.Add(new MUCReminderItem(rem)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } foreach (Reminder rem in disabledReminders) { if (pnlReminders.Controls.Count >= 7) { break; } pnlReminders.Controls.Add(new MUCReminderItem(rem)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } if (activeReminders.Count + disabledReminders.Count < 7) //Less than 7 reminders, let's fit in some empty MUCReminderItem 's { for (int i = (activeReminders.Count + disabledReminders.Count); i < 7; i++) { pnlReminders.Controls.Add(new MUCReminderItem(null)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } } if (BLReminder.GetReminders().Where(r => r.Hide == 0).ToList().Count <= 7) { MaterialForm1.Instance.UpdatePageNumber(-1); //Tell MaterialForm1 that there are not more than 1 pages } else { if (theme == MaterialSkin.MaterialSkinManager.Themes.DARK) { btnNextPage.Icon = Properties.Resources.NextWhite; } else { btnNextPage.Icon = Properties.Resources.nextDark; } MaterialForm1.Instance.UpdatePageNumber(pageNumber); } //Just design, no logic here. Drags the color panel a bit down and shrink it so it doesnt overlap over the shadow MUCReminderItem itm = (MUCReminderItem)pnlReminders.Controls[0]; itm.pnlSideColor.Size = new Size(itm.pnlSideColor.Width, itm.pnlSideColor.Height - 4); itm.pnlSideColor.Location = new Point(itm.pnlSideColor.Location.X, itm.pnlSideColor.Location.Y + 4); //Http requests foreach (Reminder rem in conditionalReminders) { HttpRequests httpObj = BLLocalDatabase.HttpRequest.GetHttpRequestById((long)rem.Id); System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); timer.Interval = Convert.ToInt32(httpObj.Interval * 60000); timer.Tick += (object s, EventArgs a) => ExecuteHttpRequest(s, a, httpObj, rem); httpTimers.Add(rem, timer); timer.Start(); } stopwatch.Stop(); BLIO.Log("MUCReminders Initialize took " + stopwatch.ElapsedMilliseconds + " ms"); } catch (Exception ex) { BLIO.Log("MUCReminders.Initialize() FAILED. Type -> " + ex.GetType().ToString()); BLIO.Log("Message -> " + ex.Message); } }
public void Initialize() { try { List <Reminder> corruptedReminders = BLReminder.CheckForCorruptedReminders(); if (corruptedReminders != null) { string message = "RemindMe has detected"; if (corruptedReminders.Count > 1) { message += " problems with the following reminders: \r\n"; foreach (Reminder rem in corruptedReminders) { message += "- " + rem.Name + "\r\n"; } message += "\r\nThey have been removed from your list of reminders."; } else { message += " a problem with the reminder:\r\n\"" + corruptedReminders[0].Name + "\". \r\nIt has been removed from your list of reminders."; } RemindMeMessageFormManager.MakeMessagePopup(message, 0); } BLIO.Log("Loading reminders from database"); //Give initial value to newReminderUc newReminderUc = new UCNewReminder(this); newReminderUc.Visible = false; newReminderUc.saveState = false; this.Parent.Controls.Add(newReminderUc); Form1.Instance.ucNewReminder = newReminderUc; //BLFormLogic.AddRemindersToListview(lvReminders, BLReminder.GetReminders().Where(r => r.Hide == 0).ToList()); //Get all "active" reminders); BLIO.Log("Starting the reminder timer"); tmrCheckReminder.Start(); pnlReminders.Visible = true; pnlReminders.DragDrop += UCReminders_DragDrop; pnlReminders.DragEnter += UCReminders_DragEnter; int counter = 0; List <Reminder> activeReminders = BLReminder.GetReminders().Where(r => r.Hide == 0).OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).ToList(); List <Reminder> disabledReminders = BLReminder.GetReminders().Where(r => r.Hide == 0).OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).ToList(); foreach (Reminder rem in activeReminders) { if (pnlReminders.Controls.Count >= 7) { break; //Only 7 reminders on 1 page } pnlReminders.Controls.Add(new UCReminderItem(rem)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } foreach (Reminder rem in disabledReminders) { if (pnlReminders.Controls.Count >= 7) { break; } pnlReminders.Controls.Add(new UCReminderItem(rem)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } if (activeReminders.Count + disabledReminders.Count < 7) //Less than 7 reminders, let's fit in some empty UCReminderItem 's { for (int i = (activeReminders.Count + disabledReminders.Count); i < 7; i++) { pnlReminders.Controls.Add(new UCReminderItem(null)); if (counter > 0) { pnlReminders.Controls[counter].Location = new Point(0, pnlReminders.Controls[counter - 1].Location.Y + pnlReminders.Controls[counter - 1].Size.Height); } counter++; } } if (BLReminder.GetReminders().Where(r => r.Hide == 0).ToList().Count <= 7) { Form1.Instance.UpdatePageNumber(-1); //Tell form1 that there are not more than 1 pages } else { btnNextPage.Iconimage = Properties.Resources.NextWhite; Form1.Instance.UpdatePageNumber(pageNumber); } } catch (Exception ex) { BLIO.Log("UCReminders.Initialize() FAILED. Type -> " + ex.GetType().ToString()); BLIO.Log("Message -> " + ex.Message); } }