コード例 #1
0
        public void UpdateTrackingNumbersInTransit([TimerTrigger("0 */60 * * * *")] TimerInfo timer, ILogger log)
        {
            try
            {
                var upsController = new UPSController(log);

                var trackingNumbersInTransit = upsController.GetTrackingNumbersInTransit();

                if (trackingNumbersInTransit.Count() == 0)
                {
                    log.LogInformation("No tracking numbers currently in transit.");
                    return;
                }

                upsController.UpdateCurrentStatusOfTrackingNumbers(trackingNumbersInTransit);
            }
            catch (Exception ex)
            {
                var title        = "Error in UpdateTrackingNumbersInTransit";
                var text         = $"Error message: {ex.Message}. Stacktrace: {ex.StackTrace}";
                var color        = "red";
                var teamsMessage = new TeamsMessage(title, text, color, trackingErrorLogsUrl);
                teamsMessage.LogToTeams(teamsMessage);
                log.LogError(ex, title);
            }
        }
コード例 #2
0
        public void Test_AddTrackingNumbersToDB()
        {
            var trackingNumbers = new List <string>()
            {
                "1ZE7313W0317984577"
            };
            var trackingData = CreateUPSTrackingData(trackingNumbers);

            var upsController = new UPSController(logger);

            upsController.AddTrackingNumbersToDB(trackingData);

            // Get records from Azure DB
            var trackingNumResult   = GetLinesByTrackingNumber(trackingNumbers, "TrackingNumbers");
            var statusUpdatesResult = GetLinesByTrackingNumber(trackingNumbers, "StatusUpdates");

            Assert.Single(trackingNumResult);
            Assert.Single(statusUpdatesResult);

            Assert.Equal("7097 HARRIS RD", trackingNumResult[0].OriginAddress);
            Assert.Equal("CELINA", trackingNumResult[0].OriginCity);
            Assert.Equal("OH", trackingNumResult[0].OriginState);
            Assert.Equal("45822-9399", trackingNumResult[0].OriginZip);
            Assert.Equal("MUNISING", trackingNumResult[0].DestinationCity);
            Assert.Equal("MI", trackingNumResult[0].DestinationState);
            Assert.Equal("49862", trackingNumResult[0].DestinationZip);

            DeleteTrackingNumbers(trackingNumbers, "TrackingNumbers");
            DeleteTrackingNumbers(trackingNumbers, "StatusUpdates");
        }
コード例 #3
0
        public async Task AddNewTrackingNumbers(
            [BlobTrigger("ups-tracking-numbers/{fileName}.csv", Connection = "UPS_BLOB_CONN")] Stream blob,
            string fileName, ILogger log)
        {
            try
            {
                // Files must include Tracking in the name to be processed
                if (!fileName.ToLower().Contains("tracking"))
                {
                    return;
                }

                var fileController = new FileController(log, trackingErrorLogsUrl);
                var upsController  = new UPSController(log);

                var trackingRecords = fileController.GetTrackingNumbersFromFile(blob);

                upsController.AddTrackingNumbersToDB(trackingRecords);

                if (upsController.invalidTrackingNumbers.Count() > 0)
                {
                    var reportName = fileController.CreateInvalidTrackingNumberReport(upsController.invalidTrackingNumbers);
                    log.LogInformation($"Invalid tracking number report created: {reportName}");
                }

                // Move processed file to archive container
                await fileController.MoveProcessedFileToArchive(fileName);

                log.LogInformation("File moved to archive container");
            }
            catch (Exception ex)
            {
                var title        = "Error in AddNewTrackingNumbers";
                var text         = $"Error message: {ex.Message}. Stacktrace: {ex.StackTrace}";
                var color        = "red";
                var teamsMessage = new TeamsMessage(title, text, color, trackingErrorLogsUrl);
                teamsMessage.LogToTeams(teamsMessage);
                log.LogError(ex, title);
            }
        }