Beispiel #1
0
 public BaseViewModel(IWindowWithDialogs window)
 {
     Window = window;
     if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(window as System.Windows.DependencyObject))
     {
         return;
     }
     Window = window ?? throw new ArgumentNullException("Window");
 }
Beispiel #2
0
        public PointsEditor(IEnumerable <IHierarchicalEmcosPoint> balancePoints, IEnumerable <IHierarchicalEmcosPoint> otherPoints, IWindowWithDialogs window)
        {
            _rootEmcosGroup = DEFAULT_ROOT_EMCOS_GROUP;
            _window         = window;

            EmcosPoints = new HierarchicalEmcosPointCollection(null, balancePoints);

            OtherPoints = new HierarchicalEmcosPointCollection(null, otherPoints);

            InitializeComponent();
            DataContext = this;

            NewPoints = new List <IHierarchicalEmcosPoint>();

            // настройка сервиса
            System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding()
            {
                MaxBufferSize          = 10240000,
                MaxReceivedMessageSize = 10240000,
                Name = "ServiceSoap"
            };
            _emcosWebServiceClient = new EmcosTestWebService.ServiceSoapClient(binding,
                                                                               new System.ServiceModel.EndpointAddress(String.Format("http://{0}/{1}",
                                                                                                                                     EmcosSettings.Default.ServerAddress,
                                                                                                                                     EmcosSettings.Default.WebServiceName)));

            this.Loaded += (s, e) =>
            {
                //await LoadPointsFromServiceAsync();
            };

            CommandUpdate = new DelegateCommand(async() =>
            {
                await LoadPointsFromServiceAsync();
            });

            CommandDelete = new DelegateCommand(() =>
            {
                var dialog     = _window.DialogQuestion(String.Format("Точка '{0}' будет удалена. Вы уверены, что хотите продолжить?", _emcosPointsSelectedValue.Name));
                dialog.YesText = "Да, удалить";
                dialog.NoText  = "Отменить";
                dialog.Yes     = () =>
                {
                    _emcosPointsSelectedValue.Parent.Children.Remove(_emcosPointsSelectedValue);

                    if (NewPoints.Contains(_emcosPointsSelectedValue))
                    {
                        NewPoints.Remove(_emcosPointsSelectedValue);
                    }

                    if (DeletedPoints.Contains(_emcosPointsSelectedValue) == false)
                    {
                        DeletedPoints.Add(_emcosPointsSelectedValue);
                    }
                };
            }, (o) => _emcosPointsSelectedValue != null && _emcosPointsSelectedValue.Parent != null);

            CommandMoveUp = new DelegateCommand(() =>
            {
                int index = _emcosPointsSelectedValue.Parent.Children.IndexOf(_emcosPointsSelectedValue);
                _emcosPointsSelectedValue.Parent.Children.Move(index, index - 1);
            },
                                                (o) => _emcosPointsSelectedValue != null &&
                                                _emcosPointsSelectedValue.Parent != null &&
                                                _emcosPointsSelectedValue.Parent.Children.IndexOf(_emcosPointsSelectedValue) > 0
                                                );

            CommandMoveDown = new DelegateCommand(() =>
            {
                int index = _emcosPointsSelectedValue.Parent.Children.IndexOf(_emcosPointsSelectedValue);
                _emcosPointsSelectedValue.Parent.Children.Move(index, index + 1);
            },
                                                  (o) => _emcosPointsSelectedValue != null &&
                                                  _emcosPointsSelectedValue.Parent != null &&
                                                  _emcosPointsSelectedValue.Parent.Children.IndexOf(_emcosPointsSelectedValue) < _emcosPointsSelectedValue.Parent.ChildrenCount - 1);

            CommandClear = new DelegateCommand(() =>
            {
                var dialog     = _window.DialogQuestion("Список точек будет очищен. Вы уверены, что хотите продолжить?");
                dialog.YesText = "Да, очистить";
                dialog.NoText  = "Отменить";
                dialog.Yes     = () =>
                {
                    DeletedPoints.Clear();
                    DeletedPoints.AddRange(EmcosPoints.FlatItemsList);
                    EmcosPoints.Clear();
                    NewPoints.Clear();
                };
            }, (o) => EmcosPoints != null && EmcosPoints.Count > 0);

            CommandAdd = new DelegateCommand(() =>
            {
                if (_emcosPointsSelectedValue != null)
                {
                    _emcosPointsSelectedValue.Children.Add(_emcosPointsFromSiteSelectedValue);
                }
                else
                {
                    EmcosPoints.Add(_emcosPointsFromSiteSelectedValue);
                }

                if (NewPoints.Contains(_emcosPointsFromSiteSelectedValue) == false)
                {
                    NewPoints.Add(_emcosPointsFromSiteSelectedValue);
                }
            }, (o) => _emcosPointsFromSiteSelectedValue != null);

            CommandBalanceFormula = new DelegateCommand(() =>
            {
                BalanceFormulaEditor ctrl = new BalanceFormulaEditor();
                ctrl.DataContext          = Repository.Instance.GetGroupBalanceFormula(_emcosPointsSelectedValue.Id);

                var dialog = _window.DialogCustom(ctrl, TMPApplication.WpfDialogs.DialogMode.YesNo);

                dialog.YesText = "Записать";
                dialog.NoText  = "Отменить";
                dialog.Yes     = () =>
                {
                    ;
                };
            }, (o) => _emcosPointsSelectedValue != null && _emcosPointsSelectedValue.IsGroup);
        }