Beispiel #1
0
 public HomeViewModel(ExchangeRateListingViewModel exchangeRateViewModel, IAuthenticator authenticator, TaskSummaryViewModel taskSummaryViewModel)
 {
     ExchangeRateListingViewModel = exchangeRateViewModel;
     TaskSummaryViewModel         = taskSummaryViewModel;
     Authenticator = authenticator;
     Username      = authenticator.CurrentUser.Username;
     actualTime    = DateTime.Now.ToString("HH:mm");
     if (DateTime.Now.Hour > 0 && DateTime.Now.Hour <= 6)
     {
         actualGreeting = $"Hello, moon rider";
     }
     else if (DateTime.Now.Hour > 6 && DateTime.Now.Hour <= 12)
     {
         actualGreeting = $"Good morning, {Username}";
     }
     else if (DateTime.Now.Hour > 12 && DateTime.Now.Hour <= 16)
     {
         actualGreeting = $"Good afternoon, {Username}";
     }
     else if (DateTime.Now.Hour > 16 && DateTime.Now.Hour < 24)
     {
         actualGreeting = $"Good evening, {Username}";
     }
     StartTimer();
 }
        public void ValidationShouldFail_IfNoNameIsSupplied()
        {
            var model  = new TaskSummaryViewModel();
            var result = ValidateModel(model);

            var nameError = result.Where(r => r.ErrorMessage == "The Name field is required.").FirstOrDefault();

            Assert.NotNull(nameError);
        }
Beispiel #3
0
        public async Task Handle(UserUnenrolls notification)
        {
            // don't let problem with notification keep us from continuing
            try
            {
                var notificationModel = await _mediator.SendAsync(new EventDetailForNotificationQueryAsync { EventId = notification.EventId, UserId = notification.UserId })
                                        .ConfigureAwait(false);

                var campaignContact = notificationModel.CampaignContacts.SingleOrDefault(tc => tc.ContactType == (int)ContactTypes.Primary);
                var adminEmail      = campaignContact?.Contact.Email;

                if (string.IsNullOrWhiteSpace(adminEmail))
                {
                    return;
                }

                TaskSummaryViewModel taskModel = null;
                string remainingRequiredVolunteersPhrase;

                taskModel = notificationModel.Tasks.FirstOrDefault(t => t.Id == notification.TaskIds[0]) ?? new TaskSummaryViewModel();
                remainingRequiredVolunteersPhrase = $"{taskModel.NumberOfVolunteersSignedUp}/{taskModel.NumberOfVolunteersRequired}";

                var eventLink = $"View event: {_options.Value.SiteBaseUrl}Admin/Event/Details/{notificationModel.EventId}";
                var subject   = $"A volunteer has unenrolled from a task";

                var message = new StringBuilder();
                message.AppendLine($"A volunteer has unenrolled from a task.");
                message.AppendLine($"   Volunteer: {notificationModel.Volunteer.Name} ({notificationModel.Volunteer.Email})");
                message.AppendLine($"   Campaign: {notificationModel.CampaignName}");
                message.AppendLine($"   Event: {notificationModel.EventName} ({eventLink})");
                message.AppendLine($"   Task: {taskModel.Name} ({$"View task: {_options.Value.SiteBaseUrl}Admin/Task/Details/{taskModel.Id}"})");
                message.AppendLine($"   Task Start Date: {taskModel.StartDateTime.Date.ToShortDateString()}");
                message.AppendLine($"   Remaining/Required Volunteers: {remainingRequiredVolunteersPhrase}");
                message.AppendLine();

                var command = new NotifyVolunteersCommand
                {
                    ViewModel = new NotifyVolunteersViewModel
                    {
                        EmailMessage    = message.ToString(),
                        HtmlMessage     = message.ToString(),
                        EmailRecipients = new List <string> {
                            campaignContact.Contact.Email
                        },
                        Subject = subject
                    }
                };

                await _mediator.SendAsync(command).ConfigureAwait(false);
            }
            catch (Exception e)
            {
                _logger.LogError($"Exception encountered: message={e.Message}, innerException={e.InnerException}, stacktrace={e.StackTrace}");
            }
        }
            public void ValidationShouldFail_IfNoNumberOfVolunteersRequiredIsSupplied()
            {
                //arrange
                using (new CultureContext(new CultureInfo("en")))
                {
                    var model  = new TaskSummaryViewModel();
                    var tester = new PropertyValidationHelper <TaskSummaryViewModel>(model);

                    //act
                    var result = tester.ValidateProperty(m => m.NumberOfVolunteersRequired);

                    //assert
                    Assert.Contains("'Volunteers Required' must be greater than 0", result.Select(r => r.ErrorMessage));
                }
            }
            public void ValidationShouldFail_IfNoNameIsSupplied()
            {
                //arrange
                using (new CultureContext(new CultureInfo("en")))
                {
                    var model  = new TaskSummaryViewModel();
                    var tester = new PropertyValidationHelper <TaskSummaryViewModel>(model);

                    //act
                    var result = tester.ValidateProperty(m => m.Name);

                    //assert
                    Assert.Contains("The Name field is required.", result.Select(r => r.ErrorMessage));
                }
            }
            public void ValidationShouldSucceed_IfNumberOfVolunteersRequiredIs1()
            {
                //arrange
                using (new CultureContext(new CultureInfo("en")))
                {
                    var model = new TaskSummaryViewModel
                    {
                        NumberOfVolunteersRequired = 1
                    };
                    var tester = new PropertyValidationHelper <TaskSummaryViewModel>(model);

                    //act
                    var result = tester.ValidateProperty(m => m.NumberOfVolunteersRequired);

                    //assert
                    Assert.Empty(result);
                }
            }
            public void ValidationShouldSucceed_IfNameIsSupplied()
            {
                //arrange
                using (new CultureContext(new CultureInfo("en")))
                {
                    var model = new TaskSummaryViewModel
                    {
                        Name = "name"
                    };
                    var tester = new PropertyValidationHelper <TaskSummaryViewModel>(model);

                    //act
                    var result = tester.ValidateProperty(m => m.Name);

                    //assert
                    Assert.Empty(result);
                }
            }