public dtoCreatedItem FileAddVersion(liteRepositorySettings settings, ModuleRepository module, String filePath, String istance, long idItem, dtoUploadedItem version) { dtoCreatedItem result = null; if (version.IsValid) { RepositoryItem item = Manager.Get <RepositoryItem>(idItem); if (item != null && item.Type != ItemType.Folder) { List <RepositoryItem> repositoryItems = GetFullQuery(item.Repository.Type, item.Repository.IdCommunity).ToList(); dtoFolderTreeItem dFolder = FolderGetSizeInfoByFathers(item.IdFolder, repositoryItems, settings, module, filePath, item.Repository.IdCommunity); if (dFolder != null) { result = FileAddVersion(settings, item, version, dFolder, istance, repositoryItems); } } else { result = new dtoCreatedItem() { ToAdd = version, Error = ItemUploadError.UnableToFindFile } }; } else { result = new dtoCreatedItem() { ToAdd = version, Error = ItemUploadError.UnableToSaveVersion } }; if (result == null && version.IsValid || (result != null && result.IsValid && !result.IsAdded)) { lm.Comol.Core.File.Delete.File(version.SavedFullPath); if (version.HasThumbnail) { lm.Comol.Core.File.Delete.File(version.ThumbnailFullPath); } } return(result); }
public VersionErrors AddVersionToFile(String istanceIdentifier, long idItem, dtoUploadedItem version, String unknownUser, String repositoryPath, RepositoryIdentifier identifier, Boolean allowManage, Boolean allowView, Boolean updateLinks) { VersionErrors error = VersionErrors.unabletoadd; liteRepositoryItem rItem = ItemGet(idItem); ModuleRepository.ObjectType oType = ModuleRepository.ObjectType.File; dtoDisplayRepositoryItem dItem = null; if (rItem != null) { ModuleRepository module = GetPermissions(rItem.Repository, UC.CurrentUserID); Boolean allowCreate = false; Int32 idCommunity = rItem.Repository.IdCommunity; if (rItem.IsInternal) { allowCreate = true; } else { dItem = GetItemWithPermissions(idItem, UC.CurrentUserID, rItem.Repository, unknownUser, allowManage, allowView); if (dItem == null) { error = VersionErrors.unavailableItem; } else { Boolean allowAdd = dItem.Permissions.GetActions().Contains(ItemAction.addVersion); oType = ModuleRepository.GetObjectType(dItem.Type); if (!allowAdd) { error = VersionErrors.nopermission; } else { allowCreate = true; } } } if (allowCreate) { liteRepositorySettings settings = SettingsGetByRepositoryIdentifier(rItem.Repository); ThumbnailsCreate(settings, rItem.UniqueId, version); dtoCreatedItem addedVersion = FileAddVersion(settings, module, repositoryPath, istanceIdentifier, idItem, version); if (addedVersion != null && addedVersion.IsAdded) { if (dItem != null) { dItem.IdVersion = addedVersion.Added.IdVersion; dItem.UniqueIdVersion = addedVersion.Added.UniqueIdVersion; } if (updateLinks) { List <liteModuleLink> links = (from l in GetQuery <liteModuleLink>() where l.DestinationItem.ServiceCode == ModuleRepository.UniqueCode && l.DestinationItem.ObjectLongID == idItem && l.DestinationItem.ObjectIdVersion > 0 select l).ToList(); if (links.Any()) { links.ForEach(l => l.DestinationItem.ObjectIdVersion = addedVersion.Added.IdVersion); Manager.SaveOrUpdateList(links); } } error = VersionErrors.none; } else { error = VersionErrors.unabletoadd; } } } return(error); }
public void AddVersionToFile(String istanceIdentifier, long idItem, dtoUploadedItem version, String unknownUser, String repositoryPath) { if (!SessionTimeout()) { liteRepositoryItem rItem = Service.ItemGet(idItem); Int32 idCommunity = UserContext.CurrentCommunityID; ModuleRepository.ObjectType oType = ModuleRepository.ObjectType.File; ModuleRepository.ActionType uAction = ModuleRepository.ActionType.VersionUnableToAdd; if (rItem != null) { ModuleRepository module = Service.GetPermissions(rItem.Repository, UserContext.CurrentUserID); Boolean reloadItems = false; idCommunity = rItem.Repository.IdCommunity; dtoDisplayRepositoryItem dItem = Service.GetItemWithPermissions(idItem, UserContext.CurrentUserID, rItem.Repository, View.GetUnknownUserName()); if (dItem == null) { View.DisplayUserMessage(UserMessageType.versionItemNoPermission); uAction = ModuleRepository.ActionType.UnknownItemFound; } else { Boolean allowAdd = dItem.Permissions.GetActions().Contains(ItemAction.addVersion); oType = ModuleRepository.GetObjectType(dItem.Type); if (!allowAdd) { View.DisplayUserMessage(UserMessageType.versionItemNoPermission); uAction = ModuleRepository.ActionType.UnavailableItem; } else { liteRepositorySettings settings = Service.SettingsGetByRepositoryIdentifier(rItem.Repository); Service.ThumbnailsCreate(settings, dItem.UniqueId, version); dtoCreatedItem addedVersion = Service.FileAddVersion(settings, module, repositoryPath, istanceIdentifier, idItem, version); reloadItems = (addedVersion != null && addedVersion.IsAdded); uAction = (reloadItems ? ModuleRepository.ActionType.VersionAddedToFile : ModuleRepository.ActionType.VersionUnableToAdd); if (reloadItems) { View.DisplayUserMessage(UserMessageType.versionAdded); dItem.IdVersion = addedVersion.Added.Id; dItem.UniqueIdVersion = addedVersion.Added.UniqueIdVersion; dItem.Thumbnail = addedVersion.Added.Thumbnail; dItem.AutoThumbnail = addedVersion.Added.AutoThumbnail; View.CurrentVersionUpdated(dItem, settings.AutoThumbnailWidth, settings.AutoThumbnailHeight, settings.AutoThumbnailForExtension); String folderName = (dItem.IdFolder == 0 ? View.GetRootFolderFullname() : Service.FolderGetName(dItem.IdFolder)); View.NotifyAddedVersion(Service.GetIdModule(), dItem.IdFolder, folderName, RootObject.RepositoryItems(dItem.Repository.Type, dItem.Repository.IdCommunity, dItem.Id, dItem.IdFolder), addedVersion); } else { View.DisplayUserMessage(UserMessageType.versionNotAdded); } } } if (reloadItems) { LoadVersions(true, dItem, unknownUser, repositoryPath); } } View.SendUserAction(idCommunity, Service.GetIdModule(), uAction, idItem, oType); } }