private async Task WriteTag()

in Core/src/Impl/Commands/CreateCommand.cs [102:124]


    private async Task WriteTag(IEnumerable<SymbolStoragePath> dirs)
    {
      myLogger.Info($"[{DateTime.Now:s}] Writing tag file...");
      var fileId = Guid.NewGuid();
      using var stream = new MemoryStream();
      await TagUtil.WriteTagScriptAsync(new Tag
        {
          ToolId = myToolId,
          FileId = fileId,
          Product = myIdentity.Product,
          Version = myIdentity.Version,
          CreationUtcTime = DateTime.UtcNow,
          IsProtected = myIsProtected,
          Properties = myProperties.Select(x => new TagKeyValue
            {
              Key = x.Key,
              Value = x.Value
            }).ToArray(),
          Directories = dirs.OrderBy(x => x).Distinct().ToArray()
        }, stream);

      await myStorage.CreateForWritingAsync(TagUtil.MakeTagFile(myIdentity, fileId), AccessMode.Private, stream);
    }