Beispiel #1
0
        public static void Main(string[] args)
        {
            {
                Console.WriteLine("Binary Serialization");
                var coreAssembly = new CoreAssembly();

                coreAssembly.EquationSerializationManager.SerializeEquations("equation.ser", coreAssembly
                                                                             .EquationFabric.GenerateArray(10).ToList(), 10);
                Console.WriteLine("Serialized 10 Equations");
                Console.WriteLine("Reding from file");

                coreAssembly.EquationSerializationManager.DeserializeEquations("equation.ser", coreAssembly
                                                                               .EquationSerializationManager.PrintAdditionalInfo);
            }
            {
                Console.WriteLine("XMl Serialization");
                var coreAssembly = new CoreAssembly(SerializationType.XML);
                coreAssembly.EquationSerializationManager.SerializeEquations("xmlEquation.xml", coreAssembly
                                                                             .EquationFabric.GenerateArray(10).ToList(), 10);
                Console.WriteLine("Serialized 10 equations");

                coreAssembly.EquationSerializationManager.DeserializeEquations("xmlEquation.xml", coreAssembly
                                                                               .EquationSerializationManager.PrintAdditionalInfo);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Creates the push button based on data provided in <see cref="RevitPushButtonDataModel"/>.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <returns></returns>
        public static PushButton Create(RevitPushButtonDataModel data)
        {
            // The button name based on unique identifier.
            var btnDataName = Guid.NewGuid().ToString();

            // Sets the button data.
            var btnData = new PushButtonData(btnDataName, data.Label, CoreAssembly.GetAssemblyLocation(), data.CommandNamespacePath)
            {
                ToolTip      = data.Tooltip,
                LargeImage   = ResourceImage.GetIcon(data.IconImageName),
                ToolTipImage = ResourceImage.GetIcon(data.TooltipImageName)
            };

            // Return created button and host it on panel provided in required data model.
            return(data.Panel.AddItem(btnData) as PushButton);
        }
Beispiel #3
0
        public CoreHandler()
        {
            var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin", "ServerCore.dll");

            Console.WriteLine("current server core path is: " + path);
            CoreAssembly = Assembly.LoadFile(path);
            var        types       = CoreAssembly.GetTypes();
            var        appType     = types.Where(t => t.GetInterfaces().Contains(typeof(IApp))).First();
            var        app         = Activator.CreateInstance(appType);
            MethodInfo startMethod = appType.GetMethod("Start");

            //MethodInfo stopMethod = appType.GetMethod("Stop");
            startMethod.Invoke(app, null);

            ControllerTypes = types.Where(t => t.BaseType.Equals(typeof(RestController))).ToList();
        }
Beispiel #4
0
 public void Setup()
 {
     _assembly = new CoreAssembly(Enumerable.Empty <Card>(), Enumerable.Empty <Card>(), 5, false);
 }
 public void SetUp()
 {
     _assembly = new CoreAssembly();
     CoreAssembly.PrepareForTest();
 }
 public void SetUp()
 {
     _assembly = new CoreAssembly();
     Console.WriteLine(Directory.GetCurrentDirectory());
     FillSamples();
 }
 private void Clear()
 {
     _assembly.MyDataBase.ClearAll();
     _assembly.MyDataBase.CreateAll();
     CoreAssembly.PrepareForTest();
 }
 public void Setup()
 {
     _assembly = new CoreAssembly();
 }
        /// <summary>
        ///     Builds a .NET Assembly using the input Papyrus Source
        /// </summary>
        /// <param name="inputSourceFiles"></param>
        public async void BuildAssembly(string[] inputSourceFiles)
        {
            // @"C:\The Elder Scrolls V Skyrim\Data\scripts\Source"
            var files = inputSourceFiles;

            var resolvedAssemblyName = AssemblyNameResolver.Resolve(null);

            CoreAssembly = AssemblyDefinition.CreateAssembly(
                resolvedAssemblyName,
                resolvedAssemblyName.Name, ModuleKind.Dll);

            MainModule = CoreAssembly.MainModule;

            var papyrusObjects = new List <PapyrusAssemblyObject>();

            StatusCallback.WriteLine("Parsing Papyrus... This usually takes about 30 seconds.");

            totalFilesToParse = files.Length;

            var asyncParse = files.Select(Parse);

            papyrusObjects.AddRange(await Task.WhenAll(asyncParse.ToArray()));

            StatusCallback.Title = "PapyrusDotNet";

            StatusCallback.WriteLine("Adding object references... This usually takes about a minute.");
            foreach (var pasObj in papyrusObjects)
            {
                AddedTypeReferences.Add(TypeReferenceResolver.Resolve(MainModule, null, pasObj.Name));
            }

            foreach (var pas in papyrusObjects)
            {
                MainModule.Types.Add(TypeDefinitionResolver.Resolve(MainModule, pas));
            }

            StatusCallback.WriteLine("Resolving object references... This usually takes about 30 seconds.");
            foreach (var t in MainModule.Types)
            {
                foreach (var f in t.Methods)
                {
                    var typeDefinition = MainModule.Types.FirstOrDefault(ty => ty.FullName == f.ReturnType.FullName);
                    f.ReturnType = TypeReferenceResolver.Resolve(MainModule, typeDefinition, f.ReturnType.FullName);
                    foreach (var p in f.Parameters)
                    {
                        var td = MainModule.Types.FirstOrDefault(ty => ty.FullName == p.ParameterType.FullName);
                        if (td != null)
                        {
                            /*	// Most likely a System object.
                             *  p.ParameterType = GetTypeReference(null, p.ParameterType.FullName);
                             * else */
                            p.ParameterType = TypeReferenceResolver.Resolve(MainModule, typeDefinition, td.FullName);
                        }
                    }
                }
            }

            StatusCallback.WriteLine("Importing Papyrus specific attributes...");


            var allAttributesToInclude = Assembly.GetExecutingAssembly().GetTypes().Where(
                t => t.Name.ToLower().EndsWith("attribute")
                //TODO: we should include the PapyrusDotNet.System here as well.
                );

            foreach (var attr in allAttributesToInclude)
            {
                ImportType(MainModule, attr);
            }

            CoreAssembly.Write(AssemblyNameResolver.OutputLibraryFilename);

            StatusCallback.ForegroundColor = ConsoleColor.Green;
            StatusCallback.WriteLine(AssemblyNameResolver.OutputLibraryFilename + " successefully generated.");
            StatusCallback.ResetColor();
        }
Beispiel #10
0
 /// <summary>
 /// Checks if preferences prefs.cbb file exists.
 /// </summary>
 /// <returns></returns>
 private bool PreferencesFileExists()
 {
     // Check if prefs.cbb file exists in assembly location folder.
     return(File.Exists(Path.Combine(Path.GetDirectoryName(CoreAssembly.GetAssemblyLocation().ToString()), "prefs.cbb")));
 }