/// <summary>
        /// Initializes a new instance of the AddPOIViewModel class.
        /// </summary>
        public AddEditPOIViewModel(INavigationService navigationservice)
        {
            Messenger.Default.Register<Tuple<int, int, Mode>>(this,
             tuple =>
             {
             this.Mode = tuple.Item3;

             if (this.Mode == Mode.add)
             {
             PointOfInterest = new Model.Tables.PointOfInterest();
             DataServiceTrip dsTrip = new DataServiceTrip();
             PointOfInterest.Trip = dsTrip.getTripById(tuple.Item1);
             }
             else
             {
             PointOfInterest = GetPOIInDB(tuple.Item2);
             }

             EditableObject = new Caretaker<PointOfInterest>(this.PointOfInterest);
             EditableObject.BeginEdit();

             InitialiseValidator();
             });

            Messenger.Default.Register<PointOfInterest>(this,
             poi =>
             {
             PointOfInterest = poi;

             });

            Messenger.Default.Register<Tuple<PointOfInterest,Mode>>(this,
            tuple =>
            {
            this.Mode = tuple.Item2;
            PointOfInterest = tuple.Item1;

            EditableObject = new Caretaker<PointOfInterest>(this.PointOfInterest);
            EditableObject.BeginEdit();

            InitialiseValidator();
            });

            this._navigationService = navigationservice;
        }
        /// <summary>
        /// Initializes a new instance of the AddPOIViewModel class.
        /// </summary>
        public AddEditPOIViewModel(INavigationService navigationservice)
        {
            Messenger.Default.Register <Tuple <int, int, Mode> >(this,
                                                                 tuple =>
            {
                this.Mode = tuple.Item3;

                if (this.Mode == Mode.add)
                {
                    PointOfInterest        = new Model.Tables.PointOfInterest();
                    DataServiceTrip dsTrip = new DataServiceTrip();
                    PointOfInterest.Trip   = dsTrip.getTripById(tuple.Item1);
                }
                else
                {
                    PointOfInterest = GetPOIInDB(tuple.Item2);
                }

                EditableObject = new Caretaker <PointOfInterest>(this.PointOfInterest);
                EditableObject.BeginEdit();

                InitialiseValidator();
            });

            Messenger.Default.Register <PointOfInterest>(this,
                                                         poi =>
            {
                PointOfInterest = poi;
            });

            Messenger.Default.Register <Tuple <PointOfInterest, Mode> >(this,
                                                                        tuple =>
            {
                this.Mode       = tuple.Item2;
                PointOfInterest = tuple.Item1;

                EditableObject = new Caretaker <PointOfInterest>(this.PointOfInterest);
                EditableObject.BeginEdit();

                InitialiseValidator();
            });

            this._navigationService = navigationservice;
        }