/// <summary> /// Creates a new event and saves a copy /// </summary> private NewEventItemModel(AppLevelModel appViewModel, DateTime eventStartDate, bool navFromCalendar) : base(appViewModel, eventStartDate, navFromCalendar) { EditEvent = true; IsNewEvent = true; // Override base icons IconCode = "Add"; PageTitle = Q.Resources.NewEvent_PageTitle; SubMenu.Clear(); SubMenu.Add(new MenuItem <AppLevelModel>(Q.Resources.Event_EditAttendance, "Contact2", EditAttendanceCommand)); SubMenu.Add(new MenuItem <AppLevelModel>(Q.Resources.Event_SaveEvent, "Save", SaveEventCommand)); SubMenu.Add(new MenuItem <AppLevelModel>(Q.Resources.Event_DiscardChanges, "Cancel", CancelEventChangesCommand)); SqLiteManager.RetriveNewEvent(this); // Create backup meetingBackup = new Meeting { EventTitle = EventTitle, Venue = Venue, Description = Description, EventStart = EventBegin, EventEnd = EventBegin, ImagePath = ImagePath, VenueContactEmail = VenueContactEmail, VenueContactPhone = VenueContactPhone, MeetingID = ID }; }
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) { base.OnNavigatingFrom(e); //foreach (var item in GuestGridViewIn.SelectedItems) //{ // theEvent.EditedGuestList.Add((item as ContactItemModel).ID); //} foreach (var contact in allContacts.Contacts.Items) { if (GuestGridViewIn.SelectedItems.Contains(contact)) { // Add contact if not laready there if (!theEvent.GuestListModel.GuestList.ContainsContact(contact.ID)) { var newEvent = SqLiteManager.AddGuestToEvent(theEvent.ID, contact); theEvent.GuestListModel.GuestList.Add(newEvent); } } else { var eventGuest = theEvent.GuestListModel.GuestList.GetEventGuest(contact.ID); if (eventGuest != null) { SqLiteManager.RemoveGuestFromEvent(eventGuest.ID); // Remove contact theEvent.GuestListModel.GuestList.RemoveContact(contact.ID); } } } }
/// <summary> /// Get all contacts /// </summary> public MyContactsModel(AppLevelModel appViewModel) : base(appViewModel) { IconCode = "People"; PageTitle = Q.Resources.MyContacts_PageTitle; MainMenu = appViewModel.TopLevelMenu; menuToRestore = appViewModel.TopLevelMenu; MainMenuIndex = 2; addContactsMenu = new ObservableCollection <MenuItem <AppLevelModel> >(); addContactsMenu.Add(new MenuItem <AppLevelModel>(Q.Resources.MyContacts_BackToEventList, "ImportAll")); SqLiteManager.GetAllContacts(appViewModel, Contacts); SubMenu.Add(new MenuItem <AppLevelModel>( appViewModel.NewContact, typeof(ContactItemPage), ResetNewContact)); SubMenuIndex = -1; ResetSubMenuIndexOnNavigation = true; BottomMenu = new ObservableCollection <MenuItem <AppLevelModel> >() { new MenuItem <AppLevelModel>( appViewModel.Settings.AboutViewModel, typeof(AboutPage)) }; BottomMenuIndex = -1; ResetBottomMenuIndexOnNavigation = true; ImplimentsSearch = true; }
/// <summary> /// Add new contact or update existing contact, and save to file /// </summary> public void AddOrUpdate(ContactItemModel contact, bool userNameInStandardFormat) { var catName = userNameInStandardFormat ? contact.LastName[0].ToString().ToUpper() : contact.FirstName[0].ToString().ToUpper(); if (contact.ID == -1) { // Update contact var id = SqLiteManager.AddOrUpdateContact(contact); contact.ID = id; contact.Category = GetCategory(catName); Items.Add(contact); RaiseCollectionChange( contact, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); } else { foreach (var item in Items) { if (item.ID == contact.ID) { var newCatName = userNameInStandardFormat ? contact.LastName[0].ToString().ToUpper() : contact.FirstName[0].ToString().ToUpper(); item.EmailAddress = contact.EmailAddress; item.EmailAddress2 = contact.EmailAddress2; item.FirstName = contact.FirstName; item.LastName = contact.LastName; item.PhoneNumber = contact.PhoneNumber; item.PhoneNumber2 = contact.PhoneNumber2; item.Category = GetCategory(newCatName); item.ImagePath = contact.ImagePath; RaiseCollectionChange( contact, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); SqLiteManager.AddOrUpdateContact(contact); return; } } throw new IndexOutOfRangeException($"Contact ID {contact.ID} not found"); } }
private void GuestGridView_ItemClick(object sender, ItemClickEventArgs e) { var model = e.ClickedItem as EventGuest; if (model.GuestStatus == GustArrivalStatus.Unknown) { model.GuestStatus = GustArrivalStatus.Arrived; } else if (model.GuestStatus == GustArrivalStatus.Arrived) { model.GuestStatus = GustArrivalStatus.ArrivedLate; } else if (model.GuestStatus == GustArrivalStatus.ArrivedLate) { model.GuestStatus = GustArrivalStatus.DidNotCome; } else { model.GuestStatus = GustArrivalStatus.Unknown; } SqLiteManager.UpdateAttendance(model); }
/// <summary> /// Should be called from event to be deleted. /// </summary> /// <param name="newEvent"></param> public void DeleteEvent(BaseEventItemModel eventToDelete) { SqLiteManager.DeleteEvent(eventToDelete); HideEvent(eventToDelete); }
/// <summary> /// Add event to calendar for display /// </summary> public void AddOrUpdateEvent(BaseEventItemModel theEventItemModel) { EventItemModel eventItemModel; if (theEventItemModel is NewEventItemModel) { SqLiteManager.SaveNewEvent(theEventItemModel as NewEventItemModel); eventItemModel = ConvertEvent(theEventItemModel as NewEventItemModel); } else { SqLiteManager.UpdateExistingEvent(theEventItemModel as EventItemModel); eventItemModel = theEventItemModel as EventItemModel; HideEvent(eventItemModel as EventItemModel); } if (!(eventItemModel.EventBegin < FirstDayOfMonth || eventItemModel.EventEnd > LastDayOfMonth.AddDays(1))) { int offset = SqLiteManager.GetCalendarMonthOffset(CurrentDate.Month, CurrentDate.Year); int start; if (eventItemModel.EventBegin < FirstDayOfMonth) { start = 1; } else { start = eventItemModel.EventBegin.Day; } int end; if (eventItemModel.EventEnd > LastDayOfMonth) { end = LastDayOfMonth.Day; } else { end = eventItemModel.EventEnd.Day; } if (start == end) { CalendarDays[start + offset - 1]. DayEvents. Add(new DayEvent(eventItemModel, EventDurationType.None)); } else { for (var day = start; day <= end; day++) { DayEvent dayEvent; if (day == start) { dayEvent = new DayEvent(eventItemModel, EventDurationType.BeginMultiday); } else if (day == end) { dayEvent = new DayEvent(eventItemModel, EventDurationType.EndMultiday); } else { dayEvent = new DayEvent(eventItemModel, EventDurationType.MiddleMultiday); } CalendarDays[day + offset].DayEvents.Add(dayEvent); } } } }