private IPage OpenEditDialog(DialogViewModelBase master, StokDocumentType documentType, int id)
        {
            switch (documentType)
            {
            case StokDocumentType.IncomeDoc:
                return(navigation.OpenTdiTab <Dialogs.Stock.IncomeDocDlg, int>(master, id));

            case StokDocumentType.ExpenseEmployeeDoc:
                return(navigation.OpenViewModel <ExpenseEmployeeViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            case StokDocumentType.ExpenseObjectDoc:
                return(navigation.OpenViewModel <ExpenseObjectViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            case StokDocumentType.CollectiveExpense:
                return(navigation.OpenViewModel <CollectiveExpenseViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            case StokDocumentType.WriteoffDoc:
                return(navigation.OpenViewModel <WriteOffViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            case StokDocumentType.TransferDoc:
                return(navigation.OpenViewModel <WarehouseTransferViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            case StokDocumentType.Completion:
                return(navigation.OpenViewModel <CompletionViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id)));

            default:
                throw new NotSupportedException($"Тип документа {documentType} не поддерживается.");
            }
        }
Exemplo n.º 2
0
        public CommonDialog(DialogViewModelBase vm)
        {
            DataContext = vm;
            InitializeComponent();

            Loaded += (s, a) => Lib.ForceSoftwareRenderModeIfNeeded(this);
        }
Exemplo n.º 3
0
        public IPage <TViewModel> OpenViewModel <TViewModel, TCtorArg1, TCtorArg2>(DialogViewModelBase master, TCtorArg1 arg1, TCtorArg2 arg2, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TViewModel : DialogViewModelBase
        {
            var types  = new Type[] { typeof(TCtorArg1), typeof(TCtorArg2) };
            var values = new object[] { arg1, arg2 };

            return(OpenViewModelTypedArgs <TViewModel>(master, types, values, options, addingRegistrations));
        }
Exemplo n.º 4
0
        private Task <bool?> ShowDialog <T>(DialogViewModelBase vm, object owner, out T result, string title = null, int maxWidth = 0, int maxHeight = 0)
        {
            DialogWindow win = new DialogWindow();

            if (owner != null)
            {
                win.Owner = owner as Window;
            }
            if (maxHeight > 0)
            {
                win.MaxHeight = maxHeight;
            }
            if (maxWidth > 0)
            {
                win.MaxWidth = maxWidth;
            }
            if (!string.IsNullOrEmpty(title))
            {
                win.Title = title;
            }
            win.DataContext = vm;
            win.ShowDialog();
            result = (T)vm.UserDialogResult;
            return(Task.FromResult(vm.DialogResult));
        }
Exemplo n.º 5
0
        public async void ShowDialog(DialogViewModelBase dialogViewModel)
        {
            DialogViewModel = dialogViewModel;
            await DialogViewModel.DialogCompletedTask;

            DialogViewModel = null;
        }
Exemplo n.º 6
0
        public ITdiPage OpenTdiTab <TTab, TCtorArg1, TCtorArg2>(DialogViewModelBase master, TCtorArg1 arg1, TCtorArg2 arg2, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab
        {
            var types  = new Type[] { typeof(TCtorArg1), typeof(TCtorArg2) };
            var values = new object[] { arg1, arg2 };

            return(OpenTdiTab <TTab>(master, types, values, options, addingRegistrations));
        }
Exemplo n.º 7
0
    void SearchEmployee_EntitySelected(object sender, EntitySelectedEventArgs e)
    {
        MainTelemetry.AddCount("SearchEmployeeToolBar");
        var id = DomainHelper.GetId(e.Entity);
        DialogViewModelBase after = null;

        if (cnbOpenInWindow.Active)
        {
            IPage replaced;
            if (NavigationManager.CurrentPage?.ViewModel is EmployeeViewModel)
            {
                replaced = NavigationManager.CurrentPage;
            }
            else
            {
                replaced = NavigationManager.IndependentPages.Reverse().FirstOrDefault(x => x.ViewModel is EmployeeViewModel);
            }

            if (replaced != null)
            {
                IPage last = null;
                foreach (var page in NavigationManager.TopLevelPages)
                {
                    if (page == replaced)
                    {
                        after = last?.ViewModel;
                        break;
                    }
                    last = page;
                }
                NavigationManager.AskClosePage(replaced);
            }
        }
        NavigationManager.OpenViewModel <EmployeeViewModel, IEntityUoWBuilder>(after, EntityUoWBuilder.ForOpen(id));
    }
Exemplo n.º 8
0
        /// <summary>
        /// Открывает диалог по его ViewModel,
        /// связывает ViewModel с View,
        /// ждёт завершения диалога.
        /// </summary>
        /// <typeparam name="TResult">Тип, который должен прийти в результат.</typeparam>
        /// <param name="dialogViewModel">ViewModel открываемого диалога.</param>
        /// <returns>Результат диалога.</returns>
        public TResult OpenDialog <TResult>(DialogViewModelBase <TResult> dialogViewModel)
        {
            IDialogWindow window = new DialogWindow();

            window.DataContext = dialogViewModel;
            window.ShowDialog();
            return(dialogViewModel.DialogResult);
        }
        public T OpenDialog <T>(DialogViewModelBase <T> viewModel)
        {
            IDialogWindow window = new DialogWindow();

            window.DataContext = viewModel;
            window.ShowDialog();
            return(viewModel.DialogResult);
        }
Exemplo n.º 10
0
 public ITdiPage OpenTdiTabNamedArgs <TTab>(DialogViewModelBase master, IDictionary <string, object> ctorArgs, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab
 {
     return((ITdiPage)OpenViewModelInternal(
                FindPage(master), options,
                () => hashGenerator?.GetHashNamedArgs <TTab>(null, ctorArgs),
                (hash) => tdiPageFactory.CreateTdiPageNamedArgs <TTab>(ctorArgs, hash, addingRegistrations)
                ));
 }
Exemplo n.º 11
0
 public CommonEEVMBuilderFactory(DialogViewModelBase dialogViewModel, TBindedEntity source, IUnitOfWork unitOfWork, INavigationManager navigation, ILifetimeScope autofacScope = null)
 {
     BindedEntity      = source;
     DialogViewModel   = dialogViewModel;
     UnitOfWork        = unitOfWork;
     NavigationManager = navigation;
     AutofacScope      = autofacScope;
 }
Exemplo n.º 12
0
 public IPage <TViewModel> OpenViewModelNamedArgs <TViewModel>(DialogViewModelBase master, IDictionary <string, object> ctorArgs, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TViewModel : DialogViewModelBase
 {
     return((IPage <TViewModel>)OpenViewModelInternal(
                FindPage(master), options,
                () => hashGenerator?.GetHashNamedArgs <TViewModel>(master, ctorArgs),
                (hash) => GetPageFactory <TViewModel>().CreateViewModelNamedArgs <TViewModel>(master, ctorArgs, hash, addingRegistrations)
                ));
 }
Exemplo n.º 13
0
        public DialogWindow(DialogViewModelBase vm)
        {
            InitializeComponent();

            DataContext = vm;

            vm.RequestClose += () => DialogResult = true;
        }
Exemplo n.º 14
0
 public ITdiPage OpenTdiTab <TTab>(DialogViewModelBase master, Type[] ctorTypes, object[] ctorValues, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab
 {
     return((ITdiPage)OpenViewModelInternal(
                FindPage(master), options,
                () => hashGenerator?.GetHash <TTab>(null, ctorTypes, ctorValues),
                (hash) => tdiPageFactory.CreateTdiPageTypedArgs <TTab>(ctorTypes, ctorValues, hash, addingRegistrations)
                ));
 }
        public virtual IPage EditDocumentDialog(DialogViewModelBase master, StokDocumentType documentType, int id)
        {
            var start = DateTime.Now;
            var page  = OpenEditDialog(master, documentType, id);

            logger.Info($"Документ открыт за {(DateTime.Now - start).TotalSeconds} сек.");
            return(page);
        }
        /// <summary>
        /// Initilize input states such that user can input information
        /// with a view based GUI (eg.: dialog)
        /// </summary>
        public void InitDialogInputData()
        {
            this.OpenCloseView = new Base.DialogViewModelBase();

            // Attach delegate method to validate user input on OK
            // Not setting this means that user input is never validated and view will always close on OK
            //if (this.mOpenCloseView != null)
            //  this.mOpenCloseView.EvaluateInputData = this.ValidateData;
        }
        /// <summary>
        /// Instantiates a new <see cref="DialogWindow"/> and assigns the specified <paramref name="viewModel"/> as it's DataContext.
        /// </summary>
        /// <param name="viewModel">The <see cref="DialogWindow"/>'s DataContext.</param>
        public void OpenDialog(DialogViewModelBase viewModel)
        {
            IDialogWindow dialog = new DialogWindow()
            {
                DataContext = viewModel
            };

            _ = dialog.ShowDialog();
        }
Exemplo n.º 18
0
        private FrameworkElement CreateMessageBoxView(DialogViewModelBase viewModel)
        {
            var textBlock = new FormattedTextBlock();

            textBlock.Margin = new Thickness(4);
            textBlock.SetBinding(FormattedTextBlock.TextProperty, "Message");
            textBlock.TextWrapping = TextWrapping.Wrap;
            return(new OkCancelView(textBlock));
        }
Exemplo n.º 19
0
        private FrameworkElement CreateMessageBoxView(DialogViewModelBase viewModel)
        {
            var textBlock = new System.Windows.Controls.TextBlock();

            textBlock.Margin = new Thickness(4);
            textBlock.SetBinding(System.Windows.Controls.TextBlock.TextProperty, "Message");
            textBlock.TextWrapping = TextWrapping.Wrap;
            return(new Jamiras.Controls.OkCancelView(textBlock));
        }
        public virtual void EditDocumentDialog(DialogViewModelBase master, OperationToDocumentReference reference)
        {
            var page = EditDocumentDialog(master, reference.DocumentType.Value, reference.DocumentId.Value);

            if (page.ViewModel is ISelectItem select && reference.ItemId.HasValue)
            {
                select.SelectItem(reference.ItemId.Value);
            }
        }
Exemplo n.º 21
0
        public T OpenDialog <T>(DialogViewModelBase <T> dialogViewModelBase)
        {
            IDialogWindow dialogWindow = new StepAddDialogWindow
            {
                DataContext = dialogViewModelBase
            };

            dialogWindow.ShowDialog();
            return(dialogViewModelBase.DialogResult);
        }
        /// <summary>
        /// Copy constructor
        /// </summary>
        public UsernameViewModel(UsernameViewModel copyThis)
            : this()
        {
            if (copyThis == null)
            {
                return;
            }

            this.mOpenCloseView = new DialogViewModelBase(copyThis.mOpenCloseView);
        }
Exemplo n.º 23
0
        public void OpenDialog(DialogViewModelBase viewModel, string dialogIdentifier)
        {
            var view = _viewManager.CreateViewForModel(viewModel);

            DialogHost.Show(view, dialogIdentifier, viewModel.OnDialogClosed);
            viewModel.DialogViewModelHost = this;

            ActiveDialogViewModel = viewModel;
            IsOpen = true;
        }
Exemplo n.º 24
0
 public LegacyEEVMBuilderFactory(
     DialogViewModelBase dialogViewModel,
     ITdiTab dialogTab,
     TBindedEntity source,
     IUnitOfWork unitOfWork,
     INavigationManager navigation,
     ILifetimeScope autofacScope = null)
     : base(dialogViewModel, source, unitOfWork, navigation, autofacScope)
 {
     GetDialogTab = () => dialogTab;
 }
Exemplo n.º 25
0
        /// <summary>
        /// Opens Dialog window and return open result
        /// </summary>
        /// <returns></returns>
        public static DialogResult OpenDialog(DialogViewModelBase viewModel)
        {
            var dialogWindow = new DialogWindow();                                                       //create dialog window

            dialogWindow.DataContext = viewModel;                                                        //assign datacontext to dialog
            dialogWindow.ShowDialog();                                                                   //show dialog window

            var dialogResult = (dialogWindow.DataContext as DialogViewModelBase).ActivationDialogResult; //get dialog result

            return(dialogResult);                                                                        //return dialog result
        }
Exemplo n.º 26
0
 /// <summary>
 /// Launches the modeless Alert Dialog on screen.
 /// </summary>
 /// <param name="vm">viewmodel for the Alert Dialog</param>
 /// <param name="callBack">callback is called when the dialog is closed</param>
 /// <param name="dlgWidth">Dialog Width</param>
 /// <param name="dlgHeight">Dialog Height</param>
 public void LaunchModelessDialog(DialogViewModelBase vm, Action <DialogViewModelBase> callBack = null, double dlgWidth = 500, double dlgHeight = 200, bool isBindedWithOwner = true)
 {
     if (ModelessDlgInteractionRequest != null && vm != null)
     {
         Application.Current.Dispatcher.Invoke(new Action(() =>
         {
             ModelessDlgInteractionRequest.Raise(vm, callBack, dlgWidth, dlgHeight);
             this.IsBindedWithOwner = isBindedWithOwner;
         }));
     }
 }
Exemplo n.º 27
0
        /// <summary>
        /// Validates a property of a <see cref="DialogViewModelBase{T}"/>.
        /// </summary>
        /// <param name="propertyName">
        /// The property name.
        /// </param>
        /// <param name="dialogViewModelBase">
        /// The dialog view model base.
        /// </param>
        /// <typeparam name="T">
        /// The <see cref="Thing"/> the <see cref="DialogViewModelBase{T}"/> is connected to.
        /// </typeparam>
        /// <returns>
        /// The <see cref="string"/> with the error text.
        /// </returns>
        public static string ValidateProperty <T>(string propertyName, DialogViewModelBase <T> dialogViewModelBase) where T : Thing
        {
            // get the rule
            ValidationRule rule;

            // try to get a primary rule match
            var result = ValidationMap.TryGetValue(propertyName, out rule);

            var property = dialogViewModelBase.GetType().GetProperty(propertyName);

            // check for an active override
            var attribute = property.GetCustomAttributes(typeof(ValidationOverrideAttribute), true).Cast <ValidationOverrideAttribute>().SingleOrDefault();

            if (attribute != null)
            {
                if (!attribute.IsValidationEnabled)
                {
                    return(null);
                }

                // get the override rule from the table. If found override the rule.
                result = ValidationMap.TryGetValue(attribute.ValidationOverrideName, out rule);
            }

            // if no rule exists just return null in sign of ignorance
            if (!result)
            {
                return(null);
            }

            // get the value, if the value is null set to empty string (assume user entered no value to begin with) and check against that
            var propertyValue = property.GetValue(dialogViewModelBase) ?? string.Empty;

            var validationPass = Regex.IsMatch(propertyValue.ToString(), rule.Rule);

            if (validationPass)
            {
                if (dialogViewModelBase.ValidationErrors.Contains(rule))
                {
                    // remove rule if it exists in the viewmodel
                    dialogViewModelBase.ValidationErrors.Remove(rule);
                }

                return(null);
            }

            if (!dialogViewModelBase.ValidationErrors.Contains(rule))
            {
                dialogViewModelBase.ValidationErrors.Add(rule);
            }

            return(rule.ErrorText);
        }
Exemplo n.º 28
0
        public static async Task <DialogResult <T> > NavigateDialog <T>(
            this TargettedNavigationStack stack,
            DialogViewModelBase <T> dialog)
        {
            stack.To(dialog);

            var result = await dialog.GetDialogResultAsync();

            stack.Back();

            return(result);
        }
Exemplo n.º 29
0
        private async Task <object> ShowDialog(string identifier, DialogViewModelBase viewModel)
        {
            var view = _viewManager.CreateViewForModel(viewModel);

            _viewManager.BindViewToModel(view, viewModel);

            if (identifier == null)
            {
                return(await DialogHost.Show(view, viewModel.OnDialogOpened, viewModel.OnDialogClosed));
            }
            return(await DialogHost.Show(view, identifier, viewModel.OnDialogOpened, viewModel.OnDialogClosed));
        }
Exemplo n.º 30
0
        private DialogResult ShowDialog(DialogViewModelBase vm, Window owner)
        {
            DialogWindow win = new DialogWindow();

            if (owner != null)
            {
                win.Owner = owner;
            }
            win.DataContext = vm;
            win.ShowDialog();
            DialogResult result =
                (win.DataContext as DialogViewModelBase).UserDialogResult;

            return(result);
        }