Exemplo n.º 1
0
        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"));
 }
Exemplo n.º 3
0
 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;
     }
 }