Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 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;
         }
     }
 }
Пример #7
0
        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));
        }
Пример #8
0
        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;
        }