private void exportBtn_Click(object sender, EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.DefaultExt = "*.emx"; dlg.Filter = "Ebatiano's ModelX(*.emx)|*.emx"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { String ext = Path.GetExtension(dlg.FileName); foreach (var exporter in _exporters) { if (ext.ToLowerInvariant() == exporter.SupportedFileExt) { using (Stream stream = dlg.OpenFile()) { ModelX model = ApplyChanges(_model); exporter.Export(stream, model); } return; } } MessageBox.Show("No exporter avaliable to save file using specyfied format."); } }
// CRUD,匿名委托风格 /* * Entity.From<T>() * .Set/Where(Action<T> action) * .Select(Action<T> action) * .Insert/Delete/Update/ToList/ToSingle() * * Entity.From<Model1>().Set(m => { * m.IntValue = 2; * m.StrValue = "abc"; * }).Insert(); * Entity.From<Model1>().Where(m => { * m.IntValue = 2; * m.StrValue = "abc"; * }).Delete(); * Entity.From<Model1>().Set(m => { * m.StrValue = "abc"; * }) * .Where(m => { * m.IntValue = 2; * }).Update(); */ public void Test_实体CUD_匿名委托风格() { // 先删除之前测试可能遗留下来的数据 Entity.From <ModelX>().Where(m => m.IntField = 1978).Delete(); // 插入一条记录,只给2个字段赋值 Entity.From <ModelX>() .Set(m => { m.IntField = 1978; m.StringField = "abc"; }) .Insert(); // 检验刚才插入的数据行 ModelX m1 = Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingle(); Assert.IsNotNull(m1); Assert.AreEqual("abc", m1.StringField); // 更新数据行,WHERE条件是IntField,要更新的字符是StringField Entity.From <ModelX>() .Set(m => m.StringField = "12345") .Where(m => m.IntField = 1978) .Update(); // 检验刚才更新的数据行,本次查询只加载一个字段StringField ModelX m2 = Entity.From <ModelX>() .Where(m => m.IntField = 1978) .Select(m => m.StringField = null) // 只加载StringField字段 .ToSingle(); Assert.IsNotNull(m2); Assert.AreEqual("12345", m2.StringField); Assert.AreEqual(0, m2.IntField); // 没有加载这个字段 // 再次插入一条记录,只给2个字段赋值 Entity.From <ModelX>() .Set(m => { m.IntField = 1978; m.StringField = "www"; }) .Insert(); // 查询列表,应该包含本次测试插入的二条记录 List <ModelX> list = Entity.From <ModelX>() .Where(m => m.IntField = 1978) // 下行代码指出结果需要包含哪些字段,只需要在语句中列出相应的属性即可,赋了什么值并不重要 .Select(m => { m.IntField = 0; m.StringField = null; }) .ToList(); Assert.IsNotNull(list); Assert.AreEqual(2, list.Count); Assert.AreEqual("12345", list[0].StringField); Assert.AreEqual("www", list[1].StringField); // 根据“IntField = 1978”来删除,应该删除2条记录 int rows = Entity.From <ModelX>().Where(m => m.IntField = 1978).Delete(); Assert.AreEqual(2, rows); // 再查询一次,应该是没有记录了 ModelX m3 = Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingle(); Assert.IsNull(m3); }
public static Object Load(String name) { String directory = Path.GetDirectoryName(name); EmxImporter importer = new EmxImporter(); ModelX model = null; using (Stream stream = ContentLoader.Current.Open(name + ".emx")) { model = importer.Import(stream, (fn) => { return(ContentLoader.Current.Open(Path.Combine(directory, fn))); }); } foreach (var set in model.MaterialsSets) { foreach (var material in set) { if (!String.IsNullOrWhiteSpace(material.Texture)) { Texture2D texture = ContentLoader.Current.Load <Texture2D>(Path.Combine(directory, material.Texture)); material.Textures = new MaterialTextures(texture); } } } IGraphicsDeviceService deviceService = ContentLoader.Current.GetService <IGraphicsDeviceService>(); model.PrepareForRender(deviceService.GraphicsDevice); return(model); }
public void UpdateEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = null; bool found = true; using (var connection = dbConnection) { connection.Open(); entity = connection.Get <ModelX>(2); entity.Prop1 = "ENTITY 2 UPDATED"; entity.Prop2 = "XXX"; entity.Prop4 = 10; found = connection.Update(entity); entity = connection.Get <ModelX>(2); connection.Close(); } Assert.True(found); Assert.NotNull(entity); Assert.Equal("ENTITY 2 UPDATED", entity.Prop1); Assert.Equal("CUSTOM VALUE", entity.Prop2); Assert.Equal(0, entity.Prop4); }
public void DeleteMany(IDbConnection dbConnection) { QueryHelper.FlushCache(); var entities = new List <ModelX>() { { new ModelX() { Prop1 = "ENTITY 10" } }, { new ModelX() { Prop1 = "ENTITY 11" } } }; bool found = false; ModelX entity1 = null; ModelX entity2 = null; using (var connection = dbConnection) { connection.Open(); connection.InsertMany <ModelX>(entities); found = connection.DeleteMany <ModelX>(entities); entity1 = connection.Get <ModelX>(entities.First().Id); entity2 = connection.Get <ModelX>(entities.Skip(1).First().Id); connection.Close(); } Assert.True(found); Assert.Null(entity1); Assert.Null(entity2); }
public void DeleteEntityByKeyTuple(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = new ModelX() { Prop1 = "ENTITY 10", Prop2 = "READONLY PROP", Prop4 = 10 }; bool found = false; using (var connection = dbConnection) { connection.Open(); connection.Insert(entity); var id = entity.Id; found = connection.Delete <ModelX>(ValueTuple.Create(id)); entity = connection.Get <ModelX>(id); connection.Close(); } Assert.True(found); Assert.Null(entity); }
public void InsertEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = new ModelX() { Prop1 = "ENTITY 3", Prop2 = "READONLY PROP", Prop4 = 10 }; using (var connection = dbConnection) { connection.Open(); var all = connection.GetAll <ModelX>(); var id = all.Select(e => e.Id).Max() + 1; connection.Insert(entity); Assert.Equal(id, entity.Id); entity = connection.Get <ModelX>(id); Assert.NotNull(entity); Assert.Equal("ENTITY 3", entity.Prop1); Assert.Equal("DEFAULT VALUE", entity.Prop2); Assert.Equal(0, entity.Prop4); connection.Close(); } }
private void UpdatePreview() { ModelX newModel = ApplyChanges(_model); if (_previewModel != null) { _previewModel.DisposeBuffers(); for (Int32 set = 0; set < _previewModel.MaterialsSetsCount; ++set) { foreach (var material in _previewModel.Materials(set)) { String texName = material.Texture; if (material.Textures != null) { material.Textures.Dispose(); } } } } _previewModel = newModel; LoadTextures(_previewModel, Path.GetDirectoryName(_importFile)); _preview.Model = _previewModel; _preview.MaterialSet = _currentSet; }
public async Task Test_属实体CUD_属性赋值风格_Async() { ShowCurrentThread(); // 注意: // 1、异步调用必须使用 DbContext,不能再使用 ConnectionScope 创建的作用域 // 2、代码中也不能再使用快捷的静态方法。 using (DbContext db = DbContext.Create()) { // 先删除之前测试可能遗留下来的数据 await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).DeleteAsync(); ShowCurrentThread(); // 插入一条记录,只给2个字段赋值 ModelX obj = db.Entity.BeginEdit <ModelX>(); obj.IntField = 1978; obj.StringField = "abc"; await obj.InsertAsync(); ShowCurrentThread(); // 检验刚才插入的数据行 ModelX m1 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync(); Assert.IsNotNull(m1); Assert.AreEqual("abc", m1.StringField); ShowCurrentThread(); // m1 进入编辑状态 m1 = db.Entity.BeginEdit(m1); m1.StringField = "12345"; int effect = await m1.UpdateAsync(); // 提交更新,WHERE过滤条件由主键字段决定 Assert.AreEqual(1, effect); ShowCurrentThread(); // 检验刚才更新的数据行 ModelX m2 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync(); Assert.IsNotNull(m2); Assert.AreEqual("12345", m2.StringField); ShowCurrentThread(); // 删除数据行 ModelX obj2 = db.Entity.BeginEdit <ModelX>(); obj2.IntField = 1978; effect = await obj2.DeleteAsync(); Assert.AreEqual(1, effect); ShowCurrentThread(); // 检验删除结果 ModelX m3 = await db.Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingleAsync(); Assert.IsNull(m3); ShowCurrentThread(); } }
public void InsertManySingleShot(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity1 = new ModelX() { Prop1 = "ENTITY 10" }; ModelX entity2 = new ModelX() { Prop1 = "ENTITY 11" }; var entities = new List <ModelX>() { { entity1 }, { entity2 } }; using (var connection = dbConnection) { connection.Open(); var all = connection.GetAll <ModelX>(); var lastId = all.Last().Id; var entity1Id = lastId + 1; var entity2Id = lastId + 2; var count = connection.InsertMany <ModelX>(entities, operationMode: OperationMode.SingleShot); Assert.Equal(entity1Id, entity1.Id); Assert.Equal(entity2Id, entity2.Id); Assert.Equal(2, count); entity1 = connection.Get <ModelX>(entity1Id); Assert.NotNull(entity1); Assert.Equal("ENTITY 10", entity1.Prop1); Assert.Equal("DEFAULT VALUE", entity1.Prop2); Assert.Equal(0, entity1.Prop4); entity2 = connection.Get <ModelX>(entity2Id); Assert.NotNull(entity2); Assert.Equal("ENTITY 11", entity2.Prop1); Assert.Equal("DEFAULT VALUE", entity2.Prop2); Assert.Equal(0, entity2.Prop4); connection.Close(); } }
private void LoadTextures(ModelX model, String directory) { for (Int32 set = 0; set < model.MaterialsSetsCount; ++set) { foreach (var material in model.Materials(set)) { String texName = material.Texture; if (material.Textures != null) { material.Textures.Dispose(); } if (String.IsNullOrWhiteSpace(texName)) { material.Textures = null; continue; } String fileName = Path.Combine(directory, texName); try { using (Stream stream = new FileStream(fileName, FileMode.Open)) { Texture2D texture = Texture2D.FromStream(_preview.GraphicsDevice, stream); material.Textures = new MaterialTextures(texture); } } catch { fileName = GetFileNameWithoutExtension(texName) + ".png"; fileName = Path.Combine(directory, fileName); try { using (Stream stream = new FileStream(fileName, FileMode.Open)) { Texture2D texture = Texture2D.FromStream(_preview.GraphicsDevice, stream); material.Textures = new MaterialTextures(texture); } } catch { material.Textures = null; } } } } }
private void importBtn_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.DefaultExt = "*.ply"; dlg.CheckFileExists = true; dlg.Filter = "Supported model files (*.obj, *.ply, *.emx)|*.obj;*.ply;*.emx|Polygon File Format(*.ply)|*.ply|Ebatiano's ModelX(*.emx)|*.emx"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { String ext = Path.GetExtension(dlg.FileName); foreach (var importer in _importers) { if (ext.ToLowerInvariant() == importer.SupportedFileExt) { using (Stream stream = dlg.OpenFile()) { try { _model = importer.Import(stream, (fname) => { return(new FileStream(Path.Combine(Path.GetDirectoryName(dlg.FileName), fname), FileMode.Open)); }); checkZisUp.Checked = _model.Up.Z > 0; _exportSize = OriginalSize; _importFile = dlg.FileName; _currentSet = 0; _currentMaterial = 0; FillAvaliableTextures(Path.GetDirectoryName(dlg.FileName)); UpdatePreview(); UpdateEdits(); UpdateCombos(); } catch (Exception ex) { MessageBox.Show(String.Format("Error while importing model:\n{0}", ex.ToString())); } } return; } } MessageBox.Show("No importer avaliable to open this file."); } }
public void UpdateMany(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity1 = null; ModelX entity2 = null; bool found = true; using (var connection = dbConnection) { connection.Open(); entity1 = connection.Get <ModelX>(1); entity2 = connection.Get <ModelX>(2); entity1.Prop1 = "ENTITY 1 UPDATED"; entity1.Prop2 = "XXX"; entity1.Prop4 = 10; entity2.Prop1 = "ENTITY 2 UPDATED"; entity2.Prop2 = "XXX"; entity2.Prop4 = 10; var entities = new List <ModelX>() { { entity1 }, { entity2 } }; found = connection.UpdateMany(entities as IEnumerable <ModelX>); entity1 = connection.Get <ModelX>(1); entity2 = connection.Get <ModelX>(2); connection.Close(); } Assert.True(found); Assert.NotNull(entity1); Assert.Equal("ENTITY 1 UPDATED", entity1.Prop1); Assert.Equal("DEFAULT VALUE", entity1.Prop2); Assert.Equal(0, entity1.Prop4); Assert.NotNull(entity2); Assert.Equal("ENTITY 2 UPDATED", entity2.Prop1); Assert.Equal("CUSTOM VALUE", entity2.Prop2); Assert.Equal(0, entity2.Prop4); }
public ActionResult Search(String key, Int32?pageIndex) { var name = RouteData.Values["modelName"] + ""; var model = ModelX.FindByName(name); var code = RouteData.Values["categoryCode"] + ""; var cat = Category.FindByCode(code); var pager = new Pager { PageIndex = pageIndex ?? 1, PageSize = PageSize }; var list = Info.Search(model != null ? model.ID : 0, cat != null ? cat.ID : 0, key, pager); return(View(list)); }
public ActionResult Index() { var name = RouteData.Values["modelName"] + ""; var model = ModelX.FindByName(name); // 选择模版 var tmp = model.IndexTemplate; if (tmp.IsNullOrEmpty() || !ViewExists(tmp)) { tmp = GetView("Index", model); } return(View(tmp, model)); }
public void GetNonExistingEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = null; using (var connection = dbConnection) { connection.Open(); entity = connection.Get <ModelX>(10); connection.Close(); } Assert.Null(entity); }
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { var name = values[parameterName] + ""; if (name.IsNullOrEmpty()) { return(false); } if (ModelX.FindByName(name) != null) { return(true); } return(false); }
public void NotExistsEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); bool exists = false; var key = new ModelX { Id = -1 }; using (var connection = dbConnection) { connection.Open(); exists = connection.Exists <ModelX>(key); connection.Close(); } Assert.False(exists); }
public void Test_属实体CUD_属性赋值风格() { // 先删除之前测试可能遗留下来的数据 Entity.From <ModelX>().Where(m => m.IntField = 1978).Delete(); // 插入一条记录,只给2个字段赋值 ModelX obj = Entity.BeginEdit <ModelX>(); obj.IntField = 1978; obj.StringField = "abc"; obj.Insert(); // 检验刚才插入的数据行 ModelX m1 = Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingle(); Assert.IsNotNull(m1); Assert.AreEqual("abc", m1.StringField); // m1 进入编辑状态 m1 = Entity.BeginEdit(m1); m1.StringField = "12345"; int effect = m1.Update(); // 提交更新,WHERE过滤条件由主键字段决定 Assert.AreEqual(1, effect); // 检验刚才更新的数据行 ModelX m2 = Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingle(); Assert.IsNotNull(m2); Assert.AreEqual("12345", m2.StringField); // 删除数据行 ModelX obj2 = Entity.BeginEdit(new ModelX()); obj2.IntField = 1978; effect = obj2.Delete(); Assert.AreEqual(1, effect); // 检验删除结果 ModelX m3 = Entity.From <ModelX>().Where(m => m.IntField = 1978).ToSingle(); Assert.IsNull(m3); }
public void GetEntityById(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = null; using (var connection = dbConnection) { connection.Open(); entity = connection.Get <ModelX>(1); connection.Close(); } Assert.NotNull(entity); Assert.Equal(1, entity.Id); Assert.Equal("ENTITY 1", entity.Prop1); Assert.Equal("DEFAULT VALUE", entity.Prop2); Assert.Equal(0, entity.Prop4); }
public void DeleteNonExistingEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = new ModelX() { Id = 10 }; bool found = false; using (var connection = dbConnection) { connection.Open(); found = connection.Delete(entity); connection.Close(); } Assert.False(found); }
public void UpdateEntityExcept(IDbConnection dbConnection) { QueryHelper.FlushCache(); Fixture fixture = new Fixture(); ModelX entity = fixture.Create <ModelX>(); entity.Prop2 = "DEFAULT VALUE"; entity.Id = 0; var originalEntity = entity; bool found = false; using (var connection = dbConnection) { connection.Open(); connection.Insert(entity); entity = connection.Get <ModelX>(entity.Id); entity.Prop1 = "TARGET UPDATE"; entity.Prop3 = "TARGET UPDATE"; found = connection.UpdateExcept(entity, new List <string>() { { "Prop1" } }); entity = connection.Get <ModelX>(entity.Id); connection.Close(); } Assert.True(found); Assert.NotNull(entity); Assert.NotSame(originalEntity, entity); Assert.Equal(originalEntity.Prop1, entity.Prop1); Assert.Equal(originalEntity.Prop2, entity.Prop2); Assert.NotEqual(originalEntity.Prop3, entity.Prop3); Assert.Equal("TARGET UPDATE", entity.Prop3); }
public void UpdateNonExistingEntity(IDbConnection dbConnection) { QueryHelper.FlushCache(); ModelX entity = new ModelX(); entity.Id = 10; entity.Prop1 = "ENTITY 10"; entity.Prop2 = "XXX"; entity.Prop4 = 10; bool found = true; using (var connection = dbConnection) { connection.Open(); found = connection.Update(entity); connection.Close(); } Assert.False(found); }
static void Main(string[] args) { int speed = 20; Console.WriteLine(); Console.WriteLine("Encapsulation"); ModelX modelx = new ModelX() { Year = 2019, Make = "Tesla", Model = "Model X", NumberOfWheels = 4, IsSuv = true, IsElectric = true }; Console.WriteLine($"{modelx.IsSuv}, ModelX class is instantiated"); Console.WriteLine(); Console.WriteLine("Inheritance"); modelx.Accelerate(speed); Console.WriteLine(); Console.WriteLine("Abstraction"); modelx.OpenFalconWingDoors(); Console.WriteLine(); Console.WriteLine("Polymorphism"); modelx.RegistrationFees(); Console.WriteLine(); Console.WriteLine("Garage"); Garage garage = new Garage(2, 0); garage.AddCar(modelx); garage.AddCar(modelx); garage.AddCar(modelx); }
private ModelX ApplyChanges(ModelX model) { Boolean swapZy = swapZyCheckBox.Checked; Boolean swapYz = swapYzCheckBox.Checked; Vector3 scale = _exportSize / OriginalSize; Vector3 move = Vector3.Zero; if (centerX.Checked) { move.X = -(_model.BoundA.X + _model.BoundB.X) / 2; } if (centerY.Checked) { move.Y = -(_model.BoundA.Y + _model.BoundB.Y) / 2; } if (centerZ.Checked) { move.Z = -(_model.BoundA.Z + _model.BoundB.Z) / 2; } if (layXz.Checked) { move.Y = -_model.BoundA.Y; } if (layXy.Checked) { move.Z = -_model.BoundA.Z; } if (Math.Abs(scale.X - scale.Y) > 0.0000001 || Math.Abs(scale.X - scale.Z) > 0.0000001) { throw new Exception("Niepoprawna wielkość modelu."); } VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[_model.Vertices.Length]; for (Int32 idx = 0; idx < vertices.Length; ++idx) { vertices[idx] = _model.Vertices[idx]; vertices[idx].Position = (vertices[idx].Position + move) * scale.X; if (swapZy || swapYz) { Single mul = swapYz ? -1 : 1; vertices[idx].Position = new Vector3(-vertices[idx].Position.X, vertices[idx].Position.Z, vertices[idx].Position.Y); vertices[idx].Normal = new Vector3(-vertices[idx].Normal.X, vertices[idx].Normal.Z, vertices[idx].Normal.Y); } } String newName; List <Material[]> materials = new List <Material[]>(); for (Int32 set = 0; set < _model.MaterialsSetsCount; ++set) { materials.Add(new Material[_model.Materials(set).Length]); Material[] newSet = materials.Last(); for (Int32 idx = 0; idx < newSet.Length; ++idx) { Material mat = _model.Materials(set)[idx]; newName = mat.Texture; newName = GetFileNameWithoutExtension(newName); if (newName != mat.Texture) { mat = new Material(newName, mat.Diffuse, mat.Ambient, mat.Specular, mat.SpecularExponent, mat.Emissive, mat.Opacity); } newSet[idx] = mat; } } ModelX modelX = new ModelX(materials, _model.Subsets, vertices); modelX.Up = checkZisUp.Checked ? new Vector3(0, 0, 1) : new Vector3(0, 1, 0); return(modelX); }
public static void Render(ModelX model, IShaderEffect effect, Vector3 ambientColor, int materialsSet) { GraphicsDevice device = model.VertexBuffer.GraphicsDevice; Material[] materials = model.Materials(materialsSet); device.SetVertexBuffer(model.VertexBuffer); for (int steps = 0; steps < 2; ++steps) { for (int idx = 0; idx < model.Subsets.Length; ++idx) { var subset = model.Subsets[idx]; Material material = materials[subset.Material]; if (steps == 0) { if (material.Opacity < 1) { continue; } } if (steps == 1) { if (material.Opacity == 1) { continue; } } device.Indices = subset.IndexBuffer; //// Draw the triangle. effect.DiffuseColor = material.Diffuse; effect.AmbientLightColor = ambientColor * material.Ambient; effect.SpecularColor = material.Specular; effect.EmissiveColor = material.Emissive; effect.Alpha = material.Opacity; MaterialTextures textures = material.Textures; effect.SpecularPower = material.SpecularExponent; Texture2D texture = textures != null ? textures.Diffuse : null; effect.Texture = texture; effect.TextureEnabled = texture != null; effect.Apply(0); int startIndex = 0; while (startIndex < subset.Indices.Length) { int primitiveCount = Math.Min((subset.Indices.Length - startIndex) / 3, 30000); device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, model.Vertices.Length, startIndex, primitiveCount); startIndex += primitiveCount * 3; } } } }
public static void DataComponentTest() { //ALM var model = new ModelX(); DCTExample.Execute(c => { #region 1 default //Create + Create to Edited model.StateEnum = ModelXState.Edited; model._Save(); DCTExample.Context.SaveChanges(); //Edited to Edited2 model.StateEnum = ModelXState.Edited2; model._Save(); DCTExample.Context.SaveChanges(); //Edited2 to Error model.StateEnum = ModelXState.Error; model._Save(); DCTExample.Context.SaveChanges(); #endregion #region 2 Create to Edited2 - error var model2 = new ModelX(); //Create + Create to Edited model2.StateEnum = ModelXState.Edited2; model2._Save(); DCTExample.Context.SaveChanges(); #endregion #region 3 Create to Error - error var model3 = new ModelX(); //Create + Create to Edited model3.StateEnum = ModelXState.Error; model3._Save(); DCTExample.Context.SaveChanges(); #endregion #region 4 Create to Edited var model4 = new ModelX(); //Create + Create to Edited model4.StateEnum = ModelXState.Edited; model4._Save(); DCTExample.Context.SaveChanges(); #endregion #region 5 Create to Edited2 var model5 = new ModelX(); //Create + Create to Edited model5.StateEnum = ModelXState.Edited; model5._Save(); DCTExample.Context.SaveChanges(); model5.StateEnum = ModelXState.Edited2; model5._Save(); DCTExample.Context.SaveChanges(); #endregion //Query var set = model._DbSet(); set = ModelX.DbSet(); set = DCTExample.Context.DbSet <ModelX>(); set = c.DbSet <ModelX>(); //Creators var visualModel = model._ConvertToServiceModel <ModelXService>(); }); }
public ModelX Import(Stream stream, OpenFileDelegate openFileDelegate) { return(ModelX.Load(stream)); }
public override void Execute() { #line 4 "..\..\Areas\Admin\Views\Index\_Left.cshtml" var user = ManageProvider.User; var fact = ObjectContainer.Current.Resolve <IMenuFactory>(); var Menus = fact.Root.Childs; if (user != null && user.Role != null) { Menus = fact.GetMySubMenus(fact.Root.ID); } // 如果顶级只有一层,并且至少有三级目录,则提升一级 if (Menus.Count == 1 && Menus[0].Childs.All(m => m.Childs.Count > 0)) { Menus = Menus[0].Childs; } String[] icos = new String[] { "fa-tachometer", "fa-desktop", "fa-list", "fa-pencil-square-o", "fa-list-alt", "fa-calendar", "fa-picture-o", "fa-tag", "fa-file-o" }; Int32 _idx = 0; #line default #line hidden WriteLiteral("\r\n<ul"); WriteLiteral(" class=\"nav nav-list\""); WriteLiteral(">\r\n"); #line 22 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden #line 22 "..\..\Areas\Admin\Views\Index\_Left.cshtml" foreach (IMenu menu in Menus.Where(m => m.Visible)) { var childs = fact.GetMySubMenus(menu.ID).Where(m => m.Visible); if (_idx >= icos.Length) { _idx = 0; } #line default #line hidden WriteLiteral(" <li "); #line 26 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(Html.Raw(menu == Menus[0] ? "class=\"active open\"" : "")); #line default #line hidden WriteLiteral(">\r\n <a"); WriteLiteral(" href=\"#\""); WriteLiteral(" class=\"dropdown-toggle\""); WriteLiteral(">\r\n <i"); WriteAttribute("class", Tuple.Create(" class=\"", 1009), Tuple.Create("\"", 1043) , Tuple.Create(Tuple.Create("", 1017), Tuple.Create("menu-icon", 1017), true) , Tuple.Create(Tuple.Create(" ", 1026), Tuple.Create("fa", 1027), true) #line 28 "..\..\Areas\Admin\Views\Index\_Left.cshtml" , Tuple.Create(Tuple.Create(" ", 1029), Tuple.Create <System.Object, System.Int32>(icos[_idx++] #line default #line hidden , 1030), false) ); WriteLiteral("></i>\r\n <span"); WriteLiteral(" class=\"menu-text\""); WriteLiteral(">"); #line 29 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(menu.DisplayName); #line default #line hidden WriteLiteral("</span>\r\n\r\n <b"); WriteLiteral(" class=\"arrow fa fa-angle-down\""); WriteLiteral("></b>\r\n </a>\r\n"); #line 33 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden #line 33 "..\..\Areas\Admin\Views\Index\_Left.cshtml" if (childs.Any()) { #line default #line hidden WriteLiteral(" <b"); WriteLiteral(" class=\"arrow\""); WriteLiteral("></b>\r\n"); #line 36 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden WriteLiteral(" <ul"); WriteLiteral(" class=\"submenu\""); WriteLiteral(">\r\n"); #line 38 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden #line 38 "..\..\Areas\Admin\Views\Index\_Left.cshtml" foreach (IMenu menu2 in childs) { #line default #line hidden #line 40 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(Html.Partial("_Left_Item", menu2)); #line default #line hidden #line 40 "..\..\Areas\Admin\Views\Index\_Left.cshtml" ; } #line default #line hidden WriteLiteral(" </ul>\r\n"); #line 43 "..\..\Areas\Admin\Views\Index\_Left.cshtml" } #line default #line hidden WriteLiteral(" </li>\r\n"); #line 45 "..\..\Areas\Admin\Views\Index\_Left.cshtml" } #line default #line hidden WriteLiteral(" "); WriteLiteral("\r\n"); #line 47 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden #line 47 "..\..\Areas\Admin\Views\Index\_Left.cshtml" foreach (var mod in ModelX.GetAll()) { // 判断是否有权访问该频道 var res = "CMS\\" + mod.Name; //if (!user.Has(res) && !user.Has(res + "Category")) { continue; } //if (!user.Has(res)) { continue; } if (_idx >= icos.Length) { _idx = 0; } #line default #line hidden WriteLiteral(" <li>\r\n <a"); WriteLiteral(" href=\"#\""); WriteLiteral(" class=\"dropdown-toggle\""); WriteLiteral(">\r\n <i"); WriteAttribute("class", Tuple.Create(" class=\"", 1924), Tuple.Create("\"", 1958) , Tuple.Create(Tuple.Create("", 1932), Tuple.Create("menu-icon", 1932), true) , Tuple.Create(Tuple.Create(" ", 1941), Tuple.Create("fa", 1942), true) #line 56 "..\..\Areas\Admin\Views\Index\_Left.cshtml" , Tuple.Create(Tuple.Create(" ", 1944), Tuple.Create <System.Object, System.Int32>(icos[_idx++] #line default #line hidden , 1945), false) ); WriteLiteral("></i>\r\n <span"); WriteLiteral(" class=\"menu-text\""); WriteLiteral(">"); #line 57 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(mod.ToString()); #line default #line hidden WriteLiteral("</span>\r\n\r\n <b"); WriteLiteral(" class=\"arrow fa fa-angle-down\""); WriteLiteral("></b>\r\n </a>\r\n\r\n <b"); WriteLiteral(" class=\"arrow\""); WriteLiteral("></b>\r\n\r\n <ul"); WriteLiteral(" class=\"submenu\""); WriteLiteral(">\r\n <li>\r\n <a"); WriteAttribute("href", Tuple.Create(" href=\"", 2223), Tuple.Create("\"", 2252) , Tuple.Create(Tuple.Create("", 2230), Tuple.Create <System.Object, System.Int32>(Href("~/CMS/Info/Mod/") , 2230), false) #line 66 "..\..\Areas\Admin\Views\Index\_Left.cshtml" , Tuple.Create(Tuple.Create("", 2245), Tuple.Create <System.Object, System.Int32>(mod.ID #line default #line hidden , 2245), false) ); WriteLiteral(" target=\"main\""); WriteLiteral(">\r\n <i"); WriteLiteral(" class=\"menu-icon fa fa-caret-right\""); WriteLiteral("></i>\r\n"); WriteLiteral(" "); #line 68 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(mod); #line default #line hidden WriteLiteral(" 管理\r\n </a>\r\n </li>\r\n"); #line 71 "..\..\Areas\Admin\Views\Index\_Left.cshtml" #line default #line hidden #line 71 "..\..\Areas\Admin\Views\Index\_Left.cshtml" foreach (ICategory cat2 in mod.GetTopCategories()) { #line default #line hidden #line 73 "..\..\Areas\Admin\Views\Index\_Left.cshtml" Write(Html.Partial("_Left_Category", cat2)); #line default #line hidden #line 73 "..\..\Areas\Admin\Views\Index\_Left.cshtml" ; } #line default #line hidden WriteLiteral(" </ul>\r\n </li>\r\n"); #line 77 "..\..\Areas\Admin\Views\Index\_Left.cshtml" } #line default #line hidden WriteLiteral("</ul>\r\n<!-- /.nav-list -->\r\n"); }
public void Export(Stream stream, ModelX model) { model.Save(stream); }