示例#1
0
        public async Task <ActionResult> CreateGet(string ns, string name, string ver)
        {
            if (string.IsNullOrEmpty(name))
            {
                name = "(default)";
            }
            if (!ModuleIdentifier.TryParse(ns, out var module))
            {
                logger.LogDebug("invalid module");
                return(BadRequest());
            }
            await moduleCatalogManager.LoadModuleCatalogCache();

            if (!moduleCatalogManager.HasCompatibleCatalog(module))
            {
                return(NotFound("No such module catalog."));
            }

            var exist = await context.ModuleInstances
                        .AnyAsync(m => m.Module == ns.ToLower() && m.Name == name.ToLower());

            if (exist)
            {
                return(Conflict($"Already exists: {ns}/{name}"));
            }

            logger.LogDebug($"Create for {ns}:{name}");
            await context.ModuleInstances.AddAsync(new ModuleInstance
            {
                Module = ns.ToLower(),
                Name   = name.ToLower(),
            });

            await context.SaveChangesAsync();

            return(Ok());
        }
示例#2
0
        public async Task <ActionResult <IEnumerable <string> > > GetAvailableModules()
        {
            await moduleCatalogManager.LoadModuleCatalogCache();

            return(moduleCatalogManager.Modules.Select(m => m.ToString()).ToList());
        }