public ViewNotificationsUseCaseFactory(
     ITaskItemRepositoryFactory taskItemRepositoryFactory,
     INotificationRepositoryFactory notificationRepositoryFactory)
 {
     this.taskItemRepositoryFactory     = taskItemRepositoryFactory ?? throw new ArgumentNullException(nameof(taskItemRepositoryFactory));
     this.notificationRepositoryFactory = notificationRepositoryFactory ?? throw new ArgumentNullException(nameof(notificationRepositoryFactory));
 }
예제 #2
0
        public void InitializeDomainFromDatabase(
            ITaskItemRepositoryFactory taskItemRepositoryFactory,
            INotificationManager notificationManager,
            ITaskManager taskManager,
            IClock clock)
        {
            /*
             * hook up to notfication added event now, so to retrieve new notifications generated by
             * the TaskItems being created below
             */
            notificationManager.NotificationAdded += OnNotificationAdded;

            /*
             * read in task items from database. Create domain taskItems from
             * data and add items to taskManager
             */
            ITaskItemRepository taskItemRepository = taskItemRepositoryFactory.New();

            foreach (TaskItemDAL task in taskItemRepository.GetAll())
            {
                INotificationFrequency notificationFrequency = null;

                if (task.customNotificationFrequency.HasValue)
                {
                    CustomNotificationFrequencyDAL frequencyDAL = task.customNotificationFrequency.Value;

                    notificationFrequency = NotificationFrequencyFactory.New(
                        //TODO: do something safer than just a cast
                        (NotificationFrequencyType)task.notificationFrequencyType,
                        frequencyDAL.time
                        );
                }
                else
                {
                    notificationFrequency = NotificationFrequencyFactory.New(
                        //TODO: do something safer than just a cast
                        (NotificationFrequencyType)task.notificationFrequencyType
                        );
                }

                taskManager.Add(
                    new TaskItem(
                        task.title,
                        task.description,
                        new Colour(task.r, task.g, task.b),
                        task.startTime,
                        notificationManager,
                        notificationFrequency,
                        clock,
                        task.lastNotificationTime,
                        task.id
                        )
                    );
            }
        }
 public DeleteTaskUseCaseFactory(
     ITaskItemRepositoryFactory taskItemRepositoryFactory,
     INotificationRepositoryFactory notificationRepositoryFactory,
     BasicTaskManager taskItemManager,
     BasicNotificationManager notificationManager)
 {
     this.taskItemRepositoryFactory     = taskItemRepositoryFactory ?? throw new ArgumentNullException(nameof(taskItemRepositoryFactory));
     this.notificationRepositoryFactory = notificationRepositoryFactory ?? throw new ArgumentNullException(nameof(notificationRepositoryFactory));
     this.taskItemManager     = taskItemManager ?? throw new ArgumentNullException(nameof(taskItemManager));
     this.notificationManager = notificationManager ?? throw new ArgumentNullException(nameof(notificationManager));
 }
예제 #4
0
 public CreateTaskUseCase(
     BasicTaskManager taskManager,
     BasicNotificationManager notificationManager,
     IClock clock,
     ITaskItemRepositoryFactory taskItemRepositoryFactory)
 {
     this.taskManager         = taskManager ?? throw new ArgumentNullException(nameof(taskManager));
     this.notificationManager = notificationManager ?? throw new ArgumentNullException(nameof(notificationManager));
     this.clock = clock ?? throw new ArgumentNullException(nameof(clock));
     this.taskItemRepositoryFactory = taskItemRepositoryFactory ?? throw new ArgumentNullException(nameof(taskItemRepositoryFactory));
 }
예제 #5
0
        public TaskSchedulerApplication(
            ITaskItemRepositoryFactory taskItemRepositoryFactory,
            INotificationFrequencyRepositoryFactory notificationFrequencyRepositoryFactory,
            INotificationRepositoryFactory notificationRepositoryFactory,
            IClock clock)
        {
            this.taskItemRepositoryFactory = taskItemRepositoryFactory ?? throw new ArgumentNullException(nameof(taskItemRepositoryFactory));
            this.notificationFrequencyRepositoryFactory = notificationFrequencyRepositoryFactory ?? throw new ArgumentNullException(nameof(notificationFrequencyRepositoryFactory));
            this.notificationRepositoryFactory          = notificationRepositoryFactory ?? throw new ArgumentNullException(nameof(notificationRepositoryFactory));
            this.clock = clock ?? throw new ArgumentNullException(nameof(clock));

            this.InitializeDomainFromDatabase(
                taskItemRepositoryFactory,
                notificationManager,
                taskManager,
                clock
                );

            //CREATE USE-CASE FACTORIES
            createTaskUseCaseFactory =
                new CreateTaskUseCaseFactory(
                    taskManager,
                    notificationManager,
                    clock,
                    taskItemRepositoryFactory
                    );

            viewTasksUseCaseFactory =
                new ViewTasksUseCaseFactory(taskManager, taskItemRepositoryFactory);

            viewNotificationsUseCaseFactory =
                new ViewNotificationsUseCaseFactory(
                    taskItemRepositoryFactory,
                    notificationRepositoryFactory
                    );

            deleteTaskUseCaseFactory =
                new DeleteTaskUseCaseFactory(
                    taskItemRepositoryFactory,
                    notificationRepositoryFactory,
                    taskManager,
                    notificationManager
                    );
        }
 public ViewTasksUseCaseFactory(BasicTaskManager taskManager, ITaskItemRepositoryFactory taskItemRepositoryFactory)
 {
     this.taskItemRepositoryFactory = taskItemRepositoryFactory ?? throw new ArgumentNullException(nameof(taskItemRepositoryFactory));
     this.taskManager = taskManager;
 }
예제 #7
0
 /// <summary>
 /// Constructs a new ViewTasksUseCase
 /// </summary>
 public ViewTasksUseCase(BasicTaskManager taskManager, ITaskItemRepositoryFactory taskItemRepositoryFactory)
 {
     this.taskManager = taskManager;
     this.taskItemRepositoryFactory = taskItemRepositoryFactory;
 }