public JsonNetResult UploadDropped() { string prefix = Request.Headers["X-Prefix"]; RuntimeInfo info = RuntimeInfo.FromFormValue((string)Request.Headers["X-" + TypeContextUtilities.Compose(prefix, EntityBaseKeys.RuntimeInfo)]); string fileName = Request.Headers["X-FileName"]; byte[] bytes = Request.InputStream.ReadAllBytes(); string fileType = (string)Request.Headers["X-" + FileLineKeys.FileType]; string calculatedDirectory = (string)Request.Headers["X-" + FileLineKeys.CalculatedDirectory]; IFile file = FilesClient.ConstructFile(info.EntityType, new UploadedFileData { FileName = fileName, Content = bytes, FileType = fileType, CalculatedDirectory = calculatedDirectory }); RuntimeInfo ri = file is EmbeddedEntity ? new RuntimeInfo((EmbeddedEntity)file) : new RuntimeInfo((IEntity)file); return(this.JsonNet(new { file.FileName, FullWebPath = FilesClient.GetDownloadUrl(file), RuntimeInfo = ri.ToString(), EntityState = info.EntityType.IsEmbeddedEntity() ? Navigator.Manager.SerializeEntity((EmbeddedEntity)file) : null, })); }
public ActionResult Download(string file) { if (file == null) { throw new ArgumentException("file"); } RuntimeInfo ri = RuntimeInfo.FromFormValue(file); return(FilesClient.DownloadFileResult(ri)); }
private static QueryTokenEmbedded ParseQueryToken(string tokenString, string queryRuntimeInfoInput) { if (tokenString.IsNullOrEmpty()) { return(null); } var queryRuntimeInfo = RuntimeInfo.FromFormValue(queryRuntimeInfoInput); var queryName = QueryLogic.ToQueryName(((Lite <QueryEntity>)queryRuntimeInfo.ToLite()).InDB(q => q.Key)); QueryDescription qd = DynamicQueryManager.Current.QueryDescription(queryName); return(new QueryTokenEmbedded(QueryUtils.Parse(tokenString, qd, SubTokensOptions.CanElement))); }
public static void RegisterAvoidValidate() { ValidateInputAttribute doNotValidateInputAttribute = new ValidateInputAttribute(false); Controller <ValidatorController>() .Action(c => c.Validate(null, null)) .AddFilters(ctx => { var form = ctx.ControllerContext.HttpContext.Request.Form; var prefix = form["prefix"]; RuntimeInfo ri = RuntimeInfo.FromFormValue(form[TypeContextUtilities.Compose(prefix, EntityBaseKeys.RuntimeInfo)]); if (AvoidValidate(ri.EntityType)) { return(doNotValidateInputAttribute); } if (form.AllKeys.Contains(EntityBaseKeys.RuntimeInfo)) { RuntimeInfo riBase = RuntimeInfo.FromFormValue(form[EntityBaseKeys.RuntimeInfo]); if (AvoidValidate(riBase.EntityType)) { return(doNotValidateInputAttribute); } } return(null); }); Controller <OperationController>() .Action(c => c.Execute()) .AddFilters(ctx => { var form = ctx.ControllerContext.HttpContext.Request; var prefix = form["prefix"]; RuntimeInfo ri = RuntimeInfo.FromFormValue(form[TypeContextUtilities.Compose(prefix, EntityBaseKeys.RuntimeInfo)]); if (AvoidValidate(ri.EntityType)) { return(doNotValidateInputAttribute); } return(null); }); }
public ActionResult Upload() { string singleFile = Request.Files.Cast <string>().Single(); string prefix = singleFile.Substring(0, singleFile.IndexOf(FileLineKeys.File) - 1); RuntimeInfo info = RuntimeInfo.FromFormValue((string)Request.Form[TypeContextUtilities.Compose(prefix, EntityBaseKeys.RuntimeInfo)]); HttpPostedFileBase hpf = Request.Files[singleFile] as HttpPostedFileBase; string fileName = Path.GetFileName(hpf.FileName); byte[] bytes = hpf.InputStream.ReadAllBytes(); string fileType = (string)Request.Form[TypeContextUtilities.Compose(prefix, FileLineKeys.FileType)]; string extraData = (string)Request.Form[TypeContextUtilities.Compose(prefix, FileLineKeys.CalculatedDirectory)]; IFile file = FilesClient.ConstructFile(info.EntityType, new UploadedFileData { FileName = fileName, Content = bytes, FileType = fileType, CalculatedDirectory = extraData }); StringBuilder sb = new StringBuilder(); //Use plain javascript not to have to add also the reference to jquery in the result iframe sb.AppendLine("<html><head><title>-</title></head><body>"); sb.AppendLine("<script type='text/javascript'>"); RuntimeInfo ri = file is EmbeddedEntity ? new RuntimeInfo((EmbeddedEntity)file) : new RuntimeInfo((IEntity)file); sb.AppendLine("window.parent.$.data(window.parent.document.getElementById('{0}'), 'SF-control').onUploaded('{1}', '{2}', '{3}', '{4}')".FormatWith( prefix, file.FileName, FilesClient.GetDownloadUrl(file), ri.ToString(), info.EntityType.IsEmbeddedEntity() ? Navigator.Manager.SerializeEntity((EmbeddedEntity)file) : null)); sb.AppendLine("</script>"); sb.AppendLine("</body></html>"); return(Content(sb.ToString())); }