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)); }
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; }