/// <summary>
        /// Delete event
        /// </summary>
        public static void DeleteEvent(BaseEventItemModel eventToDelete)
        {
            if (eventToDelete == null)
            {
                throw new ArgumentNullException();
            }
            using (var db = new EventManagerDBContext())
            {
                var query = from event1 in db.Events
                            where event1.MeetingID == eventToDelete.ID
                            select event1;
                var result = query.FirstOrDefault();
                if (result != null)
                {
                    db.Events.Remove(result);

                    // Delete attendance
                    var queryGuest = from event1 in db.EventGuests
                                     where event1.MeetingID == eventToDelete.ID
                                     select event1;
                    db.EventGuests.RemoveRange(queryGuest);

                    db.SaveChanges();
                }
            }
        }
Beispiel #2
0
 private void HideEvent(BaseEventItemModel eventToHide)
 {
     // Find and delete event from collection
     foreach (var day in CalendarDays)
     {
         foreach (var event1 in day.DayEvents)
         {
             if (event1.Event.ID == eventToHide.ID)
             {
                 day.DayEvents.Remove(event1);
                 break;
             }
         }
     }
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            theEvent    = e?.Parameter as BaseEventItemModel;
            allContacts = theEvent.AppViewModel.AllContacts;

            if (allContacts.Contacts.Items.Count == 0)
            {
                NavigateToNewContactsListPanel.Visibility = Visibility.Visible;
                zoom.Visibility = Visibility.Collapsed;
                AcceptChangesPanel.Visibility = Visibility.Collapsed;
            }
            else
            {
                NavigateToNewContactsListPanel.Visibility = Visibility.Collapsed;
                zoom.Visibility = Visibility.Visible;
                AcceptChangesPanel.Visibility = Visibility.Visible;

                theEvent.ImplimentsSearch = true;

                theEvent.SearchTermChanged += (sender, searchTerm) =>
                {
                    allContacts.Contacts.SearchTerm = searchTerm;
                };

                allContacts.Contacts.CollectionChanged += (s, e2) =>
                {
                    zoom.InvalidateArrange();
                    contactSource.Source = allContacts.Contacts.ItemsByCategory;
                    (zoom.ZoomedOutView as ListViewBase).ItemsSource =
                        contactSource.View.CollectionGroups;
                };

                contactSource.Source = allContacts.Contacts.ItemsByCategory;
                (zoom.ZoomedOutView as ListViewBase).ItemsSource =
                    contactSource.View.CollectionGroups;

                foreach (var contact in allContacts.Contacts.Items)
                {
                    if (theEvent.GuestListModel.GuestList.ContainsContact(contact.ID))
                    {
                        GuestGridViewIn.SelectedItems.Add(contact);
                    }
                }
            }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            EventsModel = e?.Parameter as BaseEventItemModel;
            if (EventsModel.EditEvent)
            {
                editButton.Visibility      = Visibility.Collapsed;
                SaveCancelPanel.Visibility = Visibility.Visible;
                EventsModel.EditEventCommand.Execute();
            }
            else if (!EventsModel.IsNewEvent)
            {
                editButton.Visibility      = Visibility.Visible;
                SaveCancelPanel.Visibility = Visibility.Collapsed;
            }

            eventGuestFrame.Navigate(typeof(EventGuestListPage), EventsModel.GuestListModel);
        }
        public static IEnumerable <int> GrabDates(BaseEventItemModel item, int month, int year)
        {
            var date = new DateTime(item.EventBegin.Year, item.EventBegin.Month, item.EventBegin.Day);

            while (true)
            {
                if (date.Month == month && date.Year == year)
                {
                    yield return(date.Day);
                }

                if (date.Month == item.EventEnd.Month && date.Day == item.EventEnd.Day)
                {
                    break;
                }

                date = date.AddDays(1);
            }
        }
        /// <summary>
        /// Get contacts for event
        /// </summary>
        public EventGuestListModel(
            AppLevelModel appViewModel,
            BaseEventItemModel eventModel) : base(appViewModel)
        {
            IconCode      = "People";
            PageTitle     = Q.Resources.EventAttendance_PageTitle;
            MainMenu      = appViewModel.GuestMenuForEventContacts;
            MainMenuIndex = 0;

            SubMenu.Add(new MenuItem <AppLevelModel>(Q.Resources.Event_AcceptChanges, "Accept", AcceptAttendanceChanges));
            SubMenuIndex = -1;
            ResetSubMenuIndexOnNavigation = true;

            // Set bottom menu
            BottomMenu = new ObservableCollection <MenuItem <AppLevelModel> >()
            {
                new MenuItem <AppLevelModel>(
                    appViewModel.Settings.AboutViewModel, typeof(AboutPage))
            };
            BottomMenuIndex = -1;
            ResetBottomMenuIndexOnNavigation = true;

            ImplimentsSearch = true;
        }
Beispiel #7
0
 /// <summary>
 /// Should be called from event to be deleted.
 /// </summary>
 /// <param name="newEvent"></param>
 public void DeleteEvent(BaseEventItemModel eventToDelete)
 {
     SqLiteManager.DeleteEvent(eventToDelete);
     HideEvent(eventToDelete);
 }
Beispiel #8
0
        /// <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);
                    }
                }
            }
        }