internal OracleQuery buildUpdateFolderQuery(domain.sm.Folder folder) { string sql = "UPDATE SMS.FOLDER SET FOLDER_NAME=:folderName, OPLOCK=:oplockPlusOne, MODIFIED_DATE=SYSDATE WHERE FOLDER_ID=:folderId and OPLOCK=:oplock AND ACTIVE=1"; OracleQuery query = new OracleQuery(); query.Command = new OracleCommand(sql); OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50); folderNameParam.Value = folder.Name; query.Command.Parameters.Add(folderNameParam); OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal); oplockPlusOneParam.Value = folder.Oplock + 1; query.Command.Parameters.Add(oplockPlusOneParam); //OracleParameter modifiedParam = new OracleParameter("modifiedDate", OracleDbType.Date); //modifiedParam.Value = new OracleDate(DateTime.Now); //query.Command.Parameters.Add(modifiedParam); OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal); folderIdParam.Value = folder.Id; query.Command.Parameters.Add(folderIdParam); OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal); oplockParam.Value = folder.Oplock; query.Command.Parameters.Add(oplockParam); return(query); }
internal OracleQuery buildCreateFolderQuery(domain.sm.Folder folder) { string sql = "INSERT INTO SMS.FOLDER (USER_ID, FOLDER_NAME) VALUES (:userId, :folderName) RETURNING FOLDER_ID INTO :outId"; OracleQuery query = new OracleQuery(); query.Command = new OracleCommand(sql); OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal); userIdParam.Value = folder.Owner.Id; query.Command.Parameters.Add(userIdParam); OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50); folderNameParam.Value = folder.Name; query.Command.Parameters.Add(folderNameParam); OracleParameter outIdParam = new OracleParameter("outId", OracleDbType.Decimal); outIdParam.Direction = ParameterDirection.Output; query.Command.Parameters.Add(outIdParam); return(query); }
internal domain.sm.Folder toFolder(IDataReader rdr) { domain.sm.Folder folder = new domain.sm.Folder(); if (rdr.Read()) { folder = domain.sm.Folder.getFolderFromReader(rdr); } return(folder); }
public domain.sm.Folder updateFolder(domain.sm.Folder folder) { OracleQuery request = buildUpdateFolderQuery(folder); nonQuery qry = delegate() { return(request.Command.ExecuteNonQuery()); }; Int32 response = (Int32)_cxn.query(request, qry); if (response != 1) { throw new MdoException("Unable to update folder"); } folder.Oplock++; return(folder); }
public domain.sm.Folder createFolder(domain.sm.Folder folder) { OracleQuery request = buildCreateFolderQuery(folder); nonQuery qry = delegate() { return(request.Command.ExecuteNonQuery()); }; Int32 response = (Int32)_cxn.query(request, qry); if (response != 1) { throw new MdoException("Unable to create folder"); } folder.Id = ((Oracle.DataAccess.Types.OracleDecimal)request.Command.Parameters["outId"].Value).ToInt32(); return(folder); }
private void checkValidMove(Int32 currentFolder, Int32 newFolder, Int32 userId) { if (currentFolder == newFolder) { throw new MdoException("Message is already located in that folder"); } if (currentFolder == (Int32)domain.sm.enums.SystemFolderEnum.Drafts || newFolder == (Int32)domain.sm.enums.SystemFolderEnum.Drafts) { throw new MdoException("Can't move message out of or in to drafts folder"); } if (currentFolder == (Int32)domain.sm.enums.SystemFolderEnum.Sent || newFolder == (Int32)domain.sm.enums.SystemFolderEnum.Sent) { throw new MdoException("Can't move message out of or in to sent folder"); } if (newFolder > 0) { domain.sm.Folder folder = getUserFolder(userId, newFolder); // make sure user owns this folder if (folder != null && folder.Id > 0) { // ok return; } } }
public domain.sm.Addressee moveMessageToFolder(domain.sm.Addressee addressee, domain.sm.Folder newFolder) { domain.sm.Addressee dbAddressee = new AddresseeDao(_cxn).getAddressee(addressee.Id); if (dbAddressee == null || dbAddressee.Id <= 0) { throw new MdoException("Couldn't find that addressee record"); } checkValidMove(Convert.ToInt32(dbAddressee.FolderId), Convert.ToInt32(newFolder.Id), addressee.Owner.Id); dbAddressee.FolderId = newFolder.Id; dbAddressee.Oplock = addressee.Oplock; return(new AddresseeDao(_cxn).updateAddressee(dbAddressee)); }
internal domain.sm.Folder toFolder(IDataReader rdr) { domain.sm.Folder folder = new domain.sm.Folder(); if (rdr.Read()) { folder = domain.sm.Folder.getFolderFromReader(rdr); } return folder; }