Ejemplo n.º 1
0
 private void WaitEnd(TransportClass1 oTransportClass1)
 {
     try
     {
         Timer oTimer = new Timer(WaitEndTimerCallback, oTransportClass1, TimeSpan.FromMilliseconds(-1), TimeSpan.FromMilliseconds(-1));
         oTransportClass1.m_oTimer = oTimer;
         oTimer.Change(TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(-1));
     }
     catch
     {
         WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
     }
 }
Ejemplo n.º 2
0
        private void CheckStatus(TransportClass1 oTransportClass1, TaskResultData oTaskResultData)
        {
            switch (oTaskResultData.eStatus)
            {
            case FileStatus.Ok:
                string sFilename   = HttpUtility.UrlEncode("output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
                string sPath       = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey) + "/output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
                string sDeletePath = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey));

                string sSiteUrl = UrlBuilder.UrlWithoutPath(oTransportClass1.m_oHttpContext.Request);

                string strFileUrl = sSiteUrl + Constants.mc_sResourceServiceUrlRel + sPath + "&nocache=true" + "&deletepath=" + sDeletePath + "&filename=" + sFilename;
                WriteOutputCommand(oTransportClass1, new OutputCommand(strFileUrl, "100", true, ErrorTypes.NoError));
                break;

            case FileStatus.WaitQueue:
                if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
                {
                    WriteOutputCommand(oTransportClass1, new OutputCommand("", "0", false, ErrorTypes.NoError));
                }
                else
                {
                    WaitEnd(oTransportClass1);
                }
                break;

            case FileStatus.Convert:
                if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
                {
                    WriteOutputCommand(oTransportClass1, new OutputCommand("", oTaskResultData.nStatusInfo.ToString(), false, ErrorTypes.NoError));
                }
                else
                {
                    WaitEnd(oTransportClass1);
                }
                break;

            case FileStatus.Err:
            case FileStatus.ErrToReload:
                AsyncClearCacheOperation oAsyncClearCacheOperation = new AsyncClearCacheOperation();
                TransportClass2          oTransportClass2          = new TransportClass2(oTransportClass1, oAsyncClearCacheOperation, (ErrorTypes)oTaskResultData.nStatusInfo);
                oAsyncClearCacheOperation.ClearCacheBegin(oTransportClass1.m_oInputParams.m_sKey, ClearCacheCallback, oTransportClass2);
                break;

            default:
                WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
                break;
            }
        }
Ejemplo n.º 3
0
    public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
    {

        TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
        ErrorTypes eError = ErrorTypes.NoError;
        try
        {
            _log.Info("Starting process request...");
            _log.Info(context.Request.QueryString.ToString());

            string sGuid = context.Request.QueryString["key"];
            int nMaxBytes = Convert.ToInt32(ConfigurationSettings.AppSettings["limits.image.size"] ?? "25000000");
            if (context.Request.ContentLength <= nMaxBytes)
            {
                if (context.Request.Files.Count > 0)
                {
                    
                    int nParamsCount = 0;
                    string sInputParams = "";
                    for (int i = 0, length = context.Request.QueryString.Count; i < length; ++i)
                    {
                        sInputParams += context.Request.QueryString.Get(i) + ":" + context.Request.QueryString.GetKey(i);
                        if (nParamsCount > 0)
                            sInputParams += ",";
                        nParamsCount++;
                    }
                    AsyncMediaXmlOperation oAsyncMediaXmlOperation = new AsyncMediaXmlOperation();
                    List<string> aUrls = new List<string>();
                    TransportClass1 oTransportClass1 = new TransportClass1(oTransportClassMainAshx, oAsyncMediaXmlOperation, context.Request.QueryString, aUrls, sGuid, Path.Combine(sGuid, @"media/media.xml"), context.Request.Files, context.Request.Files.GetEnumerator());
                    oAsyncMediaXmlOperation.GetMediaXmlBegin(oTransportClass1.m_sMediaXml, GetMediaXmlCallback, oTransportClass1);
                }
                else
                    eError = ErrorTypes.UploadCountFiles;
            }
            else
                eError = ErrorTypes.UploadContentLength;
        }
        catch(Exception e)
        {
            eError = ErrorTypes.Upload;
            
            _log.Error(context.Request.QueryString.ToString());
            _log.Error("Exeption: ", e);
        }
        if (ErrorTypes.NoError != eError)
            WriteToResponse(oTransportClassMainAshx, eError, null, context.Request.QueryString);
        return new AsyncOperationData(extraData);
    }
Ejemplo n.º 4
0
        private void WaitEndTimerCallback(Object stateInfo)
        {
            TransportClass1 oTransportClass1 = stateInfo as TransportClass1;

            try
            {
                if (null != oTransportClass1.m_oTimer)
                {
                    oTransportClass1.m_oTimer.Dispose();
                }
                oTransportClass1.m_oTaskResult.GetBegin(oTransportClass1.m_oInputParams.m_sKey, WaitEndCallback, oTransportClass1);
            }
            catch
            {
                WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
            }
        }
Ejemplo n.º 5
0
        private void WaitEndCallback(IAsyncResult ar)
        {
            TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;

            try
            {
                TaskResultData oTaskResultData;
                ErrorTypes     eError = oTransportClass1.m_oTaskResult.GetEnd(ar, out oTaskResultData);
                if (ErrorTypes.NoError == eError)
                {
                    CheckStatus(oTransportClass1, oTaskResultData);
                }
                else
                {
                    WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, eError));
                }
            }
            catch
            {
                WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
            }
        }
Ejemplo n.º 6
0
        private void WriteMediaXmlCallback(IAsyncResult ar)
        {
            TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;

            try
            {
                ErrorTypes eError = oTransportClass1.m_oAsyncMediaXmlOperation.WriteMediaXmlEnd(ar);
                if (ErrorTypes.NoError == eError)
                {
                    WriteToResponse(oTransportClass1, ErrorTypes.NoError, oTransportClass1.m_aUrls, oTransportClass1.m_aInputParams);
                }
                else
                {
                    WriteToResponse(oTransportClass1, eError, null, oTransportClass1.m_aInputParams);
                }
            }
            catch (Exception e)
            {
                _log.Error("Exeption: ", e);
                WriteToResponse(oTransportClass1, ErrorTypes.Upload, null, oTransportClass1.m_aInputParams);
            }
        }
Ejemplo n.º 7
0
        private void GetMediaXmlCallback(IAsyncResult ar)
        {
            TransportClass1 oTransportClass1 = ar.AsyncState as TransportClass1;

            try
            {
                Dictionary <string, string> aMediaXmlMapHash;
                Dictionary <string, string> aMediaXmlMapFilename;
                ErrorTypes eError = oTransportClass1.m_oAsyncMediaXmlOperation.GetMediaXmlEnd(ar, out aMediaXmlMapHash, out aMediaXmlMapFilename);
                if (ErrorTypes.NoError == eError && oTransportClass1.m_oFilesEnumerator.MoveNext())
                {
                    GetMediaXmlCallbackProcess(oTransportClass1, aMediaXmlMapHash, aMediaXmlMapFilename);
                }
                else
                {
                    WriteToResponse(oTransportClass1, eError, null, oTransportClass1.m_aInputParams);
                }
            }
            catch (Exception e)
            {
                _log.Error("Exeption: ", e);
                WriteToResponse(oTransportClass1, ErrorTypes.Upload, null, oTransportClass1.m_aInputParams);
            }
        }
Ejemplo n.º 8
0
        public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
        {
            TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
            ErrorTypes             eError = ErrorTypes.NoError;

            try
            {
                _log.Info("Starting process request...");
                _log.Info(context.Request.QueryString.ToString());

                InputParams oInputParams = new InputParams();
                oInputParams.m_sKey           = context.Request.QueryString["key"];
                oInputParams.m_svKey          = context.Request.QueryString["vkey"];
                oInputParams.m_sUrl           = context.Request.QueryString["url"];
                oInputParams.m_sEmbeddedfonts = context.Request.QueryString["embeddedfonts"];

                int nIndexSep = oInputParams.m_sUrl.IndexOf(',');
                if (-1 != nIndexSep)
                {
                    oInputParams.m_sUrl = oInputParams.m_sUrl.Substring(0, nIndexSep);
                }
                oInputParams.m_sTitle = context.Request.QueryString["title"];
                if (string.IsNullOrEmpty(oInputParams.m_sTitle))
                {
                    oInputParams.m_sTitle = "convert";
                }
                oInputParams.m_sFiletype     = context.Request.QueryString["filetype"];
                oInputParams.m_nOutputtype   = FileFormats.FromString(context.Request.QueryString["outputtype"]);
                oInputParams.m_bAsyncConvert = Convert.ToBoolean(context.Request.QueryString["async"]);
                oInputParams.m_sCodepage     = context.Request.QueryString["codePage"];
                oInputParams.m_sDelimiter    = context.Request.QueryString["delimiter"];

                if (ErrorTypes.NoError == eError)
                {
                    ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
                    TaskResultData       oToAdd      = new TaskResultData();

                    oInputParams.m_sKey = "conv_" + oInputParams.m_sKey;
                    oToAdd.sKey         = oInputParams.m_sKey;
                    oToAdd.sFormat      = oInputParams.m_sFiletype;
                    oToAdd.eStatus      = FileStatus.WaitQueue;
                    oToAdd.sTitle       = oInputParams.m_sTitle;
                    TransportClass1 oTransportClass1 = new TransportClass1(oTransportClassMainAshx, oTaskResult, new CTaskQueue(), oInputParams);
                    oTaskResult.GetOrCreateBegin(oInputParams.m_sKey, oToAdd, GetOrCreateCallback, oTransportClass1);
                }
            }
            catch (Exception e)
            {
                eError = ErrorTypes.Unknown;

                _log.Error(context.Request.QueryString.ToString());
                _log.Error("Exeption: ", e);
            }
            finally
            {
                if (ErrorTypes.NoError != eError)
                {
                    WriteOutputCommand(oTransportClassMainAshx, new OutputCommand(null, null, null, eError));
                }
            }
            return(new AsyncOperationData(extraData));
        }
Ejemplo n.º 9
0
 public TransportClass2(TransportClass1 oTransportClass1, Dictionary<string, string> oMediaXmlMapHash, Dictionary<string, string> oMediaXmlMapFilename, AsyncContextReadOperation oAsyncContextReadOperation)
     : base(oTransportClass1, oTransportClass1.m_oAsyncMediaXmlOperation, oTransportClass1.m_aInputParams, oTransportClass1.m_aUrls, oTransportClass1.m_sKey, oTransportClass1.m_sMediaXml, oTransportClass1.m_oFiles, oTransportClass1.m_oFilesEnumerator)
 {
     m_oMediaXmlMapHash = oMediaXmlMapHash;
     m_oMediaXmlMapFilename = oMediaXmlMapFilename;
     m_oAsyncContextReadOperation = oAsyncContextReadOperation;
 }
Ejemplo n.º 10
0
 private void GetMediaXmlCallbackProcess(TransportClass1 oTransportClass1, Dictionary<string, string> aMediaXmlMapHash, Dictionary<string, string> aMediaXmlMapFilename)
 {
     AsyncContextReadOperation oAsyncContextReadOperation = new AsyncContextReadOperation();
     TransportClass2 oTransportClass2 = new TransportClass2(oTransportClass1, aMediaXmlMapHash, aMediaXmlMapFilename, oAsyncContextReadOperation);
     HttpPostedFile oCurrentFile = (HttpPostedFile)oTransportClass1.m_oFiles[(string)oTransportClass1.m_oFilesEnumerator.Current];
     oCurrentFile.InputStream.Position = 0;
     oAsyncContextReadOperation.ReadContextBegin(oCurrentFile.InputStream, ReadContextCallback, oTransportClass2);
 }
Ejemplo n.º 11
0
    public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
    {
        TransportClassMainAshx oTransportClassMainAshx = new TransportClassMainAshx(context, cb);
        ErrorTypes eError = ErrorTypes.NoError;
        try
        {
            _log.Info("Starting process request...");
            _log.Info(context.Request.QueryString.ToString());
            
            InputParams oInputParams = new InputParams();
            oInputParams.m_sKey = context.Request.QueryString["key"];
            oInputParams.m_svKey = context.Request.QueryString["vkey"];
            oInputParams.m_sUrl = context.Request.QueryString["url"];
            oInputParams.m_sEmbeddedfonts = context.Request.QueryString["embeddedfonts"];

            int nIndexSep = oInputParams.m_sUrl.IndexOf(',');
            if (-1 != nIndexSep)
                oInputParams.m_sUrl = oInputParams.m_sUrl.Substring(0, nIndexSep);
            oInputParams.m_sTitle = context.Request.QueryString["title"];
            if (string.IsNullOrEmpty(oInputParams.m_sTitle))
                oInputParams.m_sTitle = "convert";
            oInputParams.m_sFiletype = context.Request.QueryString["filetype"];
            oInputParams.m_nOutputtype = FileFormats.FromString(context.Request.QueryString["outputtype"]);
            oInputParams.m_bAsyncConvert = Convert.ToBoolean(context.Request.QueryString["async"]);
            oInputParams.m_sCodepage = context.Request.QueryString["codePage"];
            oInputParams.m_sDelimiter = context.Request.QueryString["delimiter"];

            if (ErrorTypes.NoError == eError)
            {
                ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
                TaskResultData oToAdd = new TaskResultData();
                
                oInputParams.m_sKey = "conv_" + oInputParams.m_sKey;
                oToAdd.sKey = oInputParams.m_sKey;
                oToAdd.sFormat = oInputParams.m_sFiletype;
                oToAdd.eStatus = FileStatus.WaitQueue;
                oToAdd.sTitle = oInputParams.m_sTitle;
                TransportClass1 oTransportClass1 = new TransportClass1(oTransportClassMainAshx, oTaskResult, new CTaskQueue(), oInputParams);
                oTaskResult.GetOrCreateBegin(oInputParams.m_sKey, oToAdd, GetOrCreateCallback, oTransportClass1);
            }
        }
        catch(Exception e)
        {
            eError = ErrorTypes.Unknown;
            
            _log.Error(context.Request.QueryString.ToString());
            _log.Error("Exeption: ", e);
        }
        finally
        {
            if( ErrorTypes.NoError != eError )
                WriteOutputCommand(oTransportClassMainAshx, new OutputCommand(null, null, null, eError));
        }
        return new AsyncOperationData(extraData);
    }
Ejemplo n.º 12
0
 private void WaitEnd(TransportClass1 oTransportClass1)
 {
     try
     {
         Timer oTimer = new Timer(WaitEndTimerCallback, oTransportClass1, TimeSpan.FromMilliseconds(-1), TimeSpan.FromMilliseconds(-1));
         oTransportClass1.m_oTimer = oTimer;
         oTimer.Change(TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(-1));
     }
     catch
     {
         WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
     }
 }
Ejemplo n.º 13
0
 private void CheckStatus(TransportClass1 oTransportClass1, TaskResultData oTaskResultData)
 {
     
     switch (oTaskResultData.eStatus)
     {
         case FileStatus.Ok:
             string sFilename = HttpUtility.UrlEncode("output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
             string sPath = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey) + "/output." + FileFormats.ToString(oTransportClass1.m_oInputParams.m_nOutputtype));
             string sDeletePath = HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(oTransportClass1.m_oInputParams.m_sKey));
             
             string sSiteUrl = UrlBuilder.UrlWithoutPath(oTransportClass1.m_oHttpContext.Request);
             
             string strFileUrl = sSiteUrl + Constants.mc_sResourceServiceUrlRel + sPath + "&nocache=true" +"&deletepath=" + sDeletePath + "&filename=" + sFilename;
             WriteOutputCommand(oTransportClass1, new OutputCommand(strFileUrl, "100", true, ErrorTypes.NoError));
             break;
         case FileStatus.WaitQueue:
             if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
                 WriteOutputCommand(oTransportClass1, new OutputCommand("", "0", false, ErrorTypes.NoError));
             else
                 WaitEnd(oTransportClass1);
             break;
         case FileStatus.Convert:
             if (oTransportClass1.m_oInputParams.m_bAsyncConvert)
                 WriteOutputCommand(oTransportClass1, new OutputCommand("", oTaskResultData.nStatusInfo.ToString(), false, ErrorTypes.NoError));
             else
                 WaitEnd(oTransportClass1);
             break;
         
         case FileStatus.Err:
         case FileStatus.ErrToReload:
             AsyncClearCacheOperation oAsyncClearCacheOperation = new AsyncClearCacheOperation();
             TransportClass2 oTransportClass2 = new TransportClass2(oTransportClass1, oAsyncClearCacheOperation, (ErrorTypes)oTaskResultData.nStatusInfo);
             oAsyncClearCacheOperation.ClearCacheBegin(oTransportClass1.m_oInputParams.m_sKey, ClearCacheCallback, oTransportClass2);
             break;
         default:
             WriteOutputCommand(oTransportClass1, new OutputCommand(null, null, null, ErrorTypes.Unknown));
             break;
     }
 }