Esempio n. 1
0
        protected virtual void OkClicked(object sender, System.EventArgs e)
        {
            ReplaceResponse response = ReplaceResponse.Abort;
            bool            all      = applyAll.Active;

            if (radioKeep.Active && all)
            {
                response = ReplaceResponse.SkipAll;
            }
            else if (radioKeep.Active)
            {
                response = ReplaceResponse.Skip;
            }
            else if (radioReplace.Active && all)
            {
                response = ReplaceResponse.ReplaceAll;
            }
            else if (radioReplace.Active)
            {
                response = ReplaceResponse.Replace;
            }
            else if (radioNewest.Active && all)
            {
                response = ReplaceResponse.ReplaceOlderAll;
            }
            else if (radioNewest.Active)
            {
                response = ReplaceResponse.ReplaceOlder;
            }
            Respond((int)response);
        }
Esempio n. 2
0
        JsonResult IDriver.Rename(string target, string name)//done didnt tested
        {
            FullPath fullPath = ParsePath(target);
            var      answer   = new ReplaceResponse();

            answer.Removed.Add(target);
            RemoveThumbs(fullPath);
            if (fullPath.Directory != null)
            {
                var oldpathllist   = new List <string>();
                var oldfolderfiles = Directory.GetFiles(fullPath.Directory.FullName, "*", SearchOption.AllDirectories);
                foreach (var oldfiles in oldfolderfiles)
                {
                    oldpathllist.Add(oldfiles);
                }
                string newPath = Path.Combine(fullPath.Directory.Parent.FullName, name);
                System.IO.Directory.Move(fullPath.Directory.FullName, newPath);
                answer.Added.Add(DTOBase.Create(new DirectoryInfo(newPath), fullPath.Root));//when create new folder dont need add to it in index
                var newfolderfiles = Directory.GetFiles(newPath, "*", SearchOption.AllDirectories);
                var newpathllist   = new List <string>();
                foreach (var newfiles in newfolderfiles)
                {
                    newpathllist.Add(newfiles);
                }
                BackgroundJob.Enqueue(() => IndexCRUD.OnRenameResponseFolder(oldpathllist, newpathllist));
            }
            else
            {
                string newPath = Path.Combine(fullPath.File.DirectoryName, name);
                File.Move(fullPath.File.FullName, newPath);
                IndexCRUD.OnRename(fullPath.File.FullName, newPath); //just rename and change create access time etc
                answer.Added.Add(DTOBase.Create(new FileInfo(newPath), fullPath.Root));
            }
            return(Json(answer));
        }
Esempio n. 3
0
        void SetState(ReplaceResponse response)
        {
            switch (response)
            {
            case ReplaceResponse.Replace:
            case ReplaceResponse.ReplaceAll:
                radioNewest.Active = true;
                break;

            case ReplaceResponse.Skip:
            case ReplaceResponse.SkipAll:
                radioKeep.Active = true;
                break;

            case ReplaceResponse.ReplaceOlder:
            case ReplaceResponse.ReplaceOlderAll:
                radioNewest.Active = true;
                break;
            }

            if (response == ReplaceResponse.ReplaceOlderAll || response == ReplaceResponse.SkipAll)
            {
                applyAll.Active = true;
            }
        }
Esempio n. 4
0
        JsonResult IDriver.Rename(string target, string name)
        {
            string     oldTarget = target;
            WebDavRoot lroot     = this.GetRoot(target);

            target = this.GetCorectTarget(target);
            target = this.DecodeTarget(target);
            DirInfo oldDirInfo = client.GetInfo(target);

            if (oldDirInfo == null)
            {
                throw new ElFinderFileNotExists();
            }
            DirInfo parent = this.GetParent(oldDirInfo);

            client.Rename(target, parent.RelPath + name);
            DirInfo newDirInfo = client.GetInfo(parent.RelPath + name);

            if (newDirInfo == null)
            {
                return(Error.Message("Невозможно переименовать файл. Задано некорректное имя."));
            }
            ReplaceResponse answer = new ReplaceResponse();

            answer.Removed.Add(oldTarget);
            answer.Added.Add(DTOBase.Create(newDirInfo, parent, lroot));
            return(Json(answer));
        }
Esempio n. 5
0
        JsonResult IDriver.Paste(string source, string dest, IEnumerable <string> targets, bool isCut)
        {
            FullPath        destPath = ParsePath(dest);
            ReplaceResponse response = new ReplaceResponse();

            foreach (var item in targets)
            {
                FullPath src = ParsePath(item);
                if (src.Directory != null)
                {
                    DirectoryInfo newDir = new DirectoryInfo(Path.Combine(destPath.Directory.FullName, src.Directory.Name));
                    if (newDir.Exists)
                    {
                        Directory.Delete(newDir.FullName, true);
                    }
                    if (isCut)
                    {
                        RemoveThumbs(src);
                        src.Directory.MoveTo(newDir.FullName);
                        response.Removed.Add(item);
                    }
                    else
                    {
                        DirectoryCopy(src.Directory, newDir.FullName, true);
                    }
                    response.Added.Add(DTOBase.Create(newDir, destPath.Root));
                }
                else
                {
                    string newFilePath = Path.Combine(destPath.Directory.FullName, src.File.Name);
                    if (File.Exists(newFilePath))
                    {
                        File.Delete(newFilePath);
                    }
                    if (isCut)
                    {
                        RemoveThumbs(src);
                        src.File.MoveTo(newFilePath);
                        response.Removed.Add(item);
                    }
                    else
                    {
                        File.Copy(src.File.FullName, newFilePath);
                    }
                    response.Added.Add(DTOBase.Create(new FileInfo(newFilePath), destPath.Root));
                }
            }
            return(Json(response));
        }
Esempio n. 6
0
        public FileReplaceDialog(ReplaceResponse preSelect, string sourceName, string sourceModified, string targetName, string targetModified)
        {
            this.Build();

            //WORKAROUND: Stetic doesn't yet support setting mnemonics in markup so had to handle it here
            replaceLabel.MarkupWithMnemonic = GettextCatalog.GetString("<b>_Replace with source file</b>");
            keepLabel.MarkupWithMnemonic    = GettextCatalog.GetString("<b>_Keep existing target file</b>");
            newestLabel.MarkupWithMnemonic  = GettextCatalog.GetString("<b>Use the _newest file</b>");

            this.sourceName.Text     = sourceName;
            this.sourceModified.Text = sourceModified;
            this.targetName.Text     = targetName;
            this.targetModified.Text = targetModified;

            SetState(preSelect);
            okButton.GrabFocus();

            this.Resize(1, 1);              // make window as small as widgets allow
        }
		public FileReplaceDialog (ReplaceResponse preSelect, string sourceName, string sourceModified, string targetName, string targetModified)
		{
			this.Build();
			
			//WORKAROUND: Stetic doesn't yet support setting mnemonics in markup so had to handle it here
			replaceLabel.MarkupWithMnemonic = GettextCatalog.GetString ("<b>_Replace with source file</b>");
			keepLabel.MarkupWithMnemonic = GettextCatalog.GetString ("<b>_Keep existing target file</b>");
			newestLabel.MarkupWithMnemonic = GettextCatalog.GetString ("<b>Use the _newest file</b>");
			
			this.sourceName.Text = sourceName;
			this.sourceModified.Text = sourceModified;
			this.targetName.Text = targetName;
			this.targetModified.Text = targetModified;
			
			SetState (preSelect);
			okButton.GrabFocus ();
			
			this.Resize (1, 1); // make window as small as widgets allow
		}
Esempio n. 8
0
        JsonResult IDriver.Rename(string target, string name)
        {
            var fullPath = ParsePath(target);
            var answer   = new ReplaceResponse();

            answer.Removed.Add(target);
            if (fullPath.Directory != null)
            {
                var folder = ResourceManager.Instance.GetFolder(fullPath.Directory.ResourceId);
                ResourceManager.Instance.RenameResource(folder, name);
                answer.Added.Add(DTOBase.Create(folder, fullPath.Root));
            }
            else
            {
                var file = ResourceManager.Instance.GetFile(fullPath.File.ResourceId);
                ResourceManager.Instance.RenameResource(file, name);
                answer.Added.Add(DTOBase.Create(new ResourceFile(), fullPath.Root));
            }
            return(Json(answer));
        }
		void SetState (ReplaceResponse response)
		{
			switch (response) {
			case ReplaceResponse.Replace:
			case ReplaceResponse.ReplaceAll:
				radioNewest.Active = true;
				break;
			case ReplaceResponse.Skip:
			case ReplaceResponse.SkipAll:
				radioKeep.Active = true;
				break;
			case ReplaceResponse.ReplaceOlder:
			case ReplaceResponse.ReplaceOlderAll:
				radioNewest.Active = true;
				break;
			}
			
			if (response == ReplaceResponse.ReplaceOlderAll || response == ReplaceResponse.SkipAll)
				applyAll.Active = true;
		}
Esempio n. 10
0
        JsonResult IDriver.Rename(string target, string name)
        {
            FullPath fullPath = ParsePath(target);
            var      answer   = new ReplaceResponse();

            answer.Removed.Add(target);
            if (fullPath.Directory != null)
            {
                fullPath.Directory.MoveTo(Path.Combine(fullPath.Directory.Parent.FullName, name));
                var newDir = new DirectoryInfo(Path.Combine(fullPath.Directory.Parent.FullName, name));
                answer.Added.Add(DTOBase.Create(newDir, fullPath.Root));
            }
            else
            {
                fullPath.File.MoveTo(Path.Combine(fullPath.File.Directory.FullName, name));
                var newFile = new FileInfo(Path.Combine(fullPath.File.Directory.FullName, name));
                answer.Added.Add(DTOBase.Create(newFile, fullPath.Root));
            }
            return(Json(answer));
        }
Esempio n. 11
0
        public JsonResult Rename(string target, string name)
        {
            FullPath fullPath = ParsePath(target);
            var      answer   = new ReplaceResponse();

            answer.Removed.Add(target);
            RemoveThumbs(fullPath);
            if (fullPath.Directory != null)
            {
                string newPath = Path.Combine(fullPath.Directory.Parent.FullName, name);
                Directory.Move(fullPath.Directory.FullName, newPath);
                answer.Added.Add(DTOBase.Create(new DirectoryInfo(newPath), fullPath.Root));
            }
            else
            {
                string newPath = Path.Combine(fullPath.File.DirectoryName, name);
                File.Move(fullPath.File.FullName, newPath);
                answer.Added.Add(DTOBase.Create(new FileInfo(newPath), fullPath.Root));
            }
            return(Json(answer));
        }
Esempio n. 12
0
        public JsonResult Rename(string target, string name)
        {
            if (!string.IsNullOrEmpty(target))
            {
                var path = Helper.DecodePath(target).Replace("\\", "/").Replace(@"\", "/").Replace("//", "/");
                if (string.IsNullOrEmpty(Path.GetExtension(path)))
                {
                    throw new NotImplementedException("Cannot found process rename folder.");
                }
                var index    = path.LastIndexOf('/');
                var folder   = string.Empty;
                var fileName = string.Empty;
                if (index > -1)
                {
                    folder   = path.Substring(0, index);
                    fileName = path.Replace(folder, string.Empty);
                }

                var answer = new ReplaceResponse();
                mediaService.RenameFile(folder, fileName, name);

                answer.Removed.Add(target);
                var relativePath = storageProvider.Combine(folder, name);
                var file         = storageProvider.GetFile(relativePath);
                var mediaFile    = new MediaFile
                {
                    Name        = name,
                    Size        = file.GetSize(),
                    LastUpdated = file.GetLastUpdated(),
                    Type        = file.GetFileType(),
                    FolderName  = folder,
                    MediaPath   = mediaService.GetMediaPublicUrl(folder, name)
                };
                answer.Added.Add(CreateDto(mediaFile));

                return(Json(answer));
            }

            throw new NotImplementedException();
        }
Esempio n. 13
0
        JsonResult IDriver.Paste(string source, string dest, IEnumerable <string> targets, bool isCut, IList <int> dublicateIndexes = null)
        {
            ReplaceResponse response      = new ReplaceResponse();
            string          destDecrypted = this.DecodeTarget(this.GetCorectTarget(dest));
            DirInfo         destInfo      = client.GetInfo(destDecrypted);
            int             ind           = 0;

            foreach (string target in targets)
            {
                WebDavRoot lroot           = this.GetRoot(dest);
                string     targetDecrypted = this.DecodeTarget(this.GetCorectTarget(target));
                DirInfo    targetInfo      = client.GetInfo(targetDecrypted);
                if (targetInfo == null)
                {
                    throw new ElFinderFileNotExists();
                }
                if (isCut)
                {
                    response.Removed.Add(this.GetCorectTarget(target));
                    client.Move(targetDecrypted, destDecrypted + targetInfo.DisplayName);
                    targetInfo = client.GetInfo(destInfo.RelPath + targetInfo.DisplayName);
                    response.Added.Add(DTOBase.Create(targetInfo, destInfo, lroot));
                }
                else
                {
                    string destinationFileName = dublicateIndexes != null && dublicateIndexes.Contains(ind)
                        ? GetCorrectDestinationFileName(destInfo.RelPath + targetInfo.DisplayName)
                        : destInfo.RelPath + targetInfo.DisplayName;

                    client.Copy(targetDecrypted, destinationFileName);
                    targetInfo = client.GetInfo(destinationFileName);
                    DirInfo parent = this.GetParent(targetInfo);
                    response.Added.Add(DTOBase.Create(targetInfo, parent, lroot));
                }
                ind++;
            }

            return(Json(response));
        }
Esempio n. 14
0
        JsonResult IDriver.Paste(string source, string dest, IEnumerable <string> targets, bool isCut)
        {
            var destPath = ParsePath(dest);
            var response = new ReplaceResponse();

            foreach (var item in targets)
            {
                var src = ParsePath(item);
                if (src.Directory != null)
                {
                    if (isCut)
                    {
                        ResourceManager.Instance.MoveFolder(src.Directory, destPath.Directory);
                        response.Removed.Add(item);
                    }
                    else
                    {
                        DirectoryCopy(src.Directory, destPath.Directory, item, true);
                    }
                    response.Added.Add(DTOBase.Create(destPath.Directory, destPath.Root));
                }
                else
                {
                    ResourceFile newFile;
                    if (isCut)
                    {
                        newFile = ResourceManager.Instance.MoveFile(src.File, destPath.Directory);
                        response.Removed.Add(item);
                    }
                    else
                    {
                        newFile = ResourceManager.Instance.CopyFile(src.File, destPath.Directory);
                    }
                    response.Added.Add(DTOBase.Create(newFile, destPath.Root));
                }
            }
            return(Json(response));
        }
Esempio n. 15
0
        JsonResult IDriver.Paste(string source, string dest, IEnumerable <string> targets, bool isCut)//todo:gonna look at that later !!!!!!!!!!!
        {
            FullPath        destPath = ParsePath(dest);
            ReplaceResponse response = new ReplaceResponse();

            foreach (var item in targets)
            {
                FullPath src         = ParsePath(item);
                string   oldpathname = null;
                if (src.Directory == null)
                {
                    oldpathname = src.File.FullName;
                }
                if (src.Directory != null)
                {
                    DirectoryInfo newDir = new DirectoryInfo(Path.Combine(destPath.Directory.FullName, src.Directory.Name));

                    if (newDir.Exists)
                    {
                        var filesindirdest = Directory.GetFiles(newDir.FullName, "*", SearchOption.AllDirectories);
                        Directory.Delete(newDir.FullName, true);
                        foreach (var fileindirdest in filesindirdest)
                        {
                            IndexCRUD.DeleteLuceneIndex(fileindirdest);
                        }
                    }
                    if (isCut)
                    {
                        RemoveThumbs(src);

                        var filesindirsrc = Directory.GetFiles(src.Directory.FullName, "*", SearchOption.AllDirectories);
                        src.Directory.MoveTo(newDir.FullName);
                        var filesindirdestnew = Directory.GetFiles(newDir.FullName, "*", SearchOption.AllDirectories);


                        for (int i = 0; i < filesindirsrc.Count(); i++)
                        {
                            IndexCRUD.OnMove(filesindirdestnew[i], filesindirsrc[i], isCut);
                        }


                        response.Removed.Add(item);
                    }
                    else
                    {
                        var filesindirsrc = Directory.GetFiles(src.Directory.FullName, "*", SearchOption.AllDirectories);
                        DirectoryCopy(src.Directory, newDir.FullName, true);
                        var filesindirdestnew = Directory.GetFiles(newDir.FullName, "*", SearchOption.AllDirectories);



                        for (int i = 0; i < filesindirsrc.Count(); i++)
                        {
                            IndexCRUD.OnMove(filesindirdestnew[i], filesindirsrc[i], isCut);
                        }
                    }
                    response.Added.Add(DTOBase.Create(newDir, destPath.Root));
                }
                else
                {
                    string newFilePath = Path.Combine(destPath.Directory.FullName, Path.GetFileName(oldpathname));
                    if (File.Exists(newFilePath))
                    {
                        //if(LuceneIndexController.CalculateMD5(newFilePath)==LuceneIndexController.CalculateMD5(src.File.FullName))
                        //{
                        File.Delete(newFilePath);
                        IndexCRUD.DeleteLuceneIndex(newFilePath);
                    }

                    if (isCut)
                    {
                        RemoveThumbs(src);
                        src.File.MoveTo(newFilePath);
                        IndexCRUD.OnMove(newFilePath, oldpathname, isCut);
                        response.Removed.Add(item);
                    }
                    else
                    {
                        File.Copy(src.File.FullName, newFilePath);
                        IndexCRUD.OnMove(newFilePath, oldpathname, isCut);
                    }
                    response.Added.Add(DTOBase.Create(new FileInfo(newFilePath), destPath.Root));
                }
            }
            return(Json(response));
        }
Esempio n. 16
0
 public void Init()
 {
     instance = new ReplaceResponse();
 }