public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); try { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var registrantDb = JsonSerializer.Deserialize <RegistrantDb>(requestBody); var organizationConnectionString = System.Environment.GetEnvironmentVariable("SQLCONNSTR_OrganizationModel"); var organizationOptions = new DbContextOptionsBuilder <PwsoContext>().UseSqlServer(organizationConnectionString ?? throw new InvalidOperationException()).Options; var organizationContext = new PwsoContext(organizationOptions); IOrganizationRepository organizationRepository = new OrganizationRepository(organizationContext); var athlete = await organizationRepository.FindAthleteByName(registrantDb.FirstName, registrantDb.LastName); var worker = new RegistrantMessageWorker(registrantDb); var registrantSQL = worker.BuildRegistrant(); var trainingConnectionString = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel"); var trainingOptions = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(trainingConnectionString ?? throw new InvalidOperationException()).Options; var trainingContext = new PwsodbContext(trainingOptions); ITrainingRepository trainingRepository = new TrainingRepository(trainingContext); await trainingRepository.AddRegistrant(registrantSQL); } catch (Exception e) { log.LogInformation(e.ToString()); return(new BadRequestResult()); } return(new OkResult()); }
public void BuildRegistantModelTest_1_Email_1_Phone_check_phone() { var registrant = new RegistrantDb { Emails = new List <string> { "*****@*****.**" }, FirstName = "Dick", LastName = "Grayson", Sport = "Track", IsVolunteer = false, ProgramName = "Woodbridge", SportId = 8, ProgramId = 11, Size = "small", }; registrant.Phones = new List <RegistrantPhone>(); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "7035551212" }); _worker = new RegistrantMessageWorker(registrant); var actual = _worker.BuildRegistrant(); Assert.Equal(1, actual.RegistrantPhone.Count); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, [TwilioSms(AccountSidSetting = "AccountSid", AuthTokenSetting = "AuthToken")] IAsyncCollector <CreateMessageOptions> messages, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var registrantDb = JsonSerializer.Deserialize <RegistrantDb>(requestBody); var worker = new RegistrantMessageWorker(registrantDb, System.Environment.GetEnvironmentVariable("FromPhone")); var textMessageList = worker.PrepareRegistrationText(); foreach (var textMessage in textMessageList) { await messages.AddAsync(textMessage); } } catch (Exception e) { log.LogInformation(e.ToString()); return(new BadRequestResult()); } return(new OkResult()); }
public void BuildRegistantModelTest_medical_check_1_athlete_fields() { var registrant = new RegistrantDb { Emails = new List <string> { "*****@*****.**" }, FirstName = "Dick", LastName = "Grayson", Sport = "Track", IsVolunteer = true, ProgramName = "Woodbridge", SportId = 8, ProgramId = 11, NickName = "Robin", AthleteId = 123 }; registrant.Phones = new List <RegistrantPhone>(); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "7035551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = false, Phone = "2125551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = false, Phone = "3015551212" }); registrant.Emails.Add("*****@*****.**"); _worker = new RegistrantMessageWorker(registrant); var actual = _worker.BuildRegistrant(); Assert.Equal(1, actual.RegisteredAthlete.Count); }
public void BuildEmailFromTest_email_email_matches() { var registrant = new RegistrantDb { Sender = "*****@*****.**" }; _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailFrom(); Assert.Equal(registrant.Sender, _message.From.Email); }
public void BuildEmailFromTest_no_email_email_default() { var registrant = new RegistrantDb { }; const string defaultEmail = "*****@*****.**"; _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailFrom(); Assert.Equal(_message.From.Email, defaultEmail); }
public void BuildEmailCopyTest_from_eq_cc() { var registrant = new RegistrantDb { FirstName = "Dick", LastName = "Grayson", NickName = "Robin", Sport = "Track", ProgramName = "Gainesville", IsVolunteer = false, Sender = "*****@*****.**", AthleteId = 0 }; _message.From = new EmailAddress(registrant.Sender); _message.AddTo("*****@*****.**"); _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailCopy(); Assert.Equal(registrant.Sender, _message.Personalizations[0].Ccs[0].Email); }
public void BuildEmailMedicalToTest_No_Found_Email_email_matches() { var registrant = new RegistrantDb { Emails = new List <string> { "*****@*****.**" } }; _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailMedicalTo(); Assert.Equal("*****@*****.**", _message.Personalizations[0].Tos[0].Email); }
public void BuildEmailCopyTest_when_from_eq__to_no_cc() { var registrant = new RegistrantDb { FirstName = "Dick", LastName = "Grayson", NickName = "Robin", Sport = "Track", ProgramName = "Gainesville", IsVolunteer = true, Sender = "*****@*****.**" }; _message.From = new EmailAddress(registrant.Sender); _message.AddTo(registrant.Sender); _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailCopy(); Assert.Null(_message.Personalizations[0].Ccs); }
public void BuildEmailToTest_2_Email_email_matches() { var registrant = new RegistrantDb { Emails = new List <string> { "*****@*****.**", "*****@*****.**" } }; _worker = new RegistrantMessageWorker(_message, registrant); _worker.BuildEmailTo(); Assert.Equal(_message.Personalizations[0].Tos[0].Email, registrant.Emails[0]); Assert.Equal(_message.Personalizations[0].Tos[1].Email, registrant.Emails[1]); }
public void BuildPhoneListTest_1_phone_0_text_0_list() { var registrant = new RegistrantDb(); registrant.Phones = new List <RegistrantPhone>(); registrant.Phones.Add(new RegistrantPhone { CanText = false, Phone = "7035551212" }); _worker = new RegistrantMessageWorker(registrant, "20255512121"); List <string> actual = _worker.BuildPhoneList(); Assert.Equal(0, actual.Count); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] IAsyncCollector <SendGridMessage> messageCollector, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var registrantDb = JsonSerializer.Deserialize <RegistrantDb>(requestBody); var message = new SendGridMessage(); var worker = new RegistrantMessageWorker(message, registrantDb); var connectionString = System.Environment.GetEnvironmentVariable("AzureWebJobsStorage"); BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("forms"); BlobClient blobMedical = containerClient.GetBlobClient("Athlete_Registration,_Release_and_Medical_Form4.pdf"); BlobDownloadInfo downloadMedical = await blobMedical.DownloadAsync(); BlobClient blobInstructions = containerClient.GetBlobClient("Instructions for Area 23 Medical Forms_0.docx"); BlobDownloadInfo downloadInstructions = await blobInstructions.DownloadAsync(); //Stream myBlob = downloadMedical.Content; //var length = downloadMedical.ContentLength; await messageCollector.AddAsync(worker.PrepareRegistrationEmail(downloadMedical, downloadInstructions)); if (!registrantDb.IsVolunteer && registrantDb.AthleteId == 0) { var medMessage = new SendGridMessage(); var medWorker = new RegistrantMessageWorker(medMessage, registrantDb) { MedicalEmail = System.Environment.GetEnvironmentVariable("MedicalEmail") }; await messageCollector.AddAsync(medWorker.PrepareMedicalEmail()); } } catch (Exception e) { log.LogInformation(e.ToString()); return(new BadRequestResult()); } return(new OkResult()); }
public void BuildRegistantModelTest_2_Email_3_Phone_check_regrant_fields() { var registrant = new RegistrantDb { Emails = new List <string> { "*****@*****.**" }, FirstName = "Dick", LastName = "Grayson", Sport = "Track", IsVolunteer = true, ProgramName = "Woodbridge", SportId = 8, ProgramId = 11, NickName = "Robin" }; registrant.Phones = new List <RegistrantPhone>(); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "7035551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = false, Phone = "2125551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = false, Phone = "3015551212" }); registrant.Emails.Add("*****@*****.**"); _worker = new RegistrantMessageWorker(registrant); var actual = _worker.BuildRegistrant(); Assert.Equal(registrant.FirstName, actual.FirstName); Assert.Equal(registrant.LastName, actual.LastName); Assert.Equal(0, actual.Id); Assert.Equal(registrant.IsVolunteer, actual.IsVolunteer); Assert.Equal(registrant.ProgramId, actual.ProgramId); Assert.Equal(registrant.Size, actual.Size); Assert.Equal(registrant.SportId, actual.SportId); Assert.Equal(registrant.NickName, actual.NickName); Assert.Equal(3, actual.RegistrantPhone.Count); Assert.Equal(2, actual.RegistrantEmail.Count); }
public void BuildPhoneListTest_3_phone_3_text_3_list() { var registrant = new RegistrantDb(); registrant.Phones = new List <RegistrantPhone>(); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "7035551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "2125551212" }); registrant.Phones.Add(new RegistrantPhone { CanText = true, Phone = "3015551212" }); _worker = new RegistrantMessageWorker(registrant, "20255512121"); List <string> actual = _worker.BuildPhoneList(); Assert.Equal(3, actual.Count); Assert.Equal("+17035551212", actual[0]); Assert.Equal("+12125551212", actual[1]); Assert.Equal("+13015551212", actual[2]); }