Exemplo n.º 1
0
        /// <summary>
        /// Writes the result directly into the response stream, e.g. for a classic ASP.NET response
        /// </summary>
        /// <param name="response">A standard HttpResponse object</param>
        /// <param name="result">An IBackloadResult object</param>
        public static void Write(HttpResponse response, IBackloadResult result)
        {
            response.StatusCode = (int)result.HttpStatusCode;
            if ((int)result.HttpStatusCode < 300)
            {
                // Write result to the response (Json or file data, default: Json response)
                if (result.RequestType == RequestType.Default)
                {
                    // Json response (We use the systems JavaScriptSerializer, you can also use Newtonsoft.Json)
                    IFileStatusResult status = (IFileStatusResult)result;
                    var serializer           = new System.Web.Script.Serialization.JavaScriptSerializer();

                    if ((status.ClientStatus != null) && (result.Exception == null))
                    {
                        response.Write(serializer.Serialize(status.ClientStatus));
                    }
                }
                else
                {
                    // file data (byte array) response
                    IFileDataResult data = (IFileDataResult)result;

                    if ((data.FileData != null) && (result.Exception == null))
                    {
                        response.BinaryWrite(data.FileData);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the Json output for the files handled in this request
        /// </summary>
        /// <param name="result">A IFileStatusResult object with client plugin specfic data.</param>
        /// <returns>JsonResult instance or a http HttpStatusCodeResult to send an http status</returns>
        public static ActionResult Create(IFileStatusResult result)
        {
            // Create Json result from the returned client plugin specific file metadata.
            if ((result.ClientStatus != null) && (result.Exception == null))
                return new JsonResult()
                {
                    Data = result.ClientStatus,
                    ContentType = result.ContentType,
                    ContentEncoding = System.Text.Encoding.UTF8,
                    MaxJsonLength = Int32.MaxValue,
                    RecursionLimit = null,
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };


            // A HttpStatusCodeResult result is returned on errors or if files not have been modified (304)
            return new HttpStatusCodeResult(result.HttpStatusCode);
        }
Exemplo n.º 3
0
        // DELETE api/<controller>?fileName=[name]
        public async Task <IClientPluginResultCore> Delete(string fileName)
        {
            try
            {
                IFileHandler handler = GetHandler();

                // Call the DELETE execution method and get the result
                IFileStatus status = await handler.Services.DELETE.Execute();

                // Create plugin specific result
                IFileStatusResult result = handler.Services.Core.CreatePluginResult();

                // return Json
                return(result.ClientStatus);
            }
            catch
            {
                HttpContext.Current.Response.StatusCode = 500;
            }
            return(null);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Creates the Json output for the files handled in this request
        /// </summary>
        /// <param name="result">A IFileStatusResult object with client plugin specfic data.</param>
        /// <returns>JsonResult instance or a http HttpStatusCodeResult to send an http status</returns>
        public static ActionResult Create(IFileStatusResult result)
        {
            // Create Json result from the returned client plugin specific file metadata.
            if ((result.ClientStatus != null) && (result.Exception == null))
            {
                return new JsonResult()
                       {
                           Data                = result.ClientStatus,
                           ContentType         = result.ContentType,
                           ContentEncoding     = System.Text.Encoding.UTF8,
                           MaxJsonLength       = Int32.MaxValue,
                           RecursionLimit      = null,
                           JsonRequestBehavior = JsonRequestBehavior.AllowGet
                       }
            }
            ;


            // A HttpStatusCodeResult result is returned on errors or if files not have been modified (304)
            return(new HttpStatusCodeResult(result.HttpStatusCode));
        }