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)
            });
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
		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;
Exemplo n.º 4
0
        /// <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}\\'");
                }
            }
        }
Exemplo n.º 5
0
 public static string GetPath(PackageKind kind, string name)
 {
     return(System.IO.Path.Combine(kind == PackageKind.CSharp ?
                                   Configuration.CSharpPackageDirectory : Configuration.PythonPackageDirectory, name));
 }
Exemplo n.º 6
0
 public IThreadSheduler GetShedulerByPackageKind(PackageKind packageKind)
 {
     return(_sheduler);
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 public static string PublishNugetPackage(this Project project, PackageKind kind)
 {
     return(NugetHelper.Publish(project.GetNugetPackagePath(), kind));
 }