/// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            var temp = e.Parameter as ProjectMemberContrainModel;
            if (temp != null)
            {
                _contrain = new ProjectMemberContrainModel(temp);

                removeButton.IsEnabled = ProjectMemberRepository.Instance.IsManager(_contrain.ProjectID);
                favorButton.IsEnabled = removeButton.IsEnabled;
                unfavorButton.IsEnabled = removeButton.IsEnabled;

                if (string.IsNullOrEmpty(_contrain.Role))   // Validate PM
                {
                    // Validate number tasks.
                    var taskAll = await TaskRepository.Instance.GetAllTasksForProject(_contrain.ProjectID);

                    var query = from task in taskAll
                                where task.UserID == _contrain.UserID
                                select task;

                    if (query.Any())
                    {
                        if (_contrain.IsActive)
                        {
                            unfavorButton.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            favorButton.Visibility = Visibility.Visible;
                        }
                    }
                    else
                    {
                        removeButton.Visibility = Visibility.Visible;
                    }
                }

                _model = await UserInformationRepository.Instance.GetUser(_contrain.UserID);

                if (_model != null)
                {
                    Username.Text = _model.Username;

                    Birthday.Text = string.IsNullOrEmpty(_model.DOB)
                                        ? LanguageProvider.Resource["NotAvailable"]
                                        : Convert.ToDateTime(_model.DOB).ToString(
                                            CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern);

                    Telephone.Text = string.IsNullOrEmpty(_model.Phone)
                                         ? LanguageProvider.Resource["NotAvailable"]
                                         : _model.Phone;

                    Email.Text = string.IsNullOrEmpty(_model.Email)
                                     ? LanguageProvider.Resource["NotAvailable"]
                                     : _model.Email;
                }
            }
        }
        private async void UpdateData(ProjectMemberContrainModel data)
        {
            Navigator.Instance.MainProgressBar.Visibility = Visibility.Visible;
            if (data == null)
            {
                return;
            }

            var res = await ProjectMemberRepository.Instance.EditContrain(data);
            Navigator.Instance.DisplayStatus(res.IsSuccessStatusCode
                                                         ? ConnectionStatus.Done
                                                         : ConnectionStatus.Error);

            if (res.IsSuccessStatusCode)
            {
                Messenger.Instance.Notify(RefreshMember.Refresh);
                Navigator.Instance.HideTimelinePopup();
            }

            Navigator.Instance.MainProgressBar.Visibility = Visibility.Collapsed;
        }