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  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic teams       = JsonConvert.DeserializeObject <TournamentDto>(requestBody);


            try
            {
                var apiKey = System.Environment.GetEnvironmentVariable("ApiKey");
                IEmailRepository emailRepository         = new EmailRepository(apiKey);
                var                  connectionString    = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel");
                var                  options             = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(connectionString).Options;
                PwsodbContext        context             = new PwsodbContext(options);
                ITrainingRepository  trainingRepository  = new TrainingRepository(context);
                IReferenceRepository referenceRepository = new ReferenceRepository(context);
                ReferenceWorker      refWorker           = new ReferenceWorker(referenceRepository);
                EmailWorker          emailWorker         = new EmailWorker(trainingRepository, emailRepository);
                var                  accountSid          = System.Environment.GetEnvironmentVariable("AccountSid");
                var                  authToken           = System.Environment.GetEnvironmentVariable("AuthToken");
                var                  fromPhone           = System.Environment.GetEnvironmentVariable("FromPhone");
                ISmsRepository       smsRepository       = new SmsRepository(accountSid, authToken, fromPhone);
                var                  textWorker          = new TextWorker(trainingRepository, smsRepository);

                foreach (var team in teams.Teams)
                {
                    var emailMessage = refWorker.ChampionshipEmailPreparation(team);
                    var textMessage  = refWorker.ChampionshipTextPreparation(team);
                    var numOfEmails  = await emailWorker.SendEmailsForSport(emailMessage);

                    var numOfSms = await textWorker.SendSmsForSport(textMessage);
                }

                return((ActionResult) new OkObjectResult(1));
            }
            catch (Exception ex)
            {
                return((ActionResult) new BadRequestObjectResult(ex));
            }
        }
Beispiel #2
0
        public void ChampionshipTextPreparation_When_executed_return_dto()
        {
            TournamentTeamDto dto = new TournamentTeamDto
            {
                TeamId      = 25,
                Game1TimeId = 7,
                Game2TimeId = 15,
                LocationId  = 50
            };

            Teams team = new Teams {
                Id = 25, Name = "Bulls"
            };
            CalendarTimes startTime = new CalendarTimes {
                Id = 6, TimeHour = "8:30 AM"
            };
            CalendarTimes firstTime = new CalendarTimes {
                Id = 7, TimeHour = "9:00 AM"
            };
            CalendarTimes secondTime = new CalendarTimes {
                Id = 15, TimeHour = "1:00 PM"
            };
            Locations location = new Locations
            {
                Id     = 50,
                Name   = "H. H. Poole Middle School",
                Street = "800 Eustace Road",
                City   = "Stafford",
                State  = "VA",
                Zip    = "22554"
            };

            ReferenceWorker.TournamentDetails expected = new ReferenceWorker.TournamentDetails
            {
                TeamName        = "Bulls",
                FirstGameTime   = "9:00 AM",
                SecondGameTime  = "1:00 PM",
                StartTime       = "8:30 AM",
                LocationName    = "H. H. Poole Middle School",
                LocationAddress = "800 Eustace Road",
                LocationCity    = "Stafford",
                LocationState   = "VA",
                LocationZip     = "22554"
            };

            _mockReferenceRepository.Setup(repository => repository.GetTeamByTeamId(25)).ReturnsAsync(team);
            _mockReferenceRepository.Setup(repository => repository.GetTimeByTimeId(6)).ReturnsAsync(startTime);
            _mockReferenceRepository.Setup(repository => repository.GetTimeByTimeId(7)).ReturnsAsync(firstTime);
            _mockReferenceRepository.Setup(repository => repository.GetTimeByTimeId(15)).ReturnsAsync(secondTime);
            _mockReferenceRepository.Setup(repository => repository.GetLocationByLocationId(50)).ReturnsAsync(location);

            var message =
                "Bulls competition will be at H. H. Poole Middle School, everyone should arrive at 8:30 AM ";


            CoachTextDto actual = _worker.ChampionshipTextPreparation(dto);

            Assert.Equal(4, actual.SportId);
            Assert.Equal(dto.TeamId, actual.TeamId);
            Assert.True(actual.Selected);
            Assert.Equal(message, actual.Message);
        }