public async Task <ActionResult <int> > Add([FromBody] AddArgument argument) { User user = Request.GetUser(); if (user == null) { return(Unauthorized()); } if (argument.members.Where(x => x == user.Id).Count() == 0) { argument.members.Add((int)user.Id); } return(Ok(await DAO.Group.Create(argument.name, argument.description, argument.members))); }
private BuilderLayer CreateLayer(IEnumerable <string> adds, IEnumerable <string> addFolders, string layerName) { var description = new StringBuilder(); EnsureTempFolder(); var archive = new Archive(Path.Combine(_tempFolderPath, $"{layerName}.tar.gz"), true, new[] { _tempFolderPath }, _logger); foreach (var a in adds) { var arg = AddArgument.Parse(a, false); _logger.LogDebug($"--add {arg.Source} {arg.Dest} {arg.OwnerId} {arg.GroupId} {arg.Mode.AsOctalString()}"); description.Append($"--add . {arg.Dest} {arg.OwnerId} {arg.GroupId} {arg.Mode.AsOctalString()} "); archive.CreateEntries(arg.Source, arg.Dest, arg.OwnerId, arg.GroupId, arg.Mode); } foreach (var a in addFolders ?? Enumerable.Empty <string>()) { var arg = AddArgument.Parse(a, true); _logger.LogDebug($"--addFolder {arg.Dest} {arg.OwnerId} {arg.GroupId} {arg.Mode.AsOctalString()}"); description.Append($"--addFolder {arg.Dest} {arg.OwnerId} {arg.GroupId} {arg.Mode.AsOctalString()} "); archive.CreateFolderEntry(arg.Dest, arg.OwnerId, arg.GroupId, arg.Mode); } var(digest, diffId) = archive.WriteFileAndCalcDigests(); var layer = new BuilderLayer { Name = layerName, Digest = digest, DiffId = diffId, Size = archive.GetSize(), Description = description.ToString(), }; var layerLogger = CreateLogger("LAYER"); layerLogger.LogDebug($"{layer}"); foreach (var e in archive.Entries) { layerLogger.LogDebug($" {Archive.PrintEntry(e.Value.Item2)}"); } return(layer); }