/// <summary> /// /// </summary> /// <param name="repository"></param> /// <param name="queryText">The query text is the name of view. Composite of "DesignName/ViewName" </param> /// <param name="commandType"></param> /// <param name="parameters"></param> /// <returns></returns> public IEnumerable <IDictionary <string, object> > ExecuteQuery(Models.Repository repository, string queryText, System.Data.CommandType commandType = System.Data.CommandType.Text, params KeyValuePair <string, object>[] parameters) { if (string.IsNullOrEmpty(queryText)) { throw new Exception("Parameter:queryText is Null Or Empty."); } string[] paras = queryText.Split('/'); if (paras.Length != 2) { throw new Exception("Parameter:queryText format is error."); } var client = repository.GetClient(); var view = client.GetView(paras[0], paras[1]); List <Dictionary <string, object> > ret = new List <Dictionary <string, object> >(); foreach (var row in view) { var dict = row.Info["value"] as Dictionary <string, object>; ret.Add(dict); } return(ret); }
public override void Initialize(Models.Repository repository) { //create bucket var bucketName = repository.GetBucketName(); if (!DatabaseHelper.ExistBucket(bucketName)) { var cf = DatabaseHelper.GetCouchbaseClientConfiguration(); Bucket bucket = new Bucket(); bucket.Name = bucketName; bucket.AuthType = AuthTypes.Sasl; bucket.BucketType = BucketTypes.Membase; bucket.Quota = new Quota() { RAM = DatabaseSettings.Instance.BucketRAM }; //RamQuotaMB must be at least 100 bucket.FlushOption = FlushOptions.Enabled; //支持清空 bucket.ReplicaNumber = (ReplicaNumbers)DatabaseSettings.Instance.ReplicaNumber; bucket.ReplicaIndex = DatabaseSettings.Instance.ReplicaIndex; DatabaseHelper.CreateBucket(bucket); //此处需暂停几秒钟,否则,通过选择模板创建站点的方式,在导入数据时,会出现数据未导入的情况 //大致原因在于,Couchbae在数据库创建之后,需要几秒钟的初始化过程,在这个过程中插入任何数据都将失败 System.Threading.Thread.Sleep(3000); } //always recreate the default view repository.CreateDefaultViews(); base.Initialize(repository); }
public Models.Repository GetIncomingChanges(Models.Repository repository) { try { NGit.Api.Git git = NGit.Api.Git.Open(repository.Path); Repository repo = git.GetRepository(); repo.GetIndexFile(); //Repository repo = new FileRepository(new Sharpen.FilePath(path)); //NGit.Api.Git git = new NGit.Api.Git(repo); //TODO: Find out how git works really, and fix this. FetchCommand fc = git.Fetch(); FetchResult fr = fc.Call(); LogCommand lc = git.Log(); Iterable <RevCommit> lr = lc.Call(); if (git != null && repo != null && fr != null && lr != null) { List <Watchtower.Models.Changeset> commits = new List <Watchtower.Models.Changeset>(); foreach (RevCommit rc in lr) { //TODO: Find out if these values are right. Watchtower.Models.Changeset c = new Watchtower.Models.Changeset(rc.GetParent(0).GetHashCode().ToString(), rc.GetHashCode().ToString(), rc.GetCommitterIdent().GetEmailAddress(), rc.GetCommitterIdent().GetWhen(), rc.GetCommitterIdent().GetName(), rc.GetFullMessage()); commits.Add(c); } repository.IncomingChangesets = commits; } } catch { } return(repository); }
public void Update(Models.Repository @new, Models.Repository old) { inner.Update(@new, old); var cacheKey = GetCacheKey(@new); @new.ObjectCache().Remove(cacheKey); }
public override NCMIS.ObjectModel.MetaData.TypeDefinition GetTypeDefinition(string repositoryId, string typeId) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var schema = ServiceFactory.SchemaManager.All(repository, "").Where(it => string.Compare(it.Name, typeId, true) == 0).FirstOrDefault(); if (schema != null) { return(new TypeDocumentDefinition() { BaseId = BaseObjectTypeId.CmisDocument, ControllableAcl = false, ControllablePolicy = false, Creatable = true, Description = schema.Name, DisplayName = schema.Name, Fileable = false, FulltextIndexed = false, Id = schema.Name, IncludedInSupertypeQuery = false, LocalName = schema.Name, LocalNamespace = typeof(Schema).ToString(), ParentId = "", Queryable = true, QueryName = "Schema", PropertyDefinitions = schema.AsActual().Columns.Select(c => ColumnDefinition(c)).ToArray() }); } return(null); }
// POST api/<controller> // // Add user to the database // public HttpResponseMessage Post([FromBody] JsonUser value) { if (value == null) { Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid user information"); } Models.Repository repository = new Models.Repository(); Facebook.FacebookUser fbUser = new Facebook.FacebookUser { id = value.UserId, email = value.Email, first_name = value.FirstName, last_name = value.LastName, name = value.Name }; var mfUser = repository.CreateUser(fbUser); repository.SaveChanges(); List <GroupMember> membership = repository.UserMembership(mfUser); if ((membership == null) || (membership.Count == 0)) { Group defaultGroup = repository.FindGroupByCode("JYMF"); repository.DefaultGroup(mfUser, defaultGroup, GroupRoleEnum.member); repository.SaveChanges(); } return(Request.CreateResponse(HttpStatusCode.Created, "User added to application")); }
public override void Import(Models.Repository repository, System.IO.Stream zipStream, bool @override) { List <string> schemaNames = new List <string>(); Dictionary <string, Schema> oldSchemas = new Dictionary <string, Schema>(); using (var zipFile = ZipFile.Read(zipStream)) { foreach (var entry in zipFile.Entries) { if (entry.FileName.IndexOf('/') == entry.FileName.Length - 1) { var schemaName = entry.FileName.Substring(0, entry.FileName.Length - 1); schemaNames.Add(schemaName); oldSchemas[schemaName] = this.Get(new Schema(repository, schemaName)); } } } zipStream.Position = 0; base.Import(repository, zipStream, @override); foreach (var name in schemaNames) { var oldSchema = oldSchemas[name]; var newSchema = this.Get(new Models.Schema(repository, name)); if (oldSchema != null) { SchemaManager.Update(newSchema, oldSchema); } else { Initialize(newSchema); } } }
public IEnumerable <NCMIS.ObjectModel.CmisObject> GetChildren(string repositoryId, string objectId, string filter, IncludeRelationships includeRelationships) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); string folderId; TryPraseObjectId(objectId, out folderId); switch (CmisFolderHelper.IdentifyFolderType(repository, folderId)) { case FolderType.Root: return(new[] { CmisFolderHelper.CreateSystemFolderObject(CmisFolderHelper.Content_Folder_Root, CmisFolderHelper.RootFolderName), CmisFolderHelper.CreateSystemFolderObject(CmisFolderHelper.Media_Folder_Root, CmisFolderHelper.RootFolderName) }); case FolderType.Content_Folder_Root: return(ServiceFactory.TextFolderManager.All(repository, filter).Select(it => ObjectConvertor.ToCmis((TextFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None))); case FolderType.Media_Folder_Root: return(ServiceFactory.MediaFolderManager.All(repository, filter).Select(it => ObjectConvertor.ToCmis((MediaFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None))); case FolderType.Content_Folder: var textFolder = (TextFolder)CmisFolderHelper.Parse(repository, folderId); return(ServiceFactory.TextFolderManager.ChildFolders(textFolder, filter).Select(it => ObjectConvertor.ToCmis((TextFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None))); case FolderType.Media_Folder: var mediaFolder = (MediaFolder)CmisFolderHelper.Parse(repository, folderId); return(ServiceFactory.MediaFolderManager.ChildFolders(mediaFolder, filter).Select(it => ObjectConvertor.ToCmis((MediaFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None))); default: break; } return(new[] { ObjectConvertor.EmptyCmisObject() }); }
public CmisObject GetObject(string repositoryId, string objectId) { string folderId; TryPraseObjectId(objectId, out folderId); Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var folder = CmisFolderHelper.Parse(repository, folderId); return(ObjectConvertor.ToCmis(folder.AsActual(), false)); }
public void ImportCategoryData(Models.Repository repository, IEnumerable <Models.Category> data) { var dataCollection = repository.GetCategoriesCollection(); var docs = data.Select(it => it.ToBsonDocument()).ToArray(); if (docs.Length > 0) { dataCollection.InsertBatch(docs); } }
public void ImportCategoryData(Models.Repository repository, IEnumerable <Models.Category> data) { var bucket = repository.GetClient(); ////导入站点不用PersistTo data.ForEach((it, index) => { bucket.Store(StoreMode.Set, it.GetDocumentKey(), it.ToJson()); }); }
public virtual IEnumerable <T> All(Models.Repository repository, string filterName) { var r = Provider.All(repository); if (!string.IsNullOrEmpty(filterName)) { r = r.Where(it => it.Name.Contains(filterName, StringComparison.CurrentCultureIgnoreCase)); } return(r); }
public void Remove(Models.Repository item) { try { inner.Remove(item); } finally { @item.ClearCache(); } }
public void Add(Models.Repository item) { try { inner.Add(item); } finally { Kooboo.CMS.Caching.CacheManagerFactory.DefaultCacheManager.ClearGlobalObjectCache(); } }
public IQueryable <Models.SendingSetting> All(Models.Repository repository) { var path = new SendingSettingPath(repository); return(IO.IOUtility .EnumerateFilesExludeHidden(path.PhysicalPath) .Select(it => new SendingSetting { Repository = repository, Name = Path.GetFileNameWithoutExtension(it.Name) }).ToArray().AsQueryable()); }
public override void Remove(Models.Repository item) { try { DatabaseHelper.DisposeDatabase(item); } catch { } base.Remove(item); }
public ActionResult GetJsonDataModel(string searchText) { string val = searchText; var searchText1 = "WordSearch"; //searchText; var webClient = new WebClient(); webClient.Headers.Add("user-agent", "Only a test!"); var json = webClient.DownloadString(@"https://api.github.com/search/repositories?q=" + searchText1); Models.Repository objJson = JsonConvert.DeserializeObject <Repository>(json); return(View(objJson)); }
/// <summary> /// Alls the specified repository. /// </summary> /// <param name="repository">The repository.</param> /// <param name="filterName">Name of the filter.</param> /// <returns></returns> public override IEnumerable <T> All(Models.Repository repository, string filterName) { var r = Provider.All(repository).Select(it => it.AsActual()); if (!string.IsNullOrEmpty(filterName)) { r = r.Where(it => it.Name.Contains(filterName, StringComparison.OrdinalIgnoreCase) || (!string.IsNullOrEmpty(it.DisplayName) && it.DisplayName.Contains(filterName, StringComparison.OrdinalIgnoreCase))); } return(r); }
public ActionResult saveBookmark(string repoId, string avatar, string repoName) { if (String.IsNullOrEmpty(repoId) || String.IsNullOrEmpty(avatar) || String.IsNullOrEmpty(repoName)) { return(Json(new { Message = "ERROR in input values.", JsonRequestBehavior.AllowGet })); } if (Session[repoId] != null) { return(Json(new { Message = "This Repository was bookmarked already!", JsonRequestBehavior.AllowGet })); } Session[repoId] = new Models.Repository(avatar, repoName, repoId); return(Json(new { Message = "Bookmark was saved SUCCESSFULLY!", JsonRequestBehavior.AllowGet })); }
public ActionResult GetJsonDataModel(string searchText) { if (searchText.Length < 1) { return(View("SearchForRepository")); } else { var webClient = new WebClient(); webClient.Headers.Add("user-agent", "repository"); var json = webClient.DownloadString(ConfigurationManager.AppSettings["API_URL"].ToString() + searchText); Models.Repository objJson = JsonConvert.DeserializeObject <Repository>(json); return(View(objJson)); } }
public async Task <ActionResult <bool> > CheckImage([FromBody] Models.Repository repository) { try { return(await _containerService.CheckImageAsync(repository)); } catch (InvalidRepositoryName ex) { return(BadRequest(ex.Message)); } catch (AmazonECRException ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public virtual void Remove(Models.Repository repository, T item) { if (string.IsNullOrEmpty(item.Name)) { throw new NameIsReqiredException(); } var dbProvider = Provider; item.Repository = repository; if (dbProvider.Get(item) == null) { throw new ItemDoesNotExistException(); } dbProvider.Remove(item); }
public virtual void Update(Models.Repository repository, T @new, T old) { if (string.IsNullOrEmpty(@new.Name)) { throw new NameIsReqiredException(); } var dbProvider = Provider; old.Repository = repository; @new.Repository = repository; if (dbProvider.Get(old) == null) { throw new ItemDoesNotExistException(); } dbProvider.Update(@new, @old); }
public async Task <Repository> AddRepositoryAsync(string repositoryName) { var repo = dbContext.Repositories?.Where(x => x.Name == repositoryName).FirstOrDefault(); if (repo == null) { repo = new Models.Repository() { Name = repositoryName }; await dbContext.Repositories.AddAsync(repo); await dbContext.SaveChangesAsync(); } return(repo); }
public Models.Repository Get(Models.Repository dummy) { var cacheKey = GetCacheKey(dummy); var o = (Repository)dummy.ObjectCache().Get(cacheKey); if (o == null) { o = inner.Get(dummy); if (o == null) { return(o); } dummy.ObjectCache().Add(cacheKey, o, Kooboo.CMS.Caching.ObjectCacheExtensions.DefaultCacheItemPolicy); } return(o); }
public Models.Repository Get(Models.Repository dummy) { var cacheKey = GetCacheKey(dummy); var o = (Repository)dummy.ObjectCache().Get(cacheKey); if (o == null) { o = inner.Get(dummy); if (o == null) { return(o); } dummy.ObjectCache().Add(cacheKey, o, CacheProviderFactory.DefaultCacheItemPolicy); } return(o); }
public void DeleteObject(string repositoryId, string objectId) { string folderId; TryPraseObjectId(objectId, out folderId); Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var folder = CmisFolderHelper.Parse(repository, folderId); if (folder is TextFolder) { ServiceFactory.TextFolderManager.Remove(repository, (TextFolder)folder); } else { ServiceFactory.MediaFolderManager.Remove(repository, (MediaFolder)folder); } }
public void DeleteObject(string repositoryId, string objectId) { string folderId; TryPraseObjectId(objectId, out folderId); Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var folder = CmisFolderHelper.Parse(repository, folderId); if (folder is TextFolder) { ServiceFactory.TextFolderManager.Remove(repository, (TextFolder)folder); } else { ServiceFactory.MediaFolderManager.Remove(repository, (MediaFolder)folder); } }
public virtual void Add(Models.Repository repository, T item) { if (string.IsNullOrEmpty(item.Name)) { throw new NameIsReqiredException(); } var dbProvider = Provider; item.Repository = repository; if (dbProvider.Get(item) != null) { throw new ItemAlreadyExistsException(); } dbProvider.Add(item); }
public NCMIS.ObjectModel.CmisObject GetParent(string repositoryId, string objectId) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); string folderId; if (!IsSystemFolder(objectId) && TryPraseObjectId(objectId, out folderId)) { var folder = CmisFolderHelper.Parse(repository, folderId); if (folder.Parent != null) { return(ObjectConvertor.ToCmis(folder.Parent.AsActual(), false)); } } return(ObjectConvertor.EmptyCmisObject()); }
private async Task <Models.RepositoryStatInfo> LoadRepositoryStatisticsAsync(Models.Repository repository) { if (string.IsNullOrEmpty(repository.Owner?.Login) || string.IsNullOrEmpty(repository.Name)) { throw new InvalidOperationException("Invalid GitHub response"); } var contributors = new List <Models.Contributor>(); var contributorsLoader = _dataLoaderFactory.GetContributorDataLoader(repository.Owner.Login, repository.Name); await foreach (var contributorsPage in GetPagedEntitiesAsync(contributorsLoader)) { contributors.AddRange(contributorsPage); } return(new Models.RepositoryStatInfo(repository, contributors)); }
public override NCMIS.Produce.RepositoryInfo GetRepositoryInfo(string repositoryId) { var repositoryEntry = GetRepository(repositoryId); if (repositoryEntry != null) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId).AsActual(); return new RepositoryInfo() { RepositoryId = repository.Name, RepositoryName = repository.Name, RepositoryDescription = repository.DisplayName, VendorName = "Kooboo CMS", ProductName = "Kooboo CMS", ProductVersion = "1.0", RootFolderId = CmisFolderHelper.RootFolderName, LatestChangeLogToken = DateTime.UtcNow.ToString(), // Define repository capabilities (see section 2.1.1.1 in CMIS spec) Capabilities = new RepositoryCapabilities() { Acl = CapabilityAcl.Manage, AllVersionsSearchable = false, Changes = CapabilityChanges.All, ContentStreamUpdatability = CapabilityContentStreamUpdates.Anytime, GetDescendants = false, GetFolderTree = false, Multifiling = false, PwcSearchable = true, PwcUpdatable = true, Query = CapabilityQuery.BothCombined, Renditions = CapabilityRendition.Read, Unfiling = false, VersionSpecificFiling = false, Join = CapabilityJoin.InnerAndOuter }, CmisVersionSupported = 1.0m }; } return null; }
public CmisObject CreateFolder(string repositoryId, NCMIS.ObjectModel.CmisProperties properties, string folderId) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); Folder parent = null; var objectId = folderId; var values = properties.ToNameValueCollection(); if (string.IsNullOrEmpty(values["name"])) { throw new Exception("The property \"Name\" is required."); } if (TryPraseObjectId(objectId, out folderId)) { var folderType = CmisFolderHelper.IdentifyFolderType(repository, folderId); switch (folderType) { case FolderType.Root: throw new Exception("Could not create folder under root folder."); case FolderType.Content_Folder_Root: parent = null; return AddContentFolder(repository, parent, values); case FolderType.Media_Folder_Root: parent = null; return AddMediaFolder(repository, parent, values); case FolderType.Content_Folder: parent = CmisFolderHelper.Parse(repository, folderId); return AddContentFolder(repository, parent, values); case FolderType.Media_Folder: parent = CmisFolderHelper.Parse(repository, folderId); return AddMediaFolder(repository, parent, values); default: break; } } throw new InvalidOperationException("Create folder failed."); }
public override NCMIS.ObjectModel.MetaData.TypeDefinitionList GetTypeChildren(string repositoryId, string typeId, bool includePropertyDefinitions, int? maxItems, int skipCount) { var list = new NCMIS.ObjectModel.MetaData.TypeDefinitionList() { Types = new TypeDefinition[0] }; if (string.IsNullOrEmpty(typeId)) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var schemas = ServiceFactory.SchemaManager.All(repository, "").Select(it => new TypeDocumentDefinition() { Versionable = false, ContentStreamAllowed = NCMIS.ObjectModel.MetaData.ContentStreamAllowed.Allowed, BaseId = BaseObjectTypeId.CmisDocument, ControllableAcl = false, ControllablePolicy = false, Creatable = true, Description = it.Name, DisplayName = it.Name, Fileable = false, FulltextIndexed = false, Id = it.Name, IncludedInSupertypeQuery = false, LocalName = it.Name, LocalNamespace = typeof(Schema).ToString(), ParentId = "", Queryable = true, QueryName = "Schema", PropertyDefinitions = includePropertyDefinitions ? null : it.AsActual().Columns.Select(c => ColumnDefinition(c)).ToArray() }).Skip(skipCount); var count = schemas.Count(); var take = maxItems.HasValue ? maxItems.Value : count; list.NumItems = count.ToString(); list.HasMoreItems = count > count + take; list.Types = schemas.Take(take).ToArray(); } return list; }
public IEnumerable<NCMIS.ObjectModel.CmisObject> GetChildren(string repositoryId, string objectId, string filter, IncludeRelationships includeRelationships) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); string folderId; TryPraseObjectId(objectId, out folderId); switch (CmisFolderHelper.IdentifyFolderType(repository, folderId)) { case FolderType.Root: return new[] { CmisFolderHelper.CreateSystemFolderObject(CmisFolderHelper.Content_Folder_Root,CmisFolderHelper.RootFolderName), CmisFolderHelper.CreateSystemFolderObject(CmisFolderHelper.Media_Folder_Root,CmisFolderHelper.RootFolderName) }; case FolderType.Content_Folder_Root: return ServiceFactory.TextFolderManager.All(repository, filter).Select(it => ObjectConvertor.ToCmis((TextFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None)); case FolderType.Media_Folder_Root: return ServiceFactory.MediaFolderManager.All(repository, filter).Select(it => ObjectConvertor.ToCmis((MediaFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None)); case FolderType.Content_Folder: var textFolder = (TextFolder)CmisFolderHelper.Parse(repository, folderId); return ServiceFactory.TextFolderManager.ChildFolders(textFolder, filter).Select(it => ObjectConvertor.ToCmis((TextFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None)); case FolderType.Media_Folder: var mediaFolder = (MediaFolder)CmisFolderHelper.Parse(repository, folderId); return ServiceFactory.MediaFolderManager.ChildFolders(mediaFolder, filter).Select(it => ObjectConvertor.ToCmis((MediaFolder)(it.AsActual()), includeRelationships != IncludeRelationships.None)); default: break; } return new[] { ObjectConvertor.EmptyCmisObject() }; }
public override NCMIS.ObjectModel.MetaData.TypeDefinition GetTypeDefinition(string repositoryId, string typeId) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var schema = ServiceFactory.SchemaManager.All(repository, "").Where(it => string.Compare(it.Name, typeId, true) == 0).FirstOrDefault(); if (schema != null) { return new TypeDocumentDefinition() { BaseId = BaseObjectTypeId.CmisDocument, ControllableAcl = false, ControllablePolicy = false, Creatable = true, Description = schema.Name, DisplayName = schema.Name, Fileable = false, FulltextIndexed = false, Id = schema.Name, IncludedInSupertypeQuery = false, LocalName = schema.Name, LocalNamespace = typeof(Schema).ToString(), ParentId = "", Queryable = true, QueryName = "Schema", PropertyDefinitions = schema.AsActual().Columns.Select(c => ColumnDefinition(c)).ToArray() }; } return null; }
public HttpResponseMessage GetPostFileDetails(int fileId, int repositoryId) { Func<DM.File, bool> fileByFileIdAndUserIdFilter = f => f.FileId == fileId && f.CreatedBy == this.user.UserId && (f.isDeleted == null || f.isDeleted == false); DM.File file = fileService.GetFiles(fileByFileIdAndUserIdFilter).FirstOrDefault(); if (file == null) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, MessageStrings.FileNotFound); } bool isAdmin = this.user.UserRoles.Any(ur => ur.Role.Name.Equals(Roles.Administrator.ToString(), StringComparison.OrdinalIgnoreCase)); string fileExtension = Path.GetExtension(file.Name).Replace(".", string.Empty); IEnumerable<DM.Repository> repositoryList = this.repositoryService.GetRepositoriesByRoleAndFileExtension(isAdmin, fileExtension); if (repositoryList.FirstOrDefault(r => r.RepositoryId == repositoryId) == null) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, MessageStrings.Repository_Not_Found); } PostPageViewModel postPageViewModel = new PostPageViewModel(); postPageViewModel.FileId = fileId; postPageViewModel.FileName = file.Name; postPageViewModel.RepositoryId = repositoryId; foreach (DM.Repository dmRepository in repositoryList) { Models.Repository repository = new Models.Repository() { Id = dmRepository.RepositoryId, Name = dmRepository.Name, BaseRepositoryId = dmRepository.BaseRepositoryId, IsImpersonating = dmRepository.IsImpersonating.HasValue && dmRepository.IsImpersonating.Value == true, UserAgreement = dmRepository.UserAgreement }; postPageViewModel.RepositoryList.Add(repository); } return Request.CreateResponse<PostPageViewModel>(HttpStatusCode.OK, postPageViewModel); }
public override NCMIS.ObjectModel.PathedCmisObjectList GetChildren(string repositoryId, string folderId, int? maxItems, int skipCount, string orderBy, string filter, IncludeRelationships includeRelationships, string renditionFilter, bool includeAllowableActions, bool includePathSegment) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); IObjectService folderService = ObjectService.GetService(typeof(Folder)); string objectId = folderId; folderService.TryPraseObjectId(objectId, out folderId); FolderType folderType = CmisFolderHelper.IdentifyFolderType(repository, folderId); PathedCmisObjectList pathedList = new PathedCmisObjectList(); IEnumerable<PathedCmisObject> children = folderService.GetChildren(repositoryId, objectId, filter, includeRelationships) .Select(it => new PathedCmisObject() { Object = it }); var count = children.Count(); pathedList.NumItems = count.ToString(); pathedList.HasMoreItems = false; //IEnumerable<ContentBase> contents = new ContentBase[0]; if (folderType == FolderType.Content_Folder || folderType == FolderType.Media_Folder) { var folder = CmisFolderHelper.Parse(repository, folderId).AsActual(); IContentQuery<ContentBase> contentQuery = null; if (folder is TextFolder) { var textFolder = (TextFolder)folder; var schema = new Schema(repository, textFolder.SchemaName).AsActual(); contentQuery = textFolder.CreateQuery(); if (!string.IsNullOrEmpty(filter)) { foreach (var item in schema.Columns) { contentQuery = contentQuery.Or(new WhereContainsExpression(null, item.Name, filter)); } } } else { var mediaFolder = (TextFolder)folder; contentQuery = mediaFolder.CreateQuery(); if (!string.IsNullOrEmpty(filter)) { contentQuery = contentQuery.WhereContains("FileName", filter); } } if (!string.IsNullOrEmpty(orderBy)) { contentQuery = contentQuery.OrderBy(orderBy); } count = contentQuery.Count(); var take = maxItems.HasValue ? maxItems.Value : count; pathedList.NumItems = count.ToString(); pathedList.HasMoreItems = count > count + take; children = children.Concat(contentQuery.Select(it => new PathedCmisObject() { Object = ObjectConvertor.ToCmis((TextContent)(it), includeRelationships != IncludeRelationships.None) }).Take(take)); } pathedList.Objects = children.ToArray(); return pathedList; }
private List<Models.Node> parseRepositories(string xml) { List<Models.Node> repositories = new List<Models.Node>(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); XmlNodeList children = xmlDoc.GetElementsByTagName("repositories").Item(0).ChildNodes; foreach (XmlNode child in children) { Models.Repository repository = new Models.Repository(); bool add = false; foreach (XmlAttribute attribute in child.Attributes) { if (attribute.Name.Equals("access_type") && attribute.Value.Equals("fs")) { add = true; } if (attribute.Name.Equals("repositorySlug")) { repository.Id = attribute.Value; } System.Diagnostics.Debug.WriteLine("child:" + child.Name); } //Getting the label if (add) { //System.Diagnostics.Debug.WriteLine("Label:" + child.FirstChild.InnerXml); repository.Label = child.FirstChild.InnerXml; repositories.Add(repository); } } return repositories; }
public CmisObject GetObject(string repositoryId, string objectId) { string folderId; TryPraseObjectId(objectId, out folderId); Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); var folder = CmisFolderHelper.Parse(repository, folderId); return ObjectConvertor.ToCmis(folder.AsActual(), false); }
public void UpdateProperties(string repositoryId, string objectId, CmisProperties properties) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); string folderId; TryPraseObjectId(objectId, out folderId); var folder = CmisFolderHelper.Parse(repository, folderId); var values = properties.ToNameValueCollection(); if (folder is TextFolder) { var textFolder = (TextFolder)folder; if (values["DisplayName"] != null) { textFolder.DisplayName = values["DisplayName"]; } if (values["SchemaName"] != null) { textFolder.SchemaName = values["SchemaName"]; } if (values["CategoryFolders"] != null) { textFolder.CategoryFolders = values["CategoryFolders"].Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries); } ServiceFactory.TextFolderManager.Update(repository, textFolder, textFolder); } else { var mediaFolder = (MediaFolder)folder; if (values["DisplayName"] != null) { mediaFolder.DisplayName = values["DisplayName"]; } if (values["AllowedExtensions"] != null) { mediaFolder.AllowedExtensions = values["AllowedExtensions"].Split(",".ToArray(), StringSplitOptions.RemoveEmptyEntries); } ServiceFactory.MediaFolderManager.Update(repository, mediaFolder, mediaFolder); } }
public NCMIS.ObjectModel.CmisObject GetParent(string repositoryId, string objectId) { Kooboo.CMS.Content.Models.Repository repository = new Models.Repository(repositoryId); string folderId; if (!IsSystemFolder(objectId) && TryPraseObjectId(objectId, out folderId)) { var folder = CmisFolderHelper.Parse(repository, folderId); if (folder.Parent != null) { return ObjectConvertor.ToCmis(folder.Parent.AsActual(), false); } } return ObjectConvertor.EmptyCmisObject(); }