Exemple #1
0
        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" }));
        }
Exemple #2
0
        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);
        }
Exemple #5
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"));
        }
Exemple #6
0
        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);
        }