Ejemplo n.º 1
0
        public void AddMultipleRelations()
        {
            var class1 = new Class1().Modl();

            class1.MultipleRelation.Add(new Class2());
            class1.MultipleRelation.Add(new Class2());
            class1.Save();
            foreach (var class2 in class1.MultipleRelation)
            {
                class2.Save();
            }

            Assert.Equal(2, class1.MultipleRelation.Count());
            Assert.Equal(class1.Id(), class1.MultipleRelation.First().SingleRelation.Id);
            Assert.Equal(class1.Id(), class1.MultipleRelation.First().SingleRelation.Val.Id());


            var loadedClass1 = Modl <Class1> .Get(class1.Id());

            Assert.Equal(2, loadedClass1.MultipleRelation.Count());
            Assert.Equal(loadedClass1.Id(), loadedClass1.MultipleRelation.First().SingleRelation.Id);
            Assert.Equal(loadedClass1.Id(), loadedClass1.MultipleRelation.First().SingleRelation.Val.Id());

            foreach (var class2 in class1.MultipleRelation)
            {
                var loadedClass2 = Modl <Class2> .Get(class2.Id());

                Assert.NotNull(loadedClass2.SingleRelation.Val);
                Assert.Equal(2, loadedClass2.SingleRelation.Val.MultipleRelation.Count());
                Assert.True(loadedClass2.SingleRelation.Val.MultipleRelation.Any(x => x.Id() == loadedClass2.Id()));
            }
        }
Ejemplo n.º 2
0
        public void Save()
        {
            var testClass = new CustomIdIntClass();

            Assert.Throws <InvalidIdException>(() => testClass.Save());

            var id = 2472;

            testClass.CustomId = id;
            testClass.Save();

            Assert.False(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(id == testClass.Id());
            Assert.Equal(id, testClass.CustomId);

            var loadedTestClass = Modl <CustomIdIntClass> .Get(id);

            Assert.Equal(id, loadedTestClass.CustomId);
            Assert.True(id == loadedTestClass.Id());
            Assert.Equal(id, loadedTestClass.CustomId);
            Assert.False(loadedTestClass.IsNew());
            Assert.False(loadedTestClass.IsModified());
            Assert.Throws <InvalidIdException>(() => loadedTestClass.Id(4544));
            Assert.Throws <InvalidIdException>(() =>
            {
                loadedTestClass.CustomId = 4544;
                loadedTestClass.Save();
            });
        }
Ejemplo n.º 3
0
        //public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, System.Type modelType)
        {
            var id = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + "." + Modl <M> .Definitions.IdProperty.PropertyName);

            if (id == null)
            {
                id = bindingContext.ValueProvider.GetValue(Modl <M> .Definitions.IdProperty.PropertyName);
            }

            if (id != null)
            {
                return(Modl <M> .Get(id.AttemptedValue));
            }

            return(Modl <M> .New());

            //if (bindingContext.ModelType.GetInterface("IModl") != null && value != null)
            //{
            //    if (MvcHelper.IsNumeric(value.AttemptedValue))
            //    {
            //        var method = bindingContext.ModelType.GetMethods(BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.Public).Single(x => x.Name == "Get" && x.GetParameters()[0].ParameterType == typeof(int));
            //        return method.Invoke(null, new object[] { Convert.ToInt32(value.AttemptedValue), true });
            //    }
            //}

            //return base.BindModel(controllerContext, bindingContext);
        }
Ejemplo n.º 4
0
Archivo: Basics.cs Proyecto: bazer/Modl
        public void CRUDExplicitId()
        {
            Manufacturer m1 = Modl <Manufacturer> .New(Guid.NewGuid());

            Assert.False(m1.IsModified());
            m1.Name = "BMW";
            Assert.True(m1.IsModified());
            m1.Save();
            Assert.False(m1.IsNew());
            Assert.False(m1.IsModified());

            Manufacturer m2 = Modl <Manufacturer> .Get(m1.ManufacturerID);

            AssertEqual(m1, m2);

            m2.Name = "Mercedes";
            Assert.Equal("Mercedes", m2.Name);
            m2.Save();

            Manufacturer m3 = Modl <Manufacturer> .Get(m1.ManufacturerID);

            Assert.Equal("Mercedes", m3.Name);
            m3.Delete();
            Assert.True(m3.IsDeleted());
            Assert.Throws <NotFoundException>(() => Modl <Manufacturer> .Get(m1.ManufacturerID));
        }
Ejemplo n.º 5
0
        public void Save()
        {
            var testClass = new CustomIdStringClass();

            Assert.Throws <InvalidIdException>(() => testClass.Save());

            var id = Guid.NewGuid().ToString();

            testClass.CustomId = id;
            testClass.Save();

            Assert.False(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(id == testClass.Id());
            Assert.Equal(id, testClass.CustomId);

            var loadedTestClass = Modl <CustomIdStringClass> .Get(id);

            Assert.Equal(id, loadedTestClass.CustomId);
            Assert.True(id == loadedTestClass.Id());
            Assert.Equal(id, loadedTestClass.CustomId);
            Assert.False(loadedTestClass.IsNew());
            Assert.False(loadedTestClass.IsModified());
            Assert.Throws <InvalidIdException>(() => loadedTestClass.Id(Guid.NewGuid().ToString()));
            Assert.Throws <InvalidIdException>(() =>
            {
                loadedTestClass.CustomId = Guid.NewGuid().ToString();
                loadedTestClass.Save();
            });
        }
Ejemplo n.º 6
0
        public void AddSingleRelationWithoutModlValue()
        {
            var class2 = new Class3().Modl();

            class2.SingleRelation = new Class1();
            class2.Save();
            class2.SingleRelation.Save();

            Assert.NotNull(class2.SingleRelation);
            Assert.Equal(1, class2.SingleRelation.MultipleRelation.Count());
            Assert.Equal(class2.Id(), class2.SingleRelation.MultipleRelation.First().Id());

            var loadedClass2 = Modl <Class3> .Get(class2.Id());

            Assert.NotNull(loadedClass2.SingleRelation);
            Assert.Equal(1, loadedClass2.SingleRelation.MultipleRelation.Count());
            Assert.Equal(loadedClass2.Id(), loadedClass2.SingleRelation.MultipleRelation.First().Id());


            var loadedClass1 = Modl <Class1> .Get(class2.SingleRelation.Id());

            Assert.Equal(1, loadedClass1.MultipleRelation.Count());
            Assert.Equal(loadedClass1.Id(), loadedClass1.MultipleRelation.First().SingleRelation.Id);
            Assert.Equal(loadedClass1.Id(), loadedClass1.MultipleRelation.First().SingleRelation.Val.Id());
        }
Ejemplo n.º 7
0
        //[TestCleanup]
        //public void Cleanup()
        //{
        //    foreach (var obj in Modl<CustomIdIntClass>.GetAll())
        //        obj.Delete();
        //}

        private void Cleanup(int id)
        {
            if (Modl <CustomIdIntClass> .Exists(id))
            {
                Modl <CustomIdIntClass> .Get(id).Delete();
            }
        }
Ejemplo n.º 8
0
        public static Modl CreateMODLFile(SBUltimateModel model)
        {
            Modl modl = new Modl();

            modl.ModelEntries = new ModlEntry[model.Meshes.Count];
            Dictionary <string, int> subindex = new Dictionary <string, int>();
            int i = 0;

            foreach (var mesh in model.Meshes)
            {
                var entry = new ModlEntry();
                modl.ModelEntries[i++] = entry;

                if (!subindex.ContainsKey(mesh.Name))
                {
                    subindex.Add(mesh.Name, 0);
                }

                entry.MeshName = mesh.Name;
                entry.SubIndex = subindex[mesh.Name];
                if (mesh.Material != null)
                {
                    entry.MaterialLabel = mesh.Material.Label;
                }
                else
                {
                    SBConsole.WriteLine("Warning: Missing material");
                }
                subindex[mesh.Name]++;
                SBConsole.WriteLine($"Creating modl entry: {entry.MeshName} {entry.SubIndex} {entry.MaterialLabel}");
            }

            return(modl);
        }
Ejemplo n.º 9
0
 public override void Open()
 {
     if (Ssbh.TryParseSsbhFile(AbsolutePath, out SsbhFile ssbhFile))
     {
         if (ssbhFile is Modl modl)
         {
             model = modl;
         }
     }
 }
Ejemplo n.º 10
0
Archivo: Basics.cs Proyecto: bazer/Modl
        public void CRUD()
        {
            //Modl<Car>.Settings.ConfigurePipeline(new JsonModl<Car>(), new FileModl<Car>());

            //ModlConfig.GlobalSettings.Serializer = new JsonModl();
            //ModlConfig.GlobalSettings.Endpoint = new FileModl();
            //Modl<Manufacturer>.Settings.Serializer = new JsonModl();
            //Modl<Manufacturer>.Settings.Endpoint = new FileModl();

            //Car car = Modl<Car>.New();

            var car = new Car();

            Assert.False(car.IsModified());
            car.Name             = "M3";
            car.Manufacturer.Val = new Manufacturer("BMW");
            car.Type             = new CarType();
            car.Type.Description = "Sedan";
            car.Tags             = new List <string>();
            car.Tags.Add("Nice");
            car.Tags.Add("Fast");
            car.Tags.Add("Blue");
            car.Tags.Add("Awful");

            Assert.Equal("Sedan", car.Type.Description);
            Assert.True(car.IsModified());
            car.Save();
            Assert.False(car.IsNew());
            Assert.False(car.IsModified());
            car.Manufacturer.Val.Save();

            Car car2 = Modl <Car> .Get(car.Id);

            AssertEqual(car, car2);
            Assert.Equal("Sedan", car2.Type.Description);
            car2.Manufacturer.Val.Name = "Mercedes";
            Assert.Equal("Mercedes", car2.Manufacturer.Val.Name);
            car2.Manufacturer.Val.Save();

            Car car3 = Modl <Car> .Get(car.Id);

            Assert.Equal("Mercedes", car3.Manufacturer.Val.Name);
            car3.Delete();
            Assert.True(car3.IsDeleted());
            Assert.False(car3.Manufacturer.Val.IsDeleted());
            car3.Manufacturer.Val.Delete();
            Assert.True(car3.Manufacturer.Val.IsDeleted());
            Assert.Throws <NotFoundException>(() => Modl <Car> .Get(car.Id));
        }
Ejemplo n.º 11
0
        public void Save()
        {
            var testClass = new EmptyClass();
            var id        = testClass.Id();

            testClass.Save();
            Assert.False(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.Equal(id, testClass.Id());

            var loadedTestClass = Modl <EmptyClass> .Get(id);

            Assert.Equal(id, loadedTestClass.Id());
            Assert.False(loadedTestClass.IsNew());
            Assert.False(loadedTestClass.IsModified());
        }
Ejemplo n.º 12
0
        public void List()
        {
            var modl  = new CustomIdStringClass().Id(Guid.NewGuid().ToString()).Save();
            var modl2 = new CustomIdStringClass().Id(Guid.NewGuid().ToString()).Save();

            var modlList = Modl <CustomIdStringClass> .List().ToList();

            Assert.NotEqual(0, modlList.Count);
            Assert.True(modlList.Any(x => x as string == modl.Id().Get <string>()));
            Assert.True(modlList.Any(x => x as string == modl2.Id().Get <string>()));

            var modlList2 = Modl <CustomIdStringClass> .List <string>().ToList();

            Assert.NotEqual(0, modlList2.Count);
            Assert.True(modlList2.Any(x => x == modl.Id().Get <string>()));
            Assert.True(modlList2.Any(x => x == modl2.Id().Get <string>()));
        }
Ejemplo n.º 13
0
        public void List()
        {
            var modl  = new EmptyClass().Save();
            var modl2 = new EmptyClass().Save();

            var modlList = Modl <EmptyClass> .List().ToList();

            Assert.NotEqual(0, modlList.Count);
            Assert.True(modlList.Any(x => x == modl.Id()));
            Assert.True(modlList.Any(x => x == modl2.Id()));

            var modlList2 = Modl <EmptyClass> .List <Guid>().ToList();

            Assert.NotEqual(0, modlList2.Count);
            Assert.True(modlList2.Any(x => x == modl.Id()));
            Assert.True(modlList2.Any(x => x == modl2.Id()));
        }
Ejemplo n.º 14
0
        public void TestRaces()
        {
            var testClass = new ThreadClass1();

            testClass.Save();
            var id = testClass.Id();

            Parallel.For(0, 10, i =>
            {
                var test = Modl <ThreadClass1> .Get(id);
                SetAndTest(test, 100);
                SetAndTest(test, 200);
                SetAndTest(test, 300);
                SetAndTest(test, 400);
                SetAndTest(test, 500);
            });
        }
Ejemplo n.º 15
0
Archivo: Basics.cs Proyecto: bazer/Modl
        public void SetIdExplicit()
        {
            var          id = Guid.NewGuid();
            Manufacturer m1 = Modl <Manufacturer> .New(id);

            m1.Name = "Audi";
            Assert.Equal(id, m1.ManufacturerID);
            m1.Save();
            Assert.Equal(id, m1.ManufacturerID);

            var m2 = Modl <Manufacturer> .Get(m1.ManufacturerID.ToString());

            AssertEqual(m1, m2);

            m2.Save();
            Assert.Equal(id, m2.ManufacturerID);

            m2.Delete();
        }
Ejemplo n.º 16
0
        public void TestRaces()
        {
            Settings.GlobalSettings.InstanceSeparation = InstanceSeparation.Custom;
            Settings.GlobalSettings.CustomInstanceSeparationDictionary = () => GetDictionary(Thread.CurrentThread.ManagedThreadId);

            var testClass = new PerRequestThreadClass();

            testClass.Save();
            var id = testClass.Id();

            Parallel.For(0, 10, i =>
            {
                var test = Modl <PerRequestThreadClass> .Get(id);
                SetAndTest(test, 100);
                SetAndTest(test, 200);
                SetAndTest(test, 300);
                SetAndTest(test, 400);
                SetAndTest(test, 500);
            });
        }
Ejemplo n.º 17
0
        public void GetAll()
        {
            foreach (var m in Modl <CustomIdStringClass> .GetAll())
            {
                m.Delete();
            }

            var modlList = Modl <CustomIdStringClass> .GetAll().ToList();

            Assert.Equal(0, modlList.Count);

            var modl  = new CustomIdStringClass().Id(Guid.NewGuid().ToString()).Save();
            var modl2 = new CustomIdStringClass().Id(Guid.NewGuid().ToString()).Save();

            modlList = Modl <CustomIdStringClass> .GetAll().ToList();

            Assert.Equal(2, modlList.Count);
            Assert.True(modlList.Any(x => x.Id() == modl.Id()));
            Assert.True(modlList.Any(x => x.Id() == modl2.Id()));
        }
Ejemplo n.º 18
0
        public void CreateNew()
        {
            var testClass = new EmptyClass();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            testClass = Modl <EmptyClass> .New();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            var id = Guid.NewGuid();

            testClass = Modl <EmptyClass> .New(id);

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(id == testClass.Id());
        }
Ejemplo n.º 19
0
        public void GetAll()
        {
            foreach (var m in Modl <EmptyClass> .GetAll())
            {
                m.Delete();
            }

            var modlList = Modl <EmptyClass> .GetAll().ToList();

            Assert.Equal(0, modlList.Count);

            var modl  = new EmptyClass().Save();
            var modl2 = new EmptyClass().Save();

            modlList = Modl <EmptyClass> .GetAll().ToList();

            Assert.Equal(2, modlList.Count);
            Assert.True(modlList.Any(x => x.Id() == modl.Id()));
            Assert.True(modlList.Any(x => x.Id() == modl2.Id()));
        }
Ejemplo n.º 20
0
        public void Save()
        {
            var testClass = new AutomaticIdGuidClass();
            var id        = testClass.Id();

            testClass.Save();
            Assert.False(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.Equal(id, testClass.Id());
            Assert.True(id == testClass.CustomId);

            var loadedTestClass = Modl <AutomaticIdGuidClass> .Get(id);

            Assert.True(id == loadedTestClass.CustomId);
            Assert.Equal(id, loadedTestClass.Id());
            Assert.True(id == loadedTestClass.CustomId);
            Assert.False(loadedTestClass.IsNew());
            Assert.False(loadedTestClass.IsModified());
            Assert.Throws <InvalidIdException>(() => loadedTestClass.Id(Guid.NewGuid()));
        }
Ejemplo n.º 21
0
        public void CreateNew()
        {
            var testClass = new CustomIdIntClass();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            testClass = Modl <CustomIdIntClass> .New();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            var id = 3433;

            testClass = Modl <CustomIdIntClass> .New(id);

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(id == testClass.Id());
            Assert.Equal(id, testClass.CustomId);
        }
Ejemplo n.º 22
0
        public RNumdl(Modl modl, RSkeleton skeleton, Matl material, NumsbhNode meshNode, NuhlpbNode hlpbNode, Dictionary <string, Texture> textureByName)
        {
            Modl          = modl;
            Skeleton      = skeleton;
            Material      = material;
            TextureByName = textureByName;

            if (meshNode != null)
            {
                RenderModel = meshNode.GetRenderModel(Skeleton);
            }
            if (Material != null)
            {
                UpdateMaterials();
            }
            if (Skeleton != null)
            {
                hlpbNode?.AddToRenderSkeleton(Skeleton);
                UpdateBinds();
            }
        }
Ejemplo n.º 23
0
        public RNumdl(Modl modl, RSkeleton skeleton, Matl matl, NumshbNode meshNode, NuhlpbNode hlpbNode, XmbNode modelXmb, XmbNode lodXmb,
                      Dictionary <string, RTexture> textureByName)
        {
            Modl          = modl;
            Skeleton      = skeleton;
            Matl          = matl;
            ModelXmb      = modelXmb?.Xmb;
            LodXmb        = lodXmb?.Xmb;
            TextureByName = textureByName;

            if (meshNode != null)
            {
                RenderModel = meshNode.GetRenderModel(Skeleton);
            }

            UpdateMaterials(matl);
            if (Skeleton != null)
            {
                hlpbNode?.AddToRenderSkeleton(Skeleton);
            }
        }
Ejemplo n.º 24
0
        public void CreateNew()
        {
            var testClass = new CustomIdStringClass();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            testClass = Modl <CustomIdStringClass> .New();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            var id = Guid.NewGuid().ToString();

            testClass = Modl <CustomIdStringClass> .New(id);

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(id == testClass.Id());
            Assert.Equal(id, testClass.CustomId);
        }
Ejemplo n.º 25
0
        public void CreateNew()
        {
            var testClass = new AutomaticIdGuidClass();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            testClass = Modl <AutomaticIdGuidClass> .New();

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());

            var id = Guid.NewGuid();

            testClass = Modl <AutomaticIdGuidClass> .New(id);

            Assert.True(testClass.IsNew());
            Assert.False(testClass.IsModified());
            Assert.True(testClass.Id().Equals(id));
            Assert.True(id == testClass.Id());
            Assert.Equal(id, testClass.CustomId);
        }
Ejemplo n.º 26
0
Archivo: Basics.cs Proyecto: bazer/Modl
        public void CoreStuff()
        {
            Assert.Equal("Id", Modl <Car> .Definitions.IdProperty.PropertyName);

            var car = Modl <Car> .New();

            Assert.True(car.IsNew());
            Assert.False(car.IsModified());
            car.Name = "Audi";
            Assert.True(car.IsNew());
            Assert.True(car.IsModified());

            car = new Car();
            Assert.True(car.IsNew());
            Assert.False(car.IsModified());
            car.Name = "Audi";
            Assert.True(car.IsNew());
            Assert.True(car.IsModified());

            car = new Car().Modl().Modl().Modl().Modl();
            Assert.True(car.IsNew());
            Assert.False(car.IsModified());
            car.Name = "Audi";
            Assert.True(car.IsNew());
            Assert.True(car.IsModified());

            //car.Save();

            car = Modl <Car> .New();

            car.Manufacturer.Val = new Manufacturer("BMW");
            Assert.True(car.IsNew());
            Assert.True(car.IsModified());
            Assert.Equal("BMW", car.Manufacturer.Val.Name);
            Assert.True(car.Manufacturer.Val.IsNew());
            Assert.True(car.Manufacturer.Val.IsModified());
        }