Exemplo n.º 1
0
        private async void OnNext(JobActivity activity)
        {
            List <string> eligibleActivity = new List <string>()
            {
                JobActivityOperationNames.Cancel,
                JobActivityOperationNames.Delete,
                JobActivityOperationNames.Restore,
                JobActivityOperationNames.Update
            };

            if (activity.ReferenceId != null && eligibleActivity.Any(x => x == activity.Operation))
            {
                var jobUpdatedMessage = new TaskCatMessage()
                {
                    JobID          = activity.JobId,
                    JobHRID        = activity.HRID,
                    ReferenceId    = activity.ReferenceId,
                    RemoteJobStage = RemoteJobStage.UPDATE,
                    RemoteJobState = activity.Value.ToString()
                };

                logger.Info($"Sending update {activity.Value.ToString()} back to polling service for job {activity.HRID}");
                var pushMessageBody = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(jobUpdatedMessage)));
                await this.pushQueueClient.SendAsync(pushMessageBody);

                logger.Info($"Sent message back to polling service");
            }
        }
Exemplo n.º 2
0
        private async Task ProcessMessagesAsync(Message message, CancellationToken token)
        {
            logger.Info($"Received jobpull message: SequenceNumber:{message.SystemProperties.SequenceNumber}");
            var messageString = Encoding.UTF8.GetString(message.Body);
            var taskcatOrder  = JsonConvert.DeserializeObject <ClassifiedDeliveryOrder>(messageString);

            logger.Info($"Order from {taskcatOrder.UserId} converted, ready to order");

            var jobCreatedMessage = new TaskCatMessage();

            try
            {
                var newJob = await PostNewOrder(taskcatOrder);

                logger.Info($"New job created. Remote Order = {taskcatOrder.ReferenceOrderId} => TaskCat Job {newJob.Id} => HRID {newJob.HRID}");
                jobCreatedMessage = new TaskCatMessage
                {
                    ReferenceId    = taskcatOrder.ReferenceOrderId,
                    JobHRID        = newJob.HRID,
                    JobID          = newJob.Id,
                    RemoteJobStage = RemoteJobStage.CREATED
                };
            }
            catch (Exception ex) // Catching global exception is a bad thing, fix this
            {
                logger.Error(ex);
                logger.Error($"Error processing remote Order = {taskcatOrder.ReferenceOrderId}");

                jobCreatedMessage = new TaskCatMessage
                {
                    ReferenceId    = taskcatOrder.ReferenceOrderId,
                    RemoteJobStage = RemoteJobStage.ERROR
                };
            }

            logger.Info($"Sending message back to polling service");
            var pushMessageBody = new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(jobCreatedMessage)));

            await this.pushQueueClient.SendAsync(pushMessageBody);

            logger.Info($"Sent message back to polling service");
        }