コード例 #1
0
        public async Task Retrieve_GivenFullScheduleEmailAddresses_ShouldReturnAddresses()
        {
            // Arrange.
            var url          = new Uri("https://somegooglesheet");
            var requestMaker = Substitute.For <IRestRequestMaker>();
            var logger       = Substitute.For <ILogger>();

            const string address1 = "abc";
            const string address2 = "def";

            requestMaker
            .Get <GoogleSheet>(url)
            .Returns(new GoogleSheet
            {
                values = new[]
                {
                    new [] { $"{ColumnHeader_FullSchedule}" },
                    new [] { $"{address1}" },
                    new [] { $"{address2}" }
                }
            });

            var testObject = new EmailAddressGoogleSheet(
                url,
                requestMaker,
                logger);

            // Act.
            await testObject.Retrieve();

            IEmailAddresses emailAddresses = testObject.EmailAddresses;

            // Assert.
            Assert.AreEqual(2, testObject.FullScheduleEmailAddresses.Count());
            Assert.AreEqual(address1, testObject.FullScheduleEmailAddresses.ElementAt(0));
            Assert.AreEqual(address2, testObject.FullScheduleEmailAddresses.ElementAt(1));

            Assert.IsNotNull(emailAddresses);
            Assert.AreEqual(2, emailAddresses.FullScheduleEmailAddresses.Count());
            Assert.AreEqual(address1, emailAddresses.FullScheduleEmailAddresses.ElementAt(0));
            Assert.AreEqual(address2, emailAddresses.FullScheduleEmailAddresses.ElementAt(1));
        }
コード例 #2
0
        public async Task <ActionResult> SendFullScheduleToAll(EmailContent emailContent)
        {
            try
            {
                IEmailAddresses addresses = await _emailAddressService.RetrieveEmailAddresses();

                _logger.LogInfo("Sending full schedule email to all...", ClassName);

                emailContent.Address = addresses
                                       .FullScheduleEmailAddresses
                                       .Join(";");

                return(await SendFullScheduleToAddress(emailContent));
            }
            catch (Exception ex)
            {
                _logger.LogError("Exception while sending full schedule email to all.", ClassName, ex);
                return(StatusCode(500, ex.Message));
            }
        }