public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
    {
        TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
        AsyncContextReadOperation asynch = new AsyncContextReadOperation();
        TransportClassContextRead oTransportClassContextRead = new TransportClassContextRead(oTransportClassMainAshx, asynch);
        try
        {
            asynch.ReadContextBegin(context.Request.InputStream, ReadContext, oTransportClassContextRead);
        }
        catch(Exception e)
        {
            OutputCommand oOutputCommand = new OutputCommand(ErrorTypes.Unknown);
            WriteOutputCommand(new TransportClassMainAshx(context, cb), oOutputCommand);

            _log.Error("Exception catched in BeginProcessRequest:", e);
        }
        return new AsyncOperationData(extraData);
    }
 private void CheckOpenCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
     TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);
     oTaskResult.GetBegin(cmd.id, TaskResultGetCallback, oTransportClassTaskResult);
 }
    private void ReopenCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
    {
        try
        {
            TaskResultDataToUpdate oTaskResultData = new TaskResultDataToUpdate();
            oTaskResultData.eStatus = FileStatus.WaitQueue;
            oTaskResultData.nStatusInfo = (int)ErrorTypes.NoError;

            ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
            TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);

            oTaskResult.UpdateBegin(cmd.id, oTaskResultData, TaskResultUpdateCallback, oTransportClassTaskResult);
        }
        catch
        {
            WriteOutputCommand(oTransportClassContextRead, new OutputCommand(ErrorTypes.Unknown));
        }
    }
 private void CheckSaveCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     JavaScriptSerializer oJavaScriptSerializer = new JavaScriptSerializer();
     OutputWaitSaveData oOutputWaitSaveData = oJavaScriptSerializer.Deserialize<OutputWaitSaveData>(cmd.data);
     ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
     TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);
     oTaskResult.GetBegin(oOutputWaitSaveData.key, TaskResultGetAsyncCallback, oTransportClassTaskResult);
 }
    private void SaveCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
    {
		_log.DebugFormat("SaveCommand, savetype={0}.", cmd.savetype);
        switch (cmd.savetype)
        {
            case c_sSaveTypePartStart:
            case c_sSaveTypeCompleteAll:
                {
					_log.Debug("cmd.savetype = SaveTypes.PartStart or SaveTypes.CompleteAll.");
                    TaskResultData oTaskResultData = new TaskResultData();
                    oTaskResultData.sKey = cmd.id;
                    oTaskResultData.sFormat = cmd.format;
                    oTaskResultData.eStatus = FileStatus.WaitQueue;
                    ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
                    TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);
                    oTaskResult.AddRandomKeyBegin(cmd.id, oTaskResultData, TaskResultAddRandomKeyAsyncCallback, oTransportClassTaskResult);
                    break;
                }
            case c_sSaveTypePart:
            case c_sSaveTypeComplete:
            default:
                {

					_log.Debug("cmd.savetype = SaveTypes.Part or SaveTypes.Complete or default.");
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    OutputSavePartData oOutputSavePartData = new OutputSavePartData(cmd.savekey, cmd.outputformat.Value);
                    OutputCommand oOutputCommand = new OutputCommand("savepart", serializer.Serialize(oOutputSavePartData));
                    string sFilename = "Editor";
                    string sExt = ".bin";
                    Storage oStorage = new Storage();
                    TransportClassStorage2 oTransportClassStorage2 = new TransportClassStorage2(oTransportClassContextRead, cmd, oStorage, null, cmd.savekey, sFilename, sExt, oOutputCommand);
                    oStorage.GetTreeNodeBegin(cmd.savekey, GetTreeNodeCallback, oTransportClassStorage2);
                    break;
                }
        }
    }
 private void GetCodepageCommand(TransportClassContextRead oTransportClassContextRead)
 {
     string sJson = Utils.GetSerializedEncodingProperty("temp", null, null);
     WriteOutputCommand(oTransportClassContextRead, new OutputCommand("getcodepage", sJson));
 }
 private void ClearCacheCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     AsyncClearCacheOperation oAsyncClearCacheOperation = new AsyncClearCacheOperation();
     TransportClassClearCache oTransportClassClearCache = new TransportClassClearCache(oTransportClassContextRead, cmd, oAsyncClearCacheOperation, null);
     oAsyncClearCacheOperation.ClearCacheBegin(cmd.id, TaskResultRemoveCallback, oTransportClassClearCache);
 }
 private void SaveFormOriginCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     TaskResultData oTaskResultData = new TaskResultData();
     oTaskResultData.sKey = cmd.id;
     oTaskResultData.sFormat = cmd.format;
     oTaskResultData.eStatus = FileStatus.WaitQueue;
     ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
     TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);
     oTaskResult.AddRandomKeyBegin(cmd.id, oTaskResultData, TaskResultAddRandomKeyAsyncCallback2, oTransportClassTaskResult);
 }
 private void ImageUrlCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     AsyncMediaXmlOperation oAsyncMediaXmlOperation = new AsyncMediaXmlOperation();
     TransportClassMediaXml oTransportClassMediaXml = new TransportClassMediaXml(oTransportClassContextRead, cmd, oAsyncMediaXmlOperation, null);
     oAsyncMediaXmlOperation.GetMediaXmlBegin(Path.Combine(cmd.id, "media/media.xml"), GetMediaXmlCallback, oTransportClassMediaXml);
 }
    private void GetSettingsCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)

    {

        OutputSettingsData oOutputSettingsData = new OutputSettingsData(cmd.format);

        JavaScriptSerializer oJsSerializer = new JavaScriptSerializer();  
        OutputCommand oOutputCommand = new OutputCommand("getsettings", oJsSerializer.Serialize(oOutputSettingsData));
        WriteOutputCommand(oTransportClassContextRead, oOutputCommand);
    }
    private ErrorTypes ProcessCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
    {
        ErrorTypes eError = ErrorTypes.NoError;

			_log.DebugFormat("ProcessCommand {0}:", cmd.c);
            switch (cmd.c)
            {
                case "create":
                    CreateCommand(oTransportClassContextRead, cmd);
                    break;

                case "reopen":
                    ReopenCommand(oTransportClassContextRead, cmd);
                    break;

                case "open":
                    OpenCommand(oTransportClassContextRead, cmd);
                    break;

                case "chopen":
                    CheckOpenCommand(oTransportClassContextRead, cmd);
                    break;

                case "save":
                    SaveCommand(oTransportClassContextRead, cmd);
                    break;
                case "sfct":
                    SfctCommand(oTransportClassContextRead, cmd);
                    break;
                case "chsave":
                    CheckSaveCommand(oTransportClassContextRead, cmd);
                    break;

                case "cc":
                    ClearCacheCommand(oTransportClassContextRead, cmd);
                    break;

                case "getcodepage":
                    GetCodepageCommand(oTransportClassContextRead);
                    break;

                case "imgurl":
                case "imgurls":
                    ImageUrlCommand(oTransportClassContextRead, cmd);
                    break;

                case "sfc":
                    SaveFileChangesCommand(oTransportClassContextRead, cmd);
                    break;
                case "sfcc":
                    SaveFileChangesCallbackCommand(oTransportClassContextRead, cmd);
                    break;

                case "savefromorigin":
                    SaveFormOriginCommand(oTransportClassContextRead, cmd);
                    break;

                case "getsettings":

                    GetSettingsCommand(oTransportClassContextRead, cmd);

                    break;

                default:
					_log.InfoFormat("Unknown command: {0}", cmd.c);
                    eError = ErrorTypes.Unknown;
                    break;
            }

        return eError;
    }
 private void SaveFileChangesCallbackCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     try
     {
         _log.DebugFormat("Enter SaveFileChangesCallbackCommand(id={0})", cmd.id);
         TransportClassSaveChanges2 oTransportClassSaveChanges = new TransportClassSaveChanges2(oTransportClassContextRead);
         oTransportClassSaveChanges.m_oInputCommand = cmd;
         oTransportClassSaveChanges.m_oTaskQueueData = cmd.task_queue_data;
         oTransportClassSaveChanges.m_oTaskResultDataToUpdate = new TaskResultDataToUpdate();
         oTransportClassSaveChanges.m_oTaskResultDataToUpdate.eStatus = (FileStatus)cmd.status;
         oTransportClassSaveChanges.m_oTaskResultDataToUpdate.nStatusInfo = cmd.status_info;
         oTransportClassSaveChanges.m_oTaskResult = TaskResult.NewTaskResult();
         oTransportClassSaveChanges.m_oTaskResult.GetBegin(oTransportClassSaveChanges.m_oTaskQueueData.m_sKey, TaskResultGetSfcCallback, oTransportClassSaveChanges);
     }
     catch (Exception e)
     {
         _log.Error("Exception catched in SaveFileChangesCallbackCommand:", e);
         WriteOutputCommand(oTransportClassContextRead, new OutputCommand(ErrorTypes.Unknown));
     }
 }
 private void SaveFileChangesCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
 {
     try
     {
         _log.DebugFormat("Enter SaveFileChangesCommand(id={0})", cmd.id);
         TransportClassSaveChanges1 oTransportClassSaveChanges = new TransportClassSaveChanges1(oTransportClassContextRead);
         oTransportClassSaveChanges.m_oInputCommand = cmd;
         oTransportClassSaveChanges.m_oTaskResult = TaskResult.NewTaskResult();
         oTransportClassSaveChanges.m_oTaskResult.GetBegin(cmd.id, TaskResultGetCallback2, oTransportClassSaveChanges);
     }
     catch(Exception e)
     {
         _log.Error("Exception catched in SaveFileChangesCommand:", e);
         WriteOutputCommand(oTransportClassContextRead, new OutputCommand(ErrorTypes.Unknown));
     }
 }
    private void CreateCommand(TransportClassContextRead oTransportClassContextRead, InputCommand cmd)
    {
        try
        {
            TaskResultData oTaskResultData = new TaskResultData();
            oTaskResultData.sKey = cmd.id;

            if (false == string.IsNullOrEmpty(cmd.format))
                oTaskResultData.sFormat = cmd.format;

            oTaskResultData.eStatus = FileStatus.Ok;

            if (false == string.IsNullOrEmpty(cmd.title))
                oTaskResultData.sTitle = cmd.title;

            ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
            TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassContextRead, cmd, oTaskResult);

            oTaskResult.GetOrCreateBegin(cmd.id, oTaskResultData, TaskResultGetOrCreateCallback2, oTransportClassTaskResult);
        }
        catch
        {
            WriteOutputCommand(oTransportClassContextRead, new OutputCommand(ErrorTypes.Unknown));
        }
    }