private static ResultObject RenameFolderInternal(int storageSpaceId, int folderId, string organizationId, string group, string fullPath, string newName) { var result = TaskManager.StartResultTask <ResultObject>("STORAGE_SPACES", "RENAME_FOLDER"); try { if (storageSpaceId < 0) { throw new ArgumentException("Storage Space iD must be greater than 0"); } var storage = GetStorageSpaceById(storageSpaceId); if (storage == null) { throw new Exception(string.Format("Storage space with id={0} not found", storageSpaceId)); } var ss = GetStorageSpaceService(storage.ServiceId); ss.RemoveShare(fullPath); ss.RenameFolder(fullPath, newName); var newPath = Path.Combine(Directory.GetParent(fullPath).ToString(), newName); var shareName = GenerateShareName(organizationId, newName); var share = ShareStorageSpaceFolderInternal(storageSpaceId, newPath, shareName); var folder = GetStorageSpaceFolderById(folderId); StorageSpacesController.UpdateStorageSpaceFolder(storageSpaceId, folderId, organizationId, group, newName, share.UncPath, folder.FsrmQuotaSizeBytes, folder.FsrmQuotaType); } catch (Exception exception) { TaskManager.WriteError(exception); result.AddError("Error during folder rename", exception); } finally { if (!result.IsSuccess) { TaskManager.CompleteResultTask(result); } else { TaskManager.CompleteResultTask(); } } return(result); }