public async Task <long> SendPeriodEndTask(PeriodEndTask periodEndTask, short academicYear, int collectionPeriod) { var jobId = new Random(Guid.NewGuid().GetHashCode()).Next(int.MaxValue); await dcHelper.SendPeriodEndTask(academicYear, (byte)collectionPeriod, jobId, periodEndTask); return(jobId); }
public ITopicPublishService <JobContextDto> GetPeriodEndTaskPublisher(PeriodEndTask periodEndTask) { return(Get("periodendtopic", "Payments")); }
public async Task SendPeriodEndTask(short academicYear, byte collectionPeriod, long jobId, PeriodEndTask periodEndTask) { try { var dto = new JobContextDto { JobId = jobId, KeyValuePairs = new Dictionary <string, object> { { JobContextMessageKey.UkPrn, 0 }, { JobContextMessageKey.Filename, string.Empty }, { JobContextMessageKey.CollectionName, $"PE-DAS-{periodEndTask:G}{academicYear}" }, { JobContextMessageKey.CollectionYear, academicYear }, { JobContextMessageKey.ReturnPeriod, collectionPeriod }, { JobContextMessageKey.Username, "Period End" } }, SubmissionDateTimeUtc = DateTime.UtcNow, TopicPointer = 0, Topics = new List <TopicItemDto> { new TopicItemDto { SubscriptionName = "Payments", Tasks = new List <TaskItemDto> { new TaskItemDto { SupportsParallelExecution = false, Tasks = new List <string> { periodEndTask.ToString("G") } } } } } }; var publisher = topicPublishingServiceFactory.GetPeriodEndTaskPublisher(periodEndTask); await publisher.PublishAsync(dto, new Dictionary <string, object> { { "To", "Payments" } }, "Payments"); } catch (Exception e) { Console.WriteLine(e); throw; } }