예제 #1
0
        public void BuildCancelEmailSubject_When_executed_return_subject()

        {
            SportLocationDto sport = new SportLocationDto
            {
                ProgramId   = 10,
                SportId     = 4,
                Email       = "*****@*****.**",
                SportName   = "Basketball",
                ProgramName = "Woodbridge",
            };

            CancelEventDto cancelEvent = new CancelEventDto
            {
                CancelNote   = "practice is cancel due to snow",
                CancelReason = "weather",
                PracticeId   = 67,
            };

            PracticeCalendarItems practice = new PracticeCalendarItems
            {
                Id           = 67,
                CalendarItem = new CalendarItems {
                    Id = 89, ItemDate = DateTime.Now.AddDays(7)
                }
            };

            string expected = sport.SportName + " " + sport.ProgramName + " " +
                              DateTime.Now.AddDays(7).ToShortDateString() + " practice canceled " +
                              cancelEvent.CancelReason;

            string actual = _worker.BuildCancelEmailSubject(sport, cancelEvent, practice);

            Assert.Equal(expected, actual);
        }
예제 #2
0
        public void PrepareSportsDataForClient_When_executed_return_dto()

        {
            var sport = new Sports()
            {
                Id    = 1,
                Name  = "BasketBall",
                Email = "*****@*****.**",
            };
            var location = new Programs()
            {
                Id              = 2,
                Name            = "Stonewall",
                SportNavigation = sport
            };

            sport.Programs.Add(location);


            SportLocationDto actual = _worker.PrepareSportsDataForClient(location);

            Assert.Equal(sport.Email, actual.Email);
            Assert.Equal(sport.Name, actual.SportName);
            Assert.Equal(sport.Id, actual.SportId);
            Assert.Equal(location.Id, actual.ProgramId);
            Assert.Equal(location.Name, actual.ProgramName);
        }
예제 #3
0
        public string BuildCancelEmailSubject(SportLocationDto sport, CancelEventDto cancelEvent, PracticeCalendarItems practice)
        {
            string message = sport.SportName + " " + sport.ProgramName;

            message += " " + practice.CalendarItem.ItemDate.ToShortDateString();
            message += " practice canceled " + cancelEvent.CancelReason;
            return(message);
        }
예제 #4
0
        public SportLocationDto PrepareSportsDataForClient(Programs location)
        {
            SportLocationDto dto = new SportLocationDto
            {
                Email       = location.SportNavigation.Email,
                SportName   = location.SportNavigation.Name,
                SportId     = location.SportNavigation.Id,
                ProgramId   = location.Id,
                ProgramName = location.Name
            };

            return(dto);
        }
예제 #5
0
        public void ProcessEventCancelation_When_executed_verify_event()

        {
            CancelEventDto cancelEvent = new CancelEventDto
            {
                CancelNote   = "practice is cancel due to snow",
                CancelReason = "weather",
                PracticeId   = 67,
            };

            CalendarItems calendarItem = new CalendarItems
            {
                Id       = 89,
                ItemDate = DateTime.Now.AddDays(7),
            };

            PracticeCalendarItems practiceCalendarItem = new PracticeCalendarItems
            {
                Id           = 67,
                CalendarItem = calendarItem,
                ProgramId    = 10,
            };

            SportLocationDto sport = new SportLocationDto
            {
                ProgramId   = 10,
                SportId     = 4,
                Email       = "*****@*****.**",
                SportName   = "Basketball",
                ProgramName = "Woodbridge",
            };

            PracticeCalendarItems practice = new PracticeCalendarItems
            {
                Id           = 67,
                CalendarItem = new CalendarItems {
                    Id = 89, ItemDate = DateTime.Now.AddDays(7)
                }
            };

            _mockCalendarRepository.Setup(repository => repository.GetPracticeEvent(cancelEvent.PracticeId)).ReturnsAsync(practiceCalendarItem);

            string expected = sport.SportName + " " + sport.ProgramName + " " +
                              DateTime.Now.AddDays(7).ToShortDateString() + " practice canceled " +
                              cancelEvent.CancelReason;

            var actual = _worker.ProcessEventCancelation(cancelEvent);

            _mockCalendarRepository.Verify(mock => mock.GetPracticeEvent(It.IsAny <long>()), Times.Once);
        }
예제 #6
0
        public async Task <CoachEmailDto> ProcessEventCancelation(CancelEventDto cancelEvent)
        {
            var practice = await _calendarRepository.GetPracticeEvent(cancelEvent.PracticeId);

            var location = await _referenceRepository.GetLocationByProgramId(practice.ProgramId);

            _calendarRepository.CancelEvent(practice.CalendarItem.Id, cancelEvent.CancelReason,
                                            cancelEvent.CancelNote);
            SportLocationDto sport = new SportLocationDto
            {
                SportName   = location.SportNavigation.Name,
                ProgramName = location.Name,
            };
            var dto = new CoachEmailDto
            {
                From        = location.SportNavigation.Email,
                SportId     = location.SportNavigation.Id,
                ProgramId   = location.Id,
                HtmlContent = cancelEvent.CancelNote,
                Subject     = BuildCancelEmailSubject(sport, cancelEvent, practice),
            };

            return(dto);
        }