예제 #1
0
        public async Task Configurate()
        {
            using (UnitOfWork unitOfWork = new UnitOfWork(this.dbContext))
            {
                var htmlorders   = unitOfWork.HtmlOrderRepository.GetAll();
                var serverorders = unitOfWork.ServerOrderRepository.GetAll();
                foreach (var order in htmlorders)
                {
                    var addingHtmlProvider = new AddingOrderProvider <
                        HtmlJobDetailComposer <HtmlOrderJob>,
                        SimpleTriggerComposer,
                        HtmlOrderJob>(
                        new HtmlJobDetailComposer <HtmlOrderJob>(order.Id, order.TargetAddress, order.SubjectOfQuestion),
                        new SimpleTriggerComposer(order.Frequency, order.Id));

                    await addingHtmlProvider.AddOrder();
                }
                foreach (var order in serverorders)
                {
                    var addingServerProvider = new AddingOrderProvider <
                        ServerJobDetailComposer <ServerOrderJob>,
                        SimpleTriggerComposer,
                        ServerOrderJob>(
                        new ServerJobDetailComposer <ServerOrderJob>(order.Id, order.TargetAddress),
                        new SimpleTriggerComposer(order.Frequency, order.Id));

                    await addingServerProvider.AddOrder();
                }
            }
        }
        public async Task <IActionResult> AddServerOrder([FromBody] ServerOrder order)
        {
            Debug.WriteLine("Adding new order with frequency= " + order.Frequency + " , orderTarget= " + order.TargetAddress);

            if (!ModelState.IsValid)
            {
                return(BadRequest("Request body is not correct!"));
            }

            using (UnitOfWork unitOfWork = new UnitOfWork(this._databaseContext))
            {
                unitOfWork.ServerOrderRepository.Add(order);
                await unitOfWork.Save();
            }

            var addingServerProvider = new AddingOrderProvider <
                ServerJobDetailComposer <ServerOrderJob>,
                SimpleTriggerComposer,
                ServerOrderJob>(
                new ServerJobDetailComposer <ServerOrderJob>(order.Id, order.TargetAddress),
                new SimpleTriggerComposer(order.Frequency, order.Id));

            await addingServerProvider.AddOrder();

            return(new JsonResult(order.Id));
        }
예제 #3
0
        public static async Task Execute()
        {
            await Task.Delay(30000);

            //initializing new provider for adding order with specific implementation of composers and job.
            var addingProvider = new AddingOrderProvider <
                ServerJobDetailComposer <ServerOrderJob>,
                SimpleTriggerComposer,
                ServerOrderJob>(
                new ServerJobDetailComposer <ServerOrderJob>(1, "172.217.16.14"),
                new SimpleTriggerComposer(5, 1)
                );

            //asynchronous adding order.
            await addingProvider.AddOrder();

            await Task.Delay(15100);

            //deleting order from schedule after delay.
            var deletingProvider = new DeletingOrderProvider();
            await deletingProvider.DeleteOrder(1);

            //adding new provider with implementations for html order
            var addingHtmlProvider = new AddingOrderProvider <
                HtmlJobDetailComposer <HtmlOrderJob>,
                SimpleTriggerComposer,
                HtmlOrderJob>(
                new HtmlJobDetailComposer <HtmlOrderJob>(2, "http://www.nordlearn.com.pl", "1"),
                new SimpleTriggerComposer(5, 2));

            //asynchronous adding order to schedule.
            await addingHtmlProvider.AddOrder();

            await Task.Delay(15100);

            //deleting order from schedule after delay.
            var deletingHtmlProvider = new DeletingOrderProvider();
            await deletingHtmlProvider.DeleteOrder(2);
        }