public ActionResult FileActionThumbnailCompress(FileExplorerParams args)
        {
            try
            {
                FileExplorerOperations opeartion = new FileExplorerOperations();
                if (args.ActionType != "Paste" && args.ActionType != "GetDetails")
                {
                    var FilePath = opeartion.GetPhysicalPath(opeartion.ToAbsolute(args.Path));
                    if (!FilePath.ToLower().Contains("fileexplorercontent"))
                    {
                        throw new ArgumentException("'" + FilePath + "' is not accessible. Access is denied.");
                    }
                }
                switch (args.ActionType)
                {
                case "Read":
                    return(Json(opeartion.Read(args.Path, args.ExtensionsAllow)));

                //case "CreateFolder":
                //    return Json(opeartion.CreateFolder(args.Path, args.Name));
                //case "Paste":
                //    return Json(opeartion.Paste(args.LocationFrom, args.LocationTo, args.Names, args.Action, args.CommonFiles));
                //case "Remove":
                //    return Json(opeartion.Remove(args.Names, args.Path));
                //case "Rename":
                //    return Json(opeartion.Rename(args.Path, args.Name, args.NewName, args.CommonFiles));
                case "GetDetails":
                    return(Json(opeartion.GetDetails(args.Path, args.Names)));

                case "Download":
                    opeartion.Download(args.Path, args.Names);
                    break;

                //case "Upload":
                //    opeartion.Upload(args.FileUpload, args.Path);
                //    break;
                case "Search":
                    return(Json(opeartion.Search(args.Path, args.ExtensionsAllow, args.SearchString, args.CaseSensitive)));

                case "GetImage":
                    //Helps to reduce thumbnail image size before loading it into FileExplorer
                    opeartion.GetImage(args.Path, args.CanCompress);
                    break;

                //provide restriction to modify data in our online samples
                default:
                    return(new HttpStatusCodeResult(403, "Restricted to modify data in online demo."));
                }
                return(Json(""));
            }
            catch (Exception e)
            {
                FileExplorerResponse Response = new FileExplorerResponse();
                Response.error = e.GetType().FullName + ", " + e.Message;
                return(Json(Response));
            }
        }
示例#2
0
        public virtual ActionResult FileAction(FileExplorerParams args)
        {
            try
            {
                EventPublisher.Publish(new FileExplorerActionEvent(args));

                var operation = new FileExplorerOperations();
                switch (args.ActionType)
                {
                case "Read":
                    return(Json(operation.Read(args.Path, args.ExtensionsAllow), JsonRequestBehavior.AllowGet));

                case "CreateFolder":
                    return(Json(operation.CreateFolder(args.Path, args.Name), JsonRequestBehavior.AllowGet));

                case "Paste":
                    return(Json(operation.Paste(args.LocationFrom, args.LocationTo, args.Names, args.Action, args.CommonFiles), JsonRequestBehavior.AllowGet));

                case "Remove":
                    return(Json(operation.Remove(args.Names, args.Path), JsonRequestBehavior.AllowGet));

                case "Rename":
                    return(Json(operation.Rename(args.Path, args.Name, args.NewName, args.CommonFiles), JsonRequestBehavior.AllowGet));

                case "GetDetails":
                    return(Json(operation.GetDetails(args.Path, args.Names), JsonRequestBehavior.AllowGet));

                case "Download":
                    operation.Download(args.Path, args.Names);
                    break;

                case "Upload":
                    operation.Upload(args.FileUpload, args.Path);
                    break;

                case "Search":
                    return(Json(operation.Search(args.Path, args.ExtensionsAllow, args.SearchString, args.CaseSensitive), JsonRequestBehavior.AllowGet));

                case "GetImage":
                    operation.GetImage(args.Path, args.CanCompress, args.ImageSize, args.SelectedItems);
                    break;
                }
                return(Json("", JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                var response = new FileExplorerResponse {
                    error = e.GetType().FullName + ", " + e.Message
                };
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
        }
        public static object FileActionDefault(string ActionType, string Path, string ExtensionsAllow, string LocationFrom, string LocationTo, string Name, string[] Names, string NewName, string Action, bool CaseSensitive, string SearchString, IEnumerable <CommonFileDetails> CommonFiles)
        {
            try
            {
                FileExplorerOperations opeartion = new FileExplorerOperations();
                if (ActionType != "Paste" && ActionType != "GetDetails")
                {
                    var FilePath = opeartion.GetPhysicalPath(opeartion.ToAbsolute(Path));
                    if (!FilePath.ToLower().Contains("filecontent"))
                    {
                        throw new ArgumentException("'" + FilePath + "' is not accessible. Access is denied.");
                    }
                }
                AccessControl        Rule      = new AccessControl();
                FileAccessOperations operation = new FileAccessOperations(Rule.GetRules());
                switch (ActionType)
                {
                case "Read":
                    return(operation.Read(Path, ExtensionsAllow));

                //case "CreateFolder":
                //    return (operation.CreateFolder(Path, Name));
                //case "Paste":
                //    operation.Paste(LocationFrom, LocationTo, Names, Action, CommonFiles);
                //    break;
                //case "Remove":
                //    operation.Remove(Names, Path);
                //    break;
                //case "Rename":
                //    operation.Rename(Path, Name, NewName, CommonFiles);
                //    break;
                case "GetDetails":
                    return(operation.GetDetails(Path, Names));

                case "Search":
                    return(operation.Search(Path, ExtensionsAllow, SearchString, CaseSensitive));

                //provide restriction to modify data in our online samples
                default:
                    throw new Exception("Restricted to modify data in online demo.");
                }
                //return "";
            }
            catch (Exception e)
            {
                FileExplorerResponse Response = new FileExplorerResponse();
                Response.error = e.GetType().FullName + ", " + e.Message;
                return(Response);
            }
        }
示例#4
0
        public async Task <FileExplorerResponse> GetDetailsAsync(string path, string[] names, IEnumerable <object> selectedItems = null)
        {
            FileExplorerResponse DetailsResponse = new FileExplorerResponse();

            try
            {
                bool          isFile      = false;
                FileDetails[] fDetails    = new FileDetails[names.Length];
                FileDetails   fileDetails = new FileDetails();
                if (selectedItems != null)
                {
                    foreach (var Fileitem in selectedItems)
                    {
                        Newtonsoft.Json.Linq.JToken myObject = Newtonsoft.Json.JsonConvert.DeserializeObject <Newtonsoft.Json.Linq.JToken>(Fileitem.ToString());
                        AzureFileDirectoryContent   s_item   = myObject.ToObject <AzureFileDirectoryContent>();
                        isFile = s_item.isFile;
                        break;
                    }
                }
                if (isFile)
                {
                    CloudBlockBlob blockBlob = container.GetBlockBlobReference(path + names[0]);
                    await blockBlob.FetchAttributesAsync();

                    fileDetails.Name     = blockBlob.Name;
                    fileDetails.Type     = blockBlob.Name.Split('.')[1];
                    fileDetails.Location = blockBlob.Uri.ToString();
                    fileDetails.Size     = blockBlob.Properties.Length;
                    fileDetails.Modified = blockBlob.Properties.LastModified.Value.LocalDateTime.ToString();
                }
                else
                {
                    CloudBlobDirectory sampleDirectory = container.GetDirectoryReference(path);
                    fileDetails.Name     = names[0];
                    fileDetails.Location = sampleDirectory.Uri.ToString() + "/" + names[0];
                    fileDetails.Type     = "File Folder";
                    fileDetails.Modified = sampleDirectory.Container.Properties.LastModified.ToString();
                }
                fDetails[0]             = fileDetails;
                DetailsResponse.details = fDetails;

                return(await Task.Run(() =>
                {
                    return DetailsResponse;
                }));
            }
            catch (Exception ex) { throw ex; }
        }
示例#5
0
        public ActionResult FileActionDefault([FromBody] FileExplorerParams args)
        {
            try
            {
                if (args.ActionType != "Paste" && args.ActionType != "GetDetails")
                {
                    var FilePath = operation.GetPhysicalPath(args.Path);
                    if (!FilePath.ToLower().Contains("fileexplorercontent"))
                    {
                        throw new ArgumentException(FilePath + "is not accessible. Access is denied.");
                    }
                }

                switch (args.ActionType)
                {
                case "Read":
                    return(Json(operation.Read(args.Path, args.ExtensionsAllow)));

                //case "CreateFolder":
                //    return Json(operation.CreateFolder(args.Path, args.Name));
                //case "Paste":
                //    return Json(operation.Paste(args.LocationFrom, args.LocationTo, args.Names, args.Action, args.CommonFiles));
                //case "Remove":
                //    return Json(operation.Remove(args.Names, args.Path, args.SelectedItems));
                //case "Rename":
                //    return Json(operation.Rename(args.Path, args.Name, args.NewName, args.CommonFiles));
                case "GetDetails":
                    return(Json(operation.GetDetails(args.Path, args.Names)));

                case "Search":
                    return(Json(operation.Search(args.Path, args.ExtensionsAllow, args.SearchString, args.CaseSensitive)));

                //provide restriction to modify data in our online samples
                default:
                    throw new Exception("Restricted to modify data in this demo");
                }
                return(Json(""));
            }
            catch (Exception e)
            {
                FileExplorerResponse Response = new FileExplorerResponse();
                Response.error = e.GetType().FullName + ", " + e.Message;
                return(Json(Response));
            }
        }