public IPayloadPackage Wrap(PackageKind packageKind, object payload, Guid?packageId = null) { object package = payload; if (packageId.HasValue) { Type payloadType = package.GetType(); package = new InterlinkedPackage { Id = packageId.Value, PayloadType = payloadType.AssemblyQualifiedName, Payload = _modelSerializer.Serialize(payloadType, package) }; } Type packageType = package.GetType(); return(new PayloadPackage { PackageKind = packageKind, PayloadType = packageType.AssemblyQualifiedName, Payload = _modelSerializer.Serialize(packageType, package) }); }
public LocalPackage(PackageKind kind, string name) { Kind = kind; Name = name; Path = Package.GetPath(kind, name); ManifestFilePath = GetManifestFilePath(); using var reader = new JsonTextReader(new StreamReader(ManifestFilePath)); var stamp = JObject.Load(reader); Version = Version.Parse((string)stamp["version"]); Files = stamp["files"].Select(x => (string)x).ToList(); Dependencies = stamp["dependencies"].Select(x => (string)x).ToList(); }
public LoadedPackage(PackageKind kind, IEnumerable<PackageEntry> entries) { this.Kind = kind; this.Entries = entries.ToArray(); var topLevelEntries = new List<PackageEntry>(); var folders = new Dictionary<string, PackageFolder>(); var rootFolder = new PackageFolder(this, null, ""); folders.Add("", rootFolder); foreach (var entry in this.Entries) { var (dirname, filename) = SplitName(entry.Name); GetFolder(dirname).Entries.Add(new FolderEntry(filename, entry)); } this.RootFolder = rootFolder;
/// <summary> /// Generates the packages. /// </summary> /// <param name="commandList">The command list.</param> internal void GeneratePackages(IEnumerable <CommandInfo> commandList) { IEnumerable <IShellWrapper> packageGenerators = (from t in typeof(IShellWrapper).Assembly.ExportedTypes where !t.IsInterface && !t.IsAbstract && typeof(IShellWrapper).IsAssignableFrom(t) select((IShellWrapper)Activator.CreateInstance(t))); foreach (IShellWrapper generator in packageGenerators) { if (PackageKind.HasFlag(generator.Kind)) { generator.GeneratePackage(commandList.Where(x => x.IsInternal == false), ExecutableFile); Console.WriteLine($"{nameof(NShellit)} -> Successfully created package '{generator.PackageDirectory}\\'"); } } }
public static string GetPath(PackageKind kind, string name) { return(System.IO.Path.Combine(kind == PackageKind.CSharp ? Configuration.CSharpPackageDirectory : Configuration.PythonPackageDirectory, name)); }
public IThreadSheduler GetShedulerByPackageKind(PackageKind packageKind) { return(_sheduler); }
private static IResponse[] Deserialize(PackageKind kind, byte[] bytes) { if (kind != PackageKind.Response) { throw new System.Exception($"Receive unknown package kind {kind}"); } var buffer = new ByteBuffer(bytes); var response = Responses.GetRootAsResponses(buffer); var result = new IResponse[response.TotalMessages]; Action <uint, IResponse> setResult = (index, item) => { if (index >= result.Length) { throw new IndexOutOfRangeException(); } if (result[index] != null) { throw new ArgumentException(); } result[index] = item; }; for (int i = 0; i < response.EmptyPackagesLength; i++) { var pack = response.EmptyPackages(i) ?? throw new NullReferenceException(); var ordering = pack.Ordering; switch (pack.Kind) { case ResponseKind.GameStarted: setResult(ordering, new ResponseGameStart()); break; case ResponseKind.GameStatusIdle: setResult(ordering, new ResponseGameStatus() { status = ResponseGameStatus.GameStatus.Idle }); break; case ResponseKind.GameStatusRunning: setResult(ordering, new ResponseGameStatus() { status = ResponseGameStatus.GameStatus.Playing }); break; default: Debug.LogWarning($"Unknown kind [${pack.Kind}] for simple package"); continue; } } for (int i = 0; i < response.CreatePackagesLength; i++) { var package = response.CreatePackages(i) ?? throw new NullReferenceException(); setResult(package.Ordering, new ResponseSpawn() { id = package.Id, position = new Vector3(package.X, package.Y, 0f) }); } for (int i = 0; i < response.PosPackagesLength; i++) { var package = response.PosPackages(i) ?? throw new NullReferenceException(); setResult(package.Ordering, new ResponsePos() { id = package.Id, position = new Vector3(package.X, package.Y, 0f) }); } return(result); }
public static string PublishNugetPackage(this Project project, PackageKind kind) { return(NugetHelper.Publish(project.GetNugetPackagePath(), kind)); }