Esempio n. 1
0
        public AddActivityView(List<EnquiryModel> enquiries, ActivityModel activity)
        {
            InitializeComponent();
            DataContext = ViewModel = new AddActivityViewModel(enquiries, activity);

            Owner = Application.Current.MainWindow;

            Loaded += OnAddActivityViewLoaded;
        }
Esempio n. 2
0
        public AddActivityView(EnquiryModel enquiryModel, ActivityModel activity = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new AddActivityViewModel(enquiryModel, activity);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner = Application.Current.MainWindow;

            Loaded += OnAddActivityViewLoaded;
        }
Esempio n. 3
0
 private void EditActivityCommandExecuted(ActivityModel item)
 {
     RaisePropertyChanged("DisableParentWindow");
     _originalActivity = item.Clone();
     var window = new AddActivityView(Enquiry, item);
     window.ShowDialog();
     if (window.DialogResult != null && !window.DialogResult.Value)
     {
         item.ActivityType.ID = _originalActivity.ActivityType.ID;
         item.Details = _originalActivity.Details;
         item.Direction = _originalActivity.Direction;
         item.Length = _originalActivity.Length;
         item.Date = _originalActivity.Date;
         //item.FollowUp = _originalActivity.FollowUp;
         
         item.Refresh();
     }
     else
     {
         Enquiry.Activities = new ObservableCollection<ActivityModel>(Enquiry.Activities.OrderByDescending(x => x.Date));
     }
     RaisePropertyChanged("EnableParentWindow");
 }
Esempio n. 4
0
 private void DeleteActivityCommandExecuted(ActivityModel item)
 {
     Enquiry.Activities.Remove(item);
     _crmDataUnit.ActivitiesRepository.Delete(item.Activity);
 }
Esempio n. 5
0
        private ActivityModel GetActivityWithoutEnquiry()
        {
            var activityModel = new ActivityModel(new Data.Model.Activity()
            {
                ID = Guid.NewGuid(),
                Date = DateTime.Now,
            });

            return activityModel;
        }
Esempio n. 6
0
        public async void LoadData()
        {
            IsBusy = true;

            var types = await _crmDataUnit.ActivityTypesRepository.GetAllAsync();
            ActivityTypes = new ObservableCollection<ActivityType>(types.OrderBy(x => x.Name));

            OnLoadCurrentUser();

            if (_isEditMode)
            {
                var desiredActivity = await _crmDataUnit.ActivitiesRepository.GetUpdatedActivity(_activity.Activity.ID);

                // Check if we have new changes
                if (desiredActivity != null && desiredActivity.LastEditDate != null && _activity.LoadedTime < desiredActivity.LastEditDate)
                {
                    bool hadActivityFollowUp = Activity.HasFollowUp;
                    Activity = new ActivityModel(desiredActivity);

                    if (hadActivityFollowUp && desiredActivity.FollowUp == null)
                    {
                        Activity.FollowUp = null;
                    }
                    else if (desiredActivity.FollowUp != null)
                    {
                        Activity.FollowUp = new FollowUpModel(desiredActivity.FollowUp);
                    }

                    RaisePropertyChanged(() => HasActivityFollowUp);

                    Assignee = desiredActivity.User;
                    ActivityType = desiredActivity.ActivityType;
                }
            }

            IsBusy = false;
        }
Esempio n. 7
0
        private ActivityModel GetActivity()
        {
            var activityModel = new ActivityModel(new Data.Model.Activity()
            {
                ID = Guid.NewGuid(),
                EnquiryID = _enquiry.Enquiry.ID,
                Date = DateTime.Now,
            });

            return activityModel;
        }
Esempio n. 8
0
        private void ProcessActivity(ActivityModel activityModel)
        {
            _isEditMode = (activityModel != null);

            Activity = (_isEditMode) ? activityModel : GetActivity();
            if (_isEditMode)
            {
                _originalActivity = Activity.Clone();
            }
            Activity.PropertyChanged += ActivityOnPropertyChanged;

            if (_isEditMode)
            {
                Assignee = activityModel.Assignee;
                ActivityType = activityModel.ActivityType;
            }

        }
Esempio n. 9
0
        public AddActivityViewModel(IEnumerable<EnquiryModel> enquiries, ActivityModel activityModel)
        {
            Enquiries = new ObservableCollection<EnquiryModel>(enquiries.OrderBy(x => x.EventType.Name).ThenByDescending(x => x.CreationDate));

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();


            CanEditEveryoneActivities = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnActivities = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);
            IsFromCRM = true;
            CanDeleteFollowUp = AccessService.Current.UserHasPermissions(Resources.PERMISSION_DELETE_FOLLOWUP_ALLOWED);
            CanEditEveryoneFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);
            AddFollowUpCommand = new RelayCommand(AddFollowUpCommandExecuted, AddFollowUpCommandCanExecute);
            EditFollowUpCommand = new RelayCommand<FollowUpModel>(EditFollowUpCommandExecuted);
            DeleteFollowUpCommand = new RelayCommand<FollowUpModel>(DeleteFollowUpCommandExecuted);
            OpenEnquiryCommand = new RelayCommand(OpenEnquiryCommandExecute, OpenEnquiryCommandCanExecute);

            if (activityModel != null)
            {
                ProcessActivity(activityModel);
                SelectedEnquiry = Enquiries.FirstOrDefault(x => x.Enquiry == activityModel.Activity.Enquiry);
            }
            else
            {
                Activity = GetActivityWithoutEnquiry();
                Activity.PropertyChanged += ActivityOnPropertyChanged;
            }
        }
Esempio n. 10
0
        public AddActivityViewModel(EnquiryModel enquiryModel, ActivityModel activityModel)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            IsFromCRM = false;
            CanDeleteFollowUp = AccessService.Current.UserHasPermissions(Resources.PERMISSION_DELETE_FOLLOWUP_ALLOWED);
            CanEditEveryoneFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);
            AddFollowUpCommand = new RelayCommand(AddFollowUpCommandExecuted, AddFollowUpCommandCanExecute);
            EditFollowUpCommand = new RelayCommand<FollowUpModel>(EditFollowUpCommandExecuted);
            DeleteFollowUpCommand = new RelayCommand<FollowUpModel>(DeleteFollowUpCommandExecuted);

            ProcessActivity(activityModel);
        }
Esempio n. 11
0
        private void EditActivityCommandExecute(ActivityModel item)
        {
            RaisePropertyChanged("DisableParentWindow");

            var window = new AddActivityView(_allEnquiries, item);
            window.ShowDialog();

            RaisePropertyChanged("EnableParentWindow");

            item.Refresh();

            if (window.DialogResult == null || window.DialogResult != true) return;

            ReloadEnquiries();
        }