public ActionResult SendIntroMail(int companyId, string subject, string body, string email) { if (string.IsNullOrEmpty(email)) { email = Request.Form["Company.Email"]; } if (!string.IsNullOrEmpty(Request.Form["Send"])) { IEmailService service = new GoogleEmailService(); #if DEBUG service = new SendGridEmailService(); #endif service.SendIntroMail(companyId, subject, body, email); TempData["Message"] = "Email Sent"; if (Request?.UrlReferrer != null) { return(Redirect(Request.UrlReferrer.OriginalString)); } return(RedirectToAction("Edit", "Companies", new { id = companyId, message = "Email Sent" })); } ScheduledEmailRepository emailRepository = new ScheduledEmailRepository(); emailRepository.Add(companyId, subject, body, email); TempData["Message"] = "Email Scheduled"; if (Request?.UrlReferrer != null) { return(Redirect(Request.UrlReferrer.OriginalString)); } return(RedirectToAction("Edit", "Companies", new { id = companyId, message = "Email Scheduled" })); }
public void GetPersonById() { // ARRANGE ApplicationConfiguration appApplicationConfiguration = new ApplicationConfiguration(); PersonRepository personRepository = new PersonRepository(_session); DeviceRepository deviceRepository = new DeviceRepository(_session); SessionRepository sessionRepository = new SessionRepository(_session); ScheduledEmailRepository scheduledEmailRepository = new ScheduledEmailRepository(_session); EmailNotificationService emailNotificationService = new EmailNotificationService(appApplicationConfiguration); ScheduledEmailService scheduledEmailService = new ScheduledEmailService(scheduledEmailRepository, emailNotificationService, personRepository); PersonService personService = new PersonService(personRepository, deviceRepository, sessionRepository, emailNotificationService, scheduledEmailService, appApplicationConfiguration, scheduledEmailRepository); SessionService sessionService = new SessionService(sessionRepository); PersonController personController = new PersonController(sessionService, personService) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage() }; personController.Request.Headers.Add("XClientId", Guid.NewGuid().ToString()); personController.Request.RequestUri = new Uri("http://localhost?xerxes=1"); // Authentication shortcut // ACT var personModel = personController.GetPersonById(Convert.ToInt32(appApplicationConfiguration.GetSetting("personId"))); // ASSERT Assert.IsNotNull(personModel); }
public void LoginSucceed() { ApplicationConfiguration appApplicationConfiguration = new ApplicationConfiguration(); PersonRepository personRepository = new PersonRepository(_session); EmailNotificationService emailNotificationService = new EmailNotificationService(appApplicationConfiguration); ScheduledEmailRepository scheduledEmailRepository = new ScheduledEmailRepository(_session); ScheduledEmailService scheduledEmailService = new ScheduledEmailService(scheduledEmailRepository, emailNotificationService, personRepository); DeviceRepository deviceRepository = new DeviceRepository(_session); SessionRepository sessionRepository = new SessionRepository(_session); PersonService personService = new PersonService(personRepository, deviceRepository, sessionRepository, emailNotificationService, scheduledEmailService, appApplicationConfiguration, scheduledEmailRepository); SessionService apiSessionService = new SessionService(sessionRepository); DeviceService deviceService = new DeviceService(deviceRepository, personRepository); AuthenticationService authenticationService = new AuthenticationService(personRepository); AuthController authController = new AuthController(apiSessionService, personService, authenticationService, deviceService) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage() }; authController.Request.Headers.Add("XClientId", "00000000000000000000000000000000"); // Wanna make this my NIHApp API KEY AuthModelLight authModelLight = new AuthModelLight { EmailAddress = appApplicationConfiguration.GetSetting("unitTestEmail"), Password = appApplicationConfiguration.GetSetting("unitPass") }; string jsonString = JsonConvert.SerializeObject(authModelLight); AuthModelLight result = authController.VerifyByPost(authModelLight); Assert.AreNotEqual(result.UserId, 0); }
public void CreatePerson() { ApplicationConfiguration appApplicationConfiguration = new ApplicationConfiguration(); PersonRepository personRepository = new PersonRepository(_session); ScheduledEmailRepository scheduledEmailRepository = new ScheduledEmailRepository(_session); EmailNotificationService emailNotificationService = new EmailNotificationService(appApplicationConfiguration); ScheduledEmailService scheduledEmailService = new ScheduledEmailService(scheduledEmailRepository, emailNotificationService, personRepository); DeviceRepository deviceRepository = new DeviceRepository(_session); SessionRepository sessionRepository = new SessionRepository(_session); PersonService personService = new PersonService(personRepository, deviceRepository, sessionRepository, emailNotificationService, scheduledEmailService, appApplicationConfiguration, scheduledEmailRepository); SessionService sessionService = new SessionService(sessionRepository); DeviceService deviceService = new DeviceService(deviceRepository, personRepository); AuthenticationService authenticationService = new AuthenticationService(personRepository); AuthController authController = new AuthController(sessionService, personService, authenticationService, deviceService) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage() }; authController.Request.Headers.Add("XClientId", "00000000000000000000000000000000"); PersonRegisterModel personRegisterModel = new PersonRegisterModel() { // assign the data to model properties here }; string jsonString = JsonConvert.SerializeObject(personRegisterModel); AuthModelLight authModelLight = authController.CreatePerson(personRegisterModel); Assert.AreNotEqual(authModelLight.UserId, 0); }
public async Task <ActionResult> RunScheduled() { await RunNotificationEmails(); lock (obj) { DatabaseLogging logging = new DatabaseLogging(); DateTime now = DateTimeHelper.GetCurrentDateTimeByTimeZone(Constants.CurrentTimeZoneId); logging.Add($"Run Scheduled emails. Today is {now.DayOfWeek}. Time: {now.Hour}:{now.Minute}. Full: {now}"); if (now.DayOfWeek == DayOfWeek.Saturday || now.DayOfWeek == DayOfWeek.Sunday) { logging.Add("We don't send emails today " + now.DayOfWeek + " " + now); return(Content("We don't send emails today " + now.DayOfWeek + " " + now)); } if (now.Hour != 9) { logging.Add("time is not correct " + now.Hour + " Full: " + now); return(Content("time is not correct " + now.Hour + " Full: " + now)); } ScheduledEmailRepository emailRepository = new ScheduledEmailRepository(); IEmailService emailService = new GoogleEmailService(); #if DEBUG emailService = new SendGridEmailService(); #endif var scheduled = emailRepository.GetScheduled().ToList(); logging.Add($"Schedule time is fine. Got {scheduled.Count} emails to sent"); foreach (var email in scheduled) { try { emailService.SendIntroMail(email.CompanyId, email.Subject, email.Body, email.Email); emailRepository.UpdateStatus(email.Id, EmailStatus.Sent); logging.Add($"Email {email.Id} is sent"); } catch (Exception e) { emailRepository.UpdateStatus(email.Id, EmailStatus.Failed); logging.Add($"Email {email.Id} is failed. Error: {e.Message}"); } } logging.Add($"***Scheduled emails are done***"); } return(Content("OK")); }
public void UpdatePerson() { // ARRANGE ApplicationConfiguration appApplicationConfiguration = new ApplicationConfiguration(); PersonRepository personRepository = new PersonRepository(_session); DeviceRepository deviceRepository = new DeviceRepository(_session); SessionRepository sessionRepository = new SessionRepository(_session); ScheduledEmailRepository scheduledEmailRepository = new ScheduledEmailRepository(_session); EmailNotificationService emailNotificationService = new EmailNotificationService(appApplicationConfiguration); ScheduledEmailService scheduledEmailService = new ScheduledEmailService(scheduledEmailRepository, emailNotificationService, personRepository); PersonService personService = new PersonService(personRepository, deviceRepository, sessionRepository, emailNotificationService, scheduledEmailService, appApplicationConfiguration, scheduledEmailRepository); SessionService sessionService = new SessionService(sessionRepository); PersonController personController = new PersonController(sessionService, personService) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage() }; personController.Request.Headers.Add("XClientId", Guid.NewGuid().ToString()); personController.Request.RequestUri = new Uri("http://localhost?xerxes=1"); // Authentication shortcut PersonModel personModel = new PersonModel() { ObjectId = Convert.ToInt32(appApplicationConfiguration.GetSetting("personId")), Name = "Name", Surname = "Surname", Email = appApplicationConfiguration.GetSetting("unitTestEmail"), CreateDate = new DateTime(2016, 09, 15, 9, 00, 00), ModifiedDate = new DateTime(2016, 09, 15, 9, 00, 00), }; // ACT personModel = personController.Update(personModel); // ASSERT Assert.AreNotEqual(personModel.ModifiedDate, new DateTime(2016, 09, 15, 9, 00, 00)); }
public void LoginInvalidCredentials() { ApplicationConfiguration appApplicationConfiguration = new ApplicationConfiguration(); PersonRepository personRepository = new PersonRepository(_session); AuthenticationService authenticationService = new AuthenticationService(personRepository); ScheduledEmailRepository scheduledEmailRepository = new ScheduledEmailRepository(_session); EmailNotificationService emailNotificationService = new EmailNotificationService(appApplicationConfiguration); ScheduledEmailService scheduledEmailService = new ScheduledEmailService(scheduledEmailRepository, emailNotificationService, personRepository); DeviceRepository deviceRepository = new DeviceRepository(_session); SessionRepository apiSessionRepository = new SessionRepository(_session); PersonService personService = new PersonService(personRepository, deviceRepository, apiSessionRepository, emailNotificationService, scheduledEmailService, appApplicationConfiguration, scheduledEmailRepository); SessionService apiSessionService = new SessionService(apiSessionRepository); DeviceService deviceService = new DeviceService(deviceRepository, personRepository); AuthController authController = new AuthController(apiSessionService, personService, authenticationService, deviceService) { Configuration = new HttpConfiguration(), Request = new HttpRequestMessage() }; authController.Request.Headers.Add("XClientId", "00000000000000000000000000000000"); AuthModelLight authModelLight = new AuthModelLight { EmailAddress = "empty", Password = "******" }; string jsonString = JsonConvert.SerializeObject(authModelLight); AuthModelLight result = authController.VerifyByPost(authModelLight); Assert.AreEqual(result.Desc, ApplicationConfiguration.LoginInvalidCredentials); }