Inheritance: IPersonRepository
        /// <summary>
        /// سازنده پیش فرض کلاس مدیریت اشخاص 
        /// که در این سازنده به مسیچ ها نیز پاسخ داده میشود
        /// </summary>
        public PersonViewModel()
        {
            #region Messages
            // عضو شدن به مسیچ ویرایش کردن
            Messenger.Default.Register<Person>(this,
           "edit person",
           x =>
           {
               _currentPerson = x;
               this.ActionMode = Mode.Edit;
               this._orginal = (PersonViewModel)this.MemberwiseClone();
           });
            //عضو شدن به مسیج افزودن کاربر
            Messenger.Default.Register<Person>(this,
          "insert person",
          x =>
          {
              FireValidationForInsert();
              _currentPerson = x;
              this.ActionMode = Mode.Add;
          });
            #endregion Messages

            this._repository = PersonsListViewModel._repository;
            this._cities = null;
            this.CancelCommand = new RelayCommand(()=>this.Cancel());
        }
        /// <summary>
        /// سازنده پیش فرض
        /// </summary>
        public PersonsListViewModel()
        {
            _repository = new PersonRepository();
            _repository.PersonAdded += _repository_PersonAdded;
            _repository.PersonUpdated += _repository_PersonUpdated;
            _repository.PersonDeleted += _repository_PersonDeleted;
            this._persons = new ObservableCollection<Person>(_repository.SelectPersons());
            #region messages

            this.AddCommand = new RelayCommand<Person>
                (person => Messenger.Default.Send(person, "add persons"));

            this.EditCommand = new RelayCommand<Person>
                (person => Messenger.Default.Send(person, "show edit window"), param => this.CanEdit());

            this.LoadCommand = new Helpers.RelayCommand(param =>
            {
                this._persons = new ObservableCollection<Person>(_repository.SelectPersons());
                base.OnPropertyChanged("Persons");
            });

            #endregion //messages
        }