Exemple #1
0
        private E_ReminderCreationStatus TryCreateReminder(ReminderModel model)
        {
            string passwordHash = Security.GetSHA1Hash(model.Password);
            E_ReminderCreationStatus resultStatus = E_ReminderCreationStatus.error;


            E_VerificationStatus verificationStatus = ReminderRepository.GetVerificationStatus(model.Email, passwordHash);
            int      mailID = 0;
            DateTime nextReminder;

            switch (verificationStatus)
            {
            case E_VerificationStatus.emailUnknown:
                Guid verificationCode = Guid.NewGuid();
                int  emailID          = ReminderRepository.InsertUnverifiedEmail(model.Email, passwordHash, verificationCode);
                MessageService.SendVerificationEmail(model.Email, verificationCode);
                nextReminder = GetNextRemindingDate(model, DateTime.Now);
                ReminderRepository.AddReminder(model, emailID, nextReminder);

                resultStatus = E_ReminderCreationStatus.successVerifyEmail;

                Logger.LogInfo(
                    string.Format("unkown address remindii for:'{0}', Name: {1}"
                                  , model.Email, model.Name));
                break;

            case E_VerificationStatus.emailNotYetVerified:
                mailID       = ReminderRepository.GetEmailID(model.Email);
                nextReminder = GetNextRemindingDate(model, DateTime.Now);
                ReminderRepository.AddReminder(model, mailID, nextReminder);
                resultStatus = E_ReminderCreationStatus.successVerifyEmail;

                Logger.LogInfo(
                    string.Format("not verified remindii for:'{0}', Name: {1}"
                                  , model.Email, model.Name));
                break;

            case E_VerificationStatus.successfull:
                mailID       = ReminderRepository.GetEmailID(model.Email);
                nextReminder = GetNextRemindingDate(model, DateTime.Now);
                ReminderRepository.AddReminder(model, mailID, nextReminder);
                resultStatus = E_ReminderCreationStatus.successfull;
                Logger.LogInfo(
                    string.Format("verified remindii for:'{0}', Name: {1}"
                                  , model.Email, model.Name));
                break;

            case E_VerificationStatus.wrongPassword:
                resultStatus = E_ReminderCreationStatus.wrongPassword;
                Logger.LogInfo("Wrong password for email: " + model.Email);
                break;
            }

            if (resultStatus == E_ReminderCreationStatus.error)
            {
                throw new ApplicationException("Fehler");
            }
            return(resultStatus);
        }
        public async Task AddReminderShouldSuccess()
        {
            Reminder reminder = new Reminder {
                NewsId = 102, Schedule = DateTime.Now.AddHours(20)
            };

            var actual = await repository.AddReminder(reminder);

            Assert.IsAssignableFrom <Reminder>(actual);
            Assert.Equal(2, actual.ReminderId);
        }
        public void Post([FromBody] Reminder reminder)
        {
            var tableConfiguration = new TableConfiguration
            {
                ConfigurationString = @"DefaultEndpointsProtocol=https;AccountName=grace1002;AccountKey=oxFfz+dgsWONgXbVTX0KKeH0L5X4kBANp10siMiobJTt9Q6P8TXHw9wb7RDx3f3ALwMCjS4rpYu9Zwe8trYNPg==;EndpointSuffix=core.windows.net",
                TableName           = "Reminders"
            };

            var repository = new ReminderRepository(tableConfiguration);

            repository.AddReminder(reminder);
        }