Exemplo n.º 1
0
        public static PdfProgressItem StartTask(HttpContext context, int tenantId, Guid userId, int invoiceId)
        {
            lock (Queue.SynchRoot)
            {
                var task = GetTaskStatus(tenantId, invoiceId);

                if (task != null && task.IsCompleted)
                {
                    Queue.Remove(task);
                    task = null;
                }

                if (task == null)
                {
                    task = new PdfProgressItem(context, tenantId, userId, invoiceId);
                    Queue.Add(task);
                }

                if (!Queue.IsStarted)
                {
                    Queue.Start(x => x.RunJob());
                }

                return(task);
            }
        }
Exemplo n.º 2
0
 public PdfQueueWorker(DistributedTaskQueueOptionsManager queueOptions,
                       PdfProgressItem pdfProgressItem,
                       TenantManager tenantProvider,
                       SecurityContext securityContext)
 {
     _queue           = queueOptions.Get <PdfProgressItem>();
     _pdfProgressItem = pdfProgressItem;
     _tenantId        = tenantProvider.GetCurrentTenant().TenantId;
     _userId          = securityContext.CurrentAccount.ID;
 }