internal OracleQuery buildUpdateLastEmailNotificationQuery(domain.sm.User user) { string sql = "UPDATE SMS.SMS_USER SET LAST_EMAIL_NOTIFICATION=:lastEmailNotification, OPLOCK=:oplockPlusOne WHERE USER_ID=:userId and OPLOCK=:oplock"; OracleQuery query = new OracleQuery(); query.Command = new OracleCommand(sql); OracleParameter lastEmailNotificationParam = new OracleParameter("lastEmailNotification", OracleDbType.Date); lastEmailNotificationParam.Value = (Oracle.DataAccess.Types.OracleDate)DateTime.Now; query.Command.Parameters.Add(lastEmailNotificationParam); OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal); oplockPlusOneParam.Value = user.Oplock + 1; query.Command.Parameters.Add(oplockPlusOneParam); OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal); userIdParam.Value = Convert.ToDecimal(user.Id); query.Command.Parameters.Add(userIdParam); OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal); oplockParam.Value = Convert.ToDecimal(user.Oplock); query.Command.Parameters.Add(oplockParam); return(query); }
internal void addSenderToMessage(domain.sm.User sender, Message message) { if (message.Addressees == null) { message.Addressees = new List <Addressee>(); } message.Addressees.Add( new Addressee() { Message = message, Owner = sender, Role = domain.sm.enums.AddresseeRoleEnum.SENDER }); if (message.SentDate.Year > 1900) { message.Addressees[message.Addressees.Count - 1].FolderId = (Int32)domain.sm.enums.SystemFolderEnum.Sent; message.Addressees[message.Addressees.Count - 1].Folder = new Folder() { Id = (Int32)domain.sm.enums.SystemFolderEnum.Sent, Name = Enum.GetName(typeof(domain.sm.enums.SystemFolderEnum), domain.sm.enums.SystemFolderEnum.Sent) }; } else { message.Addressees[message.Addressees.Count - 1].FolderId = (Int32)domain.sm.enums.SystemFolderEnum.Drafts; message.Addressees[message.Addressees.Count - 1].Folder = new Folder() { Id = (Int32)domain.sm.enums.SystemFolderEnum.Drafts, Name = Enum.GetName(typeof(domain.sm.enums.SystemFolderEnum), domain.sm.enums.SystemFolderEnum.Drafts) }; } }
public IList <TriageGroup> getValidRecipients(Int32 userId) { domain.sm.User user = getUserById(userId); if (user == null) { throw new MdoException(MdoExceptionCode.DATA_NO_RECORD_FOR_ID); } return(getValidRecipients(user)); }
public domain.sm.User getUserDetail(Int32 userId) { domain.sm.User user = getUserById(userId); user.Groups = getValidRecipients(user).ToList <TriageGroup>(); user.Mailbox = new Mailbox() { UserFolders = new FolderDao(_cxn).getUserFolders(userId).ToList <domain.sm.Folder>() }; return(user); }
public Addressee moveMessage(Message message, domain.sm.User user, Folder folder) { Addressee addressee = getAddressee(message.Id, user.Id); checkValidMove(addressee.Folder, folder); addressee.Folder = folder; addressee.FolderId = folder.Id; if (!addressee.Folder.SystemFolder) { FolderDao folderDao = new FolderDao(_cxn); addressee.Folder = folderDao.getUserFolder(user.Id, folder.Id); } return(moveMessage(addressee)); }
public IList <TriageGroup> getValidRecipients(domain.sm.User user) { if (user == null || user.Id <= 0) { throw new MdoException("Invalid user"); } if (user.UserType == domain.sm.enums.UserTypeEnum.PATIENT) { return(getValidRecipientsForPatient(user.Id)); } else if (user.UserType == domain.sm.enums.UserTypeEnum.CLINICIAN) { return(getValidRecipientsForProvider(user.Id)); } else { throw new MdoException("Unexpected user type: " + Enum.GetName(typeof(domain.sm.enums.UserTypeEnum), user.UserType)); } }
internal bool updateLastEmailNotification(domain.sm.User user) { // this function should attempt to update the user's last notification date and return true if successful // be sure to use the OPLOCK!!! try { OracleQuery query = buildUpdateLastEmailNotificationQuery(user); nonQuery update = delegate() { return(query.Command.ExecuteNonQuery()); }; Int32 rowsAffected = (Int32)_cxn.query(query, update); if (rowsAffected != 1) { return(false); } user.Oplock++; return(true); } catch (Exception) { return(false); } }
internal bool shouldSend(domain.sm.User user) { if (String.IsNullOrEmpty(user.Email)) { return(false); } if (user.EmailNotification == domain.sm.enums.EmailNotificationEnum.NONE) { return(false); } if (user.EmailNotification == domain.sm.enums.EmailNotificationEnum.ONE_DAILY && DateTime.Now.Subtract(user.LastNotification).TotalDays > 1) { return(new UserDao(_cxn).updateLastEmailNotification(user)); } if (user.EmailNotification == domain.sm.enums.EmailNotificationEnum.EACH_MESSAGE || user.EmailNotification == domain.sm.enums.EmailNotificationEnum.ON_ASSIGNMENT) { return(new UserDao(_cxn).updateLastEmailNotification(user)); } else { return(false); } }
internal IList <domain.sm.User> toTriageGroupMembers(IDataReader rdr) { IList <domain.sm.User> users = new List <domain.sm.User>(); while (rdr.Read()) { domain.sm.User user = new domain.sm.User(); user.Id = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("USER_ID"))); if (!rdr.IsDBNull(rdr.GetOrdinal("EMAIL_ADDRESS"))) { user.Email = rdr.GetString(rdr.GetOrdinal("EMAIL_ADDRESS")); } user.Oplock = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("OPLOCK"))); int emailNoticeCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("EMAIL_NOTIFICATION"))); if (Enum.IsDefined(typeof(domain.sm.enums.EmailNotificationEnum), emailNoticeCode)) { user.EmailNotification = (domain.sm.enums.EmailNotificationEnum)emailNoticeCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION"))) { user.LastNotification = rdr.GetDateTime(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION")); } users.Add(user); } if (users.Count <= 0) { throw new MdoException("That triage group does not appear to have any members!"); } return(users); }
// TODO - make sure we're setting the correct defaults for the User object internal domain.sm.User toUserFromDataReader(IDataReader rdr) { domain.sm.User user = new domain.sm.User(); if (!rdr.Read()) { throw new MdoException(MdoExceptionCode.DATA_NO_RECORD_FOR_ID); } user.Id = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("USER_ID"))); user.FirstName = rdr.GetString(rdr.GetOrdinal("FIRST_NAME")); user.LastName = rdr.GetString(rdr.GetOrdinal("LAST_NAME")); int userType = Convert.ToInt32(rdr.GetString(rdr.GetOrdinal("USER_TYPE"))); if (Enum.IsDefined(typeof(domain.sm.enums.UserTypeEnum), userType)) { user.UserType = (domain.sm.enums.UserTypeEnum)userType; } int statusCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("STATUS"))); if (Enum.IsDefined(typeof(domain.sm.enums.UserStatusEnum), statusCode)) { user.Status = (domain.sm.enums.UserStatusEnum)statusCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("EMAIL_ADDRESS"))) { user.Email = rdr.GetString(rdr.GetOrdinal("EMAIL_ADDRESS")); } user.Oplock = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("OPLOCK"))); user.Active = (rdr.GetDecimal(rdr.GetOrdinal("ACTIVE")) == 1); if (!rdr.IsDBNull(rdr.GetOrdinal("SSN"))) { user.Ssn = rdr.GetString(rdr.GetOrdinal("SSN")); } if (!rdr.IsDBNull(rdr.GetOrdinal("STATION_NO"))) { // TBD - should we map this? rdr.GetString(rdr.GetOrdinal("STATION_NO")); } if (!rdr.IsDBNull(rdr.GetOrdinal("DUZ"))) { // TBD - should we map this rdr.GetString(rdr.GetOrdinal("DUZ")); } int emailNoticeCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("EMAIL_NOTIFICATION"))); if (Enum.IsDefined(typeof(domain.sm.enums.EmailNotificationEnum), emailNoticeCode)) { user.EmailNotification = (domain.sm.enums.EmailNotificationEnum)emailNoticeCode; } int messageFilterCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("DEFAULT_MESSAGE_FILTER"))); if (Enum.IsDefined(typeof(domain.sm.enums.MessageFilterEnum), emailNoticeCode)) { user.MessageFilter = (domain.sm.enums.MessageFilterEnum)messageFilterCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION"))) { user.LastNotification = rdr.GetDateTime(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION")); } return user; }
internal IList<domain.sm.User> toTriageGroupMembers(IDataReader rdr) { IList<domain.sm.User> users = new List<domain.sm.User>(); while (rdr.Read()) { domain.sm.User user = new domain.sm.User(); user.Id = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("USER_ID"))); if (!rdr.IsDBNull(rdr.GetOrdinal("EMAIL_ADDRESS"))) { user.Email = rdr.GetString(rdr.GetOrdinal("EMAIL_ADDRESS")); } user.Oplock = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("OPLOCK"))); int emailNoticeCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("EMAIL_NOTIFICATION"))); if (Enum.IsDefined(typeof(domain.sm.enums.EmailNotificationEnum), emailNoticeCode)) { user.EmailNotification = (domain.sm.enums.EmailNotificationEnum)emailNoticeCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION"))) { user.LastNotification = rdr.GetDateTime(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION")); } users.Add(user); } if (users.Count <= 0) { throw new MdoException("That triage group does not appear to have any members!"); } return users; }
// TODO - make sure we're setting the correct defaults for the User object internal domain.sm.User toUserFromDataReader(IDataReader rdr) { domain.sm.User user = new domain.sm.User(); if (!rdr.Read()) { throw new MdoException(MdoExceptionCode.DATA_NO_RECORD_FOR_ID); } user.Id = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("USER_ID"))); user.FirstName = rdr.GetString(rdr.GetOrdinal("FIRST_NAME")); user.LastName = rdr.GetString(rdr.GetOrdinal("LAST_NAME")); int userType = Convert.ToInt32(rdr.GetString(rdr.GetOrdinal("USER_TYPE"))); if (Enum.IsDefined(typeof(domain.sm.enums.UserTypeEnum), userType)) { user.UserType = (domain.sm.enums.UserTypeEnum)userType; } int statusCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("STATUS"))); if (Enum.IsDefined(typeof(domain.sm.enums.UserStatusEnum), statusCode)) { user.Status = (domain.sm.enums.UserStatusEnum)statusCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("EMAIL_ADDRESS"))) { user.Email = rdr.GetString(rdr.GetOrdinal("EMAIL_ADDRESS")); } user.Oplock = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("OPLOCK"))); user.Active = (rdr.GetDecimal(rdr.GetOrdinal("ACTIVE")) == 1); if (!rdr.IsDBNull(rdr.GetOrdinal("SSN"))) { user.Ssn = rdr.GetString(rdr.GetOrdinal("SSN")); } if (!rdr.IsDBNull(rdr.GetOrdinal("STATION_NO"))) { // TBD - should we map this? rdr.GetString(rdr.GetOrdinal("STATION_NO")); } if (!rdr.IsDBNull(rdr.GetOrdinal("DUZ"))) { // TBD - should we map this rdr.GetString(rdr.GetOrdinal("DUZ")); } int emailNoticeCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("EMAIL_NOTIFICATION"))); if (Enum.IsDefined(typeof(domain.sm.enums.EmailNotificationEnum), emailNoticeCode)) { user.EmailNotification = (domain.sm.enums.EmailNotificationEnum)emailNoticeCode; } int messageFilterCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("DEFAULT_MESSAGE_FILTER"))); if (Enum.IsDefined(typeof(domain.sm.enums.MessageFilterEnum), emailNoticeCode)) { user.MessageFilter = (domain.sm.enums.MessageFilterEnum)messageFilterCode; } if (!rdr.IsDBNull(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION"))) { user.LastNotification = rdr.GetDateTime(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION")); } return(user); }