/// <summary> /// Enqueue jobs for background processing /// </summary> /// <param name="url">url to scan</param> /// <returns>Initial scan object before scaning is done</returns> public async Task <ScanJob> EnqueueJob(string url) { var job = new ScanJobEntity(); job.Id = Guid.NewGuid(); job.JobStatus = ScanJobStatus.Pending; job.Url = url; var jobData = _mapper.Map <ScanJob>(job); _storageManager.AddScanJobs(job); _queue.QueueItem(async token => { await Process(jobData); }); await Task.Yield(); //Faking await inside async method return(jobData); }