public MessagesJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigation, ProstorSmsService prostorSmsService, WorkOrder workOrder = null) : base(unitOfWorkFactory, interactiveService, navigation)
        {
            this.prostorSmsService = prostorSmsService ?? throw new ArgumentNullException(nameof(prostorSmsService));

            if (workOrder != null && workOrder.Id > 0)
            {
                onlyOrderId = workOrder.Id;
                TabName     = $"Cообщения по заказу №{workOrder.Id} на {workOrder.Date:D} в {workOrder.Hour} часов";
            }
            else
            {
                TabName = "Отправленные сообщения";
            }


            var dataLoader = new ThreadDataLoader <MessagesJournalNode>(unitOfWorkFactory);

            dataLoader.AddQuery(ItemsQuery);
            DataLoader = dataLoader;

            //Обход проблемы с тем что SelectionMode одновременно управляет и выбором в журнале, и самим режмиом журнала.
            //То есть создает действие выбора. Удалить после того как появится рефакторинг действий журнала.
            SelectionMode = JournalSelectionMode.Multiple;
            NodeActionsList.Clear();
            CreateActions();

            UpdateOnChanges(typeof(SentMessage));
        }
Exemple #2
0
 public SendMessageViewModel(
     IUnitOfWorkFactory unitOfWorkFactory,
     INavigationManager navigation,
     IInteractiveMessage interactive,
     ProstorSmsService prostorSmsService,
     OrderMessagesModel orderMessages,
     IValidator validator = null) : base(navigation)
 {
     this.interactive       = interactive ?? throw new ArgumentNullException(nameof(interactive));
     this.prostorSmsService = prostorSmsService ?? throw new ArgumentNullException(nameof(prostorSmsService));
     this.orderMessages     = orderMessages ?? throw new ArgumentNullException(nameof(orderMessages));
     IsModal        = true;
     Title          = "Отправка СМС";
     WindowPosition = QS.Dialog.WindowGravity.Center;
     MessageText    = orderMessages.DefaultMessage;
 }