コード例 #1
0
        //发送者上传离线文件完成
        void FileReceivingEvents_FileTransCompleted(ESPlus.FileTransceiver.TransferingProject project)
        {
            string accepterID = Comment4OfflineFile.ParseUserID(project.Comment);

            if (accepterID == null)
            {
                return;
            }

            OfflineFileItem item = new OfflineFileItem();

            item.AccepterID    = accepterID;
            item.FileLength    = project.TotalSize;
            item.FileName      = project.ProjectName;
            item.SenderID      = project.SenderID;
            item.RelayFilePath = project.LocalSavePath;

            if (this.rapidServerEngine.UserManager.IsUserOnLine(accepterID)) //如果接收者在线,则直接转发离线文件
            {
                string newProjectID = null;
                this.rapidServerEngine.FileController.BeginSendFile(item.AccepterID, item.RelayFilePath, Comment4OfflineFile.BuildComment(item.SenderID), out newProjectID);
            }
            else
            {
                this.globalCache.StoreOfflineFileItem(item);
            }
        }
コード例 #2
0
        //离线文件发送给接收者完成
        void FileSendingEvents_FileTransCompleted(ESPlus.FileTransceiver.TransferingProject project)
        {
            var senderID = Comment4OfflineFile.ParseUserID(project.Comment);
            if (senderID == null)
            {
                return;
            }
            File.Delete(project.OriginPath);

            //通知发送方
            var contract = new OfflineFileResultNotifyContract(project.AccepterID, project.ProjectName, true);
            this.rapidServerEngine.CustomizeController.Send(senderID, InformationTypes.OfflineFileResultNotify, CompactPropertySerializer.Default.Serialize<OfflineFileResultNotifyContract>(contract));
        }
コード例 #3
0
        void FileController_FileResponseReceived(ESPlus.FileTransceiver.TransferingProject project, bool agree)
        {
            string senderID = Comment4OfflineFile.ParseUserID(project.Comment);

            if (senderID == null)
            {
                return;
            }

            if (!agree)                          //客户端拒绝接收离线文件
            {
                File.Delete(project.OriginPath); //删除在服务端保存的离线文件

                //通知发送方
                OfflineFileResultNotifyContract contract = new OfflineFileResultNotifyContract(project.AccepterID, project.ProjectName, false);
                this.rapidServerEngine.CustomizeController.Send(senderID, InformationTypes.OfflineFileResultNotify, CompactPropertySerializer.Default.Serialize <OfflineFileResultNotifyContract>(contract));
            }
        }