public SendInfo Update(SendInfo sendInfo) { SendInfo result = null; try { using (var dbCtx = new WeatherAppDbEntities()) { result = dbCtx.SendInfo.SingleOrDefault(info => info.UserName == sendInfo.UserName); if (result != null) { result.Merge(sendInfo); dbCtx.SaveChanges(); return(result); } else { throw new DaoException("No user " + sendInfo.UserName + " found in database"); } } } catch (Exception e) { throw new DaoException("Error updating user " + sendInfo.UserName + " in database. " + e.Message, e); } }
public void UpdateUserSettings(SendInfo newInfo) { SendInfo existingInfo = factory.GetSendInfoDao().Find(newInfo.UserName); bool shouldSendEmail = ShouldSendInitialEmail(existingInfo, newInfo.UserEmail, newInfo.SendEmail.Value); bool shouldSendSms = ShouldSendInitialSms(existingInfo, newInfo.UserPhone, newInfo.SendSms.Value); existingInfo.Merge(newInfo); var _emailWorker = new EmailWorker(); if (shouldSendEmail) { _emailWorker.SendEmailInvite(existingInfo.UserName); } if (shouldSendSms) { _emailWorker.SendSmsInvite(existingInfo); } UpdateUserSettingsImpl(existingInfo); }