public async Task Initialise(string jobId, string takeoutDataJson, string emailAddress) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); // Update DB Status YouTubeProcessingJobStatus jobStatus = new YouTubeProcessingJobStatus() { JobId = jobId, JobStatus = JobStatus.INITIATED }; FileDataHelper fileDataHelper = new FileDataHelper(); fileDataHelper.SaveJobStatus(jobStatus); System.Diagnostics.Debug.WriteLine("Starting"); List <HistoryVideo> historyVideos = GetHistoryFromJson(takeoutDataJson).ToList(); System.Diagnostics.Debug.WriteLine("Fetching video data"); Dictionary <string, VideoViewModel> videoViewModelsDict = await YouTubeApiHelper.GetInstance().GetVideos(historyVideos.Take(8000).ToList()); System.Diagnostics.Debug.WriteLine("Doing calculations"); jobStatus.JobStatus = JobStatus.PROCESSING; fileDataHelper.SaveJobStatus(jobStatus); YouTubeProcessingJobData processingJobData = await PerformCalculations(jobId, historyVideos, videoViewModelsDict); fileDataHelper.SaveProcessingJob(processingJobData); jobStatus.JobStatus = JobStatus.COMPLETED; fileDataHelper.SaveJobStatus(jobStatus); System.Diagnostics.Debug.WriteLine("Sending email"); //await MailJetHelper.SendEmail(emailAddress, "https://localhost:44369/"); // Update DB Status // Save Job to DB stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); System.Diagnostics.Debug.WriteLine("Completed in " + elapsedTime); }
public IActionResult Index(string jobId) { FileDataHelper fileDataHelper = new FileDataHelper(); YouTubeProcessingJobStatus status = fileDataHelper.GetJobStatus(jobId); //if(status.JobStatus == JobStatus.COMPLETED) YouTubeProcessingJobData data = fileDataHelper.GetProcessingJob(jobId); return(View(data)); }
public void SaveJobStatus(YouTubeProcessingJobStatus jobStatus) { List <YouTubeProcessingJobStatus> jobStatuses = ReadJsonDataFromTextFile <List <YouTubeProcessingJobStatus> >(UriHelper.JOB_STATUS_DATA_FILE); if (jobStatus.JobStatus == JobStatus.INITIATED) { // New job jobStatuses.Add(jobStatus); string json = JsonConvert.SerializeObject(jobStatuses); SaveJsonDataToTextFile(UriHelper.JOB_STATUS_DATA_FILE, json); } else { // Edit existing job var exisiting = jobStatuses.FindIndex(js => js.JobId == jobStatus.JobId); jobStatuses[exisiting] = jobStatus; string json = JsonConvert.SerializeObject(jobStatuses); SaveJsonDataToTextFile(UriHelper.JOB_STATUS_DATA_FILE, json); } }