コード例 #1
0
        public void AddNumberForEvent_With_event_not_found_return_message()

        {
            List <NotificationEntity> notificationEntities = new List <NotificationEntity>();

            notificationEntities.Add(new NotificationEntity {
                RowKey = "track", ProgramId = 1, SportId = 1, Message = "this track event"
            });
            notificationEntities.Add(new NotificationEntity {
                RowKey = "polar", ProgramId = 2, SportId = 2, Message = "this polar plunge event"
            });
            Mock <IRefRepository> mockRefRepository = new Mock <IRefRepository>();

            mockRefRepository.Setup(repository => repository.GetEventByName(notificationEntities[0].RowKey)).ReturnsAsync(notificationEntities[0]);
            mockRefRepository.Setup(repository => repository.GetEventByName(notificationEntities[1].RowKey)).ReturnsAsync(notificationEntities[1]);
            RegistrantWorker worker = new RegistrantWorker(_mockTrainingRepository.Object, mockRefRepository.Object);
            EventTextDto     dto    = new EventTextDto {
                Zip = "22193", City = "Dale City", From = "17035551212", Message = "Bad"
            };

            var actual = worker.AddNumberForEvent(dto);

            Assert.Equal("You text Bad", actual.Result.Message);
            _mockTrainingRepository.Verify(mock => mock.AddEvent(It.IsAny <EventInformation>()), Times.Never);
            //Assert.Equal(email1.Email, actual.Email1);
            //Assert.Equal(email2.Id, actual.RegistrantEmail2Id);
            //Assert.Equal(email2.Email, actual.Email2);
            //Assert.Equal(email3.Id, actual.RegistrantEmail3Id);
            //Assert.Equal(email3.Email, actual.Email3);
        }
コード例 #2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# PWSO receive sms message process.");

            var requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            log.LogInformation(requestBody);
            var formValues = requestBody.Split('&')
                             .Select(value => value.Split('='))
                             .ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "),
                                           pair => Uri.UnescapeDataString(pair[1]).Replace("+", " "));
            var dto = new EventTextDto
            {
                Message = formValues["Body"],
                From    = formValues["From"],
                Zip     = formValues["FromZip"],
                City    = formValues["FromCity"]
            };
            //var dto = new EventTextDto{Message = "Track", From = "17035901821", Zip = "22193", City = "Dale City"} ;
            string responseMessage;

            try
            {
                var connectionString      = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel");
                var azureConnectionString = System.Environment.GetEnvironmentVariable("AzureStorageConnectionString");
                var options = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(connectionString ?? throw new InvalidOperationException()).Options;
                var context = new PwsodbContext(options);
                ITrainingRepository trainingRepository = new TrainingRepository(context);
                IRefRepository      refRepository      = new RefRepository(azureConnectionString);
                var worker       = new RegistrantWorker(trainingRepository, refRepository);
                var notification = worker.AddNumberForEvent(dto);
                responseMessage = notification.Result.Message;
            }
            catch (Exception e)
            {
                log.LogError("Fatal Error: " + e.ToString());

                throw;
            }

            responseMessage += ". This message is from the PWSO Notification System.";
            return(new OkObjectResult(responseMessage));
        }
コード例 #3
0
        public RegistrantWorkerTest()
        {
            _mockTrainingRepository     = new Mock <ITrainingRepository>();
            _mockOrganizationRepository = new Mock <IOrganizationRepository>();
            _athlete1 = new Athletes {
                Id = 67, BirthDate = new DateTime(1985, 1, 17), MF = "M", MedicalExpirationDate = new DateTime(2 / 22 / 2020)
            };
            _athlete2 = new Athletes {
                Id = 219, BirthDate = new DateTime(1970, 10, 29), MF = "M", MedicalExpirationDate = new DateTime(8 / 5 / 2018)
            };
            List <Athletes> athletes = new List <Athletes> {
                _athlete1, _athlete2
            };

            _mockOrganizationRepository.Setup(repository => repository.GetAllAthletes()).ReturnsAsync(athletes);

            _worker = new RegistrantWorker(_mockTrainingRepository.Object, _mockOrganizationRepository.Object);
        }
コード例 #4
0
        public void GetRegistrantsForSport_WithoutMock(int sportId, int expected)

        {
            IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.test.json").Build();
            var            trainingConnectionString     = config["TrainingDatabase"];
            var            organizationConnectionString = config["OrganizationDatabase"];
            var            trainingOptions     = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(trainingConnectionString).Options;
            var            organizationOptions = new DbContextOptionsBuilder <PwsoContext>().UseSqlServer(organizationConnectionString).Options;

            PwsodbContext           trainingContext        = new PwsodbContext(trainingOptions);
            PwsoContext             organizationContext    = new PwsoContext(organizationOptions);
            ITrainingRepository     trainingRepository     = new TrainingRepository(trainingContext);
            IOrganizationRepository organizationRepository = new OrganizationRepository(organizationContext);
            RegistrantWorker        worker = new RegistrantWorker(trainingRepository, organizationRepository);


            //var actual = worker.GetRegistrantsForSport(sportId);
            //Assert.Equal(expected, actual.Result.Count);
        }
コード例 #5
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string sport = req.Query["sportid"];

            var     requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            sport = sport ?? data?.name;
            var sportId = int.Parse(sport);

            try
            {
                var trainingConnectionString     = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel");
                var organizationConnectionString = System.Environment.GetEnvironmentVariable("SQLCONNSTR_OrganizationModel");
                var trainingOptions     = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(trainingConnectionString ?? throw new InvalidOperationException()).Options;
                var organizationOptions = new DbContextOptionsBuilder <PwsoContext>().UseSqlServer(organizationConnectionString ?? throw new InvalidOperationException()).Options;

                var trainingContext     = new PwsodbContext(trainingOptions);
                var organizationContext = new PwsoContext(organizationOptions);
                ITrainingRepository     trainingRepository     = new TrainingRepository(trainingContext);
                IOrganizationRepository organizationRepository = new OrganizationRepository(organizationContext);
                var worker = new RegistrantWorker(trainingRepository, organizationRepository);

                var registrantList = await worker.GetRegistrantsForSport(sportId);

                return((ActionResult) new OkObjectResult(registrantList));
            }
            catch (Exception ex)
            {
                return((ActionResult) new BadRequestObjectResult(ex));
            }
        }