/// <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);
                    }
                }
            }
        }
Exemplo n.º 3
0
        /// <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;
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 6
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);
 }
Exemplo n.º 7
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);
                    }
                }
            }
        }