/// <summary> /// 关联其他表 /// </summary> /// <returns></returns> public ActionResult LookUp(LookUpParameter parameter) { LookUpModel model = new LookUpModel(); model.Parameter = parameter; return(View()); }
public ActionResult Save(LookUpModel model) { if (model.Id == 0) { switch (model.Type) { case LookUpType.Category: var category = new Category(); category.CreatedDate = DateTime.Now; category.Name = model.Name; category.Status = 1; category.Detail = model.Detail; db.Categories.Add(category); break; case LookUpType.Type: var type = new StarTrack.Dashboard.Models.Type(); type.CreateDate = DateTime.Now; type.Name = model.Name; type.Status = 1; type.Detail = model.Detail; db.Types.Add(type); break; case LookUpType.Department: var department = new Department(); department.CreateDate = DateTime.Now; department.Name = model.Name; department.Status = 1; department.Detail = model.Detail; db.Departments.Add(department); break; default: break; } } else { switch (model.Type) { case LookUpType.Category: var category = db.Categories.Find(model.Id); db.Entry(category).State = EntityState.Modified; category.Name = model.Name; category.Detail = model.Detail; break; case LookUpType.Type: var type = db.Types.Find(model.Id); type.Name = model.Name; type.Detail = model.Detail; db.Entry(type).State = EntityState.Modified; break; case LookUpType.Department: var department = db.Departments.Find(model.Id); department.Name = model.Name; department.Detail = model.Detail; db.Entry(department).State = EntityState.Modified; break; default: break; } } db.SaveChanges(); return(RedirectToAction("Index", new { id = model.Type.ToString() })); }
/// <summary> /// DataTable转List /// </summary> /// <typeparam name="T">模板</typeparam> /// <param name="dt">DataTable</param> /// <param name="model">数据</param> /// <returns></returns> public static List <T> ToModelList <T>(this DataTable dt) where T : new () { try { if (dt == null || dt.Rows.Count == 0) { return(new List <T>()); } List <T> ts = new List <T>(); Type type = typeof(T); string tempName = string.Empty; if (dt.Columns.IndexOf("Sno") <= -1) { dt.Columns.Add("Sno", typeof(int)); } int index = 1; foreach (DataRow dr in dt.Rows) { dr["Sno"] = index; T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { tempName = pi.Name; if (dt.Columns.Contains(tempName)) { if (!pi.CanWrite) { continue; } object value = dr[tempName]; if (value is DBNull) { continue; } if (pi.PropertyType.Name.ToLower() == "string") { if (value.GetType().Name.ToLower() == "guid") { pi.SetValue(t, value.ToString(), null); } else if (value.GetType().Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss"), null); } else { if (dt.Columns[tempName].Caption.ToLower() == tempName.ToLower()) { pi.SetValue(t, Convert.ToString(value), null); } else if (dt.Columns[tempName].Caption == Constants.EncryptColoumn) { pi.SetValue(t, WuYao.AesDecrypt(Convert.ToString(value)), null); } else if (dt.Columns[tempName].Caption == Constants.DecryptColoumn) { pi.SetValue(t, WuYao.AesEncrypt(Convert.ToString(value)), null); } else { pi.SetValue(t, Convert.ToString(value), null); } } } else if (pi.PropertyType.Name.ToLower() == "lookupmodel") { if (dt.Columns.Contains(string.Concat(tempName, "Name"))) { object valuename = dr[string.Concat(tempName, "Name")]; LookUpModel lum = new LookUpModel(); if (valuename != DBNull.Value) { lum.Id = Convert.ToString(value); lum.Name = Convert.ToString(valuename); pi.SetValue(t, lum, null); } else { pi.SetValue(t, lum, null); //throw new Exception(string.Format("The value of column '{0}' is null!", string.Concat(tempName, "Name"))); } } else { throw new Exception(string.Format("The column '{0}' dose not exist!", string.Concat(tempName, "Name"))); } } else if (pi.PropertyType.Name.ToLower() == "int32" || pi.PropertyType.Name.ToLower() == "nullable`1") { pi.SetValue(t, Convert.ToInt32(value), null); } else if (pi.PropertyType.Name.ToLower() == "decimal") { pi.SetValue(t, Convert.ToDecimal(value), null); } else if (pi.PropertyType.Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value), null); } else if (pi.PropertyType.Name.ToLower() == "boolean") { pi.SetValue(t, Convert.ToBoolean(value), null); } else if (pi.PropertyType.Name.ToLower() == "guid") { pi.SetValue(t, Guid.Parse(value.ToString()), null); } } } ts.Add(t); index++; } return(ts); } catch (Exception ex) { throw new Exception(ex.Message, ex); } }
public void Map_Returns_Valid_Model() { var mappingMapperMock = new Mock <IMapper <ValidityFundingMappingLookupModel, Models.ValidityFundingMappingLookupModel> >(); mappingMapperMock .Setup(m => m.Map(It.IsAny <ValidityFundingMappingLookupModel>())) .Returns(new Models.ValidityFundingMappingLookupModel()); var validityMapperMock = new Mock <IMapper <ValidityCategoryLookupModel, Models.ValidityCategoryLookupModel> >(); validityMapperMock .Setup(m => m.Map(It.IsAny <ValidityCategoryLookupModel>())) .Returns(new Models.ValidityCategoryLookupModel()); var academicYearLookupMapperMock = new Mock <IMapper <AcademicYearLookupModel, Models.AcademicYearLookupModel> >(); academicYearLookupMapperMock .Setup(m => m.Map(It.IsAny <AcademicYearLookupModel>())) .Returns(new Models.AcademicYearLookupModel()); var nvqMapperMock = new Mock <IMapper <NotionalNVQLevel2LookupModel, Models.NotionalNVQLevel2Model> >(); nvqMapperMock .Setup(m => m.Map(It.IsAny <NotionalNVQLevel2LookupModel>())) .Returns(new Models.NotionalNVQLevel2Model()); var awardingBodyMapperMock = new Mock <IMapper <AwardingBodyLookupModel, Models.AwardingBodyLookupModel> >(); awardingBodyMapperMock .Setup(m => m.Map(It.IsAny <AwardingBodyLookupModel>())) .Returns(new Models.AwardingBodyLookupModel()); var frameworkTypeMapperMock = new Mock <IMapper <FrameworkTypeLookupModel, Models.FrameworkTypeLookupModel> >(); frameworkTypeMapperMock .Setup(m => m.Map(It.IsAny <FrameworkTypeLookupModel>())) .Returns(new Models.FrameworkTypeLookupModel()); var issuingAuthorityMapperMock = new Mock <IMapper <IssuingAuthorityLookupModel, Models.IssuingAuthorityLookupModel> >(); issuingAuthorityMapperMock .Setup(m => m.Map(It.IsAny <IssuingAuthorityLookupModel>())) .Returns(new Models.IssuingAuthorityLookupModel()); var standardSectorCodeMapperMock = new Mock <IMapper <StandardSectorLookupModel, Models.StandardSectorLookupModel> >(); standardSectorCodeMapperMock .Setup(m => m.Map(It.IsAny <StandardSectorLookupModel>())) .Returns(new Models.StandardSectorLookupModel()); var sectorSubjectAreaTier1Mock = new Mock <IMapper <SectorSubjectAreaTier1LookupModel, Models.SectorSubjectAreaTier1LookupModel> >(); sectorSubjectAreaTier1Mock .Setup(m => m.Map(It.IsAny <SectorSubjectAreaTier1LookupModel>())) .Returns(new Models.SectorSubjectAreaTier1LookupModel()); var model = new LookUpModel { LookUpKey = "1", NotionalNvqLevel2Lookups = new List <NotionalNVQLevel2LookupModel> { new NotionalNVQLevel2LookupModel() }, AcademicYearLookups = new List <AcademicYearLookupModel> { new AcademicYearLookupModel() }, ValidityCategoryLookups = new List <ValidityCategoryLookupModel> { new ValidityCategoryLookupModel() }, ValidityFundingMappingLookups = new List <ValidityFundingMappingLookupModel> { new ValidityFundingMappingLookupModel() }, AwardingBodyLookups = new List <AwardingBodyLookupModel> { new AwardingBodyLookupModel() }, FrameworkTypeLookups = new List <FrameworkTypeLookupModel> { new FrameworkTypeLookupModel() }, IssuingAuthorityLookups = new List <IssuingAuthorityLookupModel> { new IssuingAuthorityLookupModel() }, StandardSectorLookups = new List <StandardSectorLookupModel> { new StandardSectorLookupModel() }, SectorSubjectAreaTier1Lookups = new List <SectorSubjectAreaTier1LookupModel> { new SectorSubjectAreaTier1LookupModel() } }; var mapper = new AzureLookupMapper( academicYearLookupMapperMock.Object, nvqMapperMock.Object, mappingMapperMock.Object, validityMapperMock.Object, awardingBodyMapperMock.Object, frameworkTypeMapperMock.Object, issuingAuthorityMapperMock.Object, standardSectorCodeMapperMock.Object, sectorSubjectAreaTier1Mock.Object); var result = mapper.Map(model); result.LookUpKey.Should().Be(model.LookUpKey); result.NotionalNvqLevel2Lookups.Should().HaveCount(model.NotionalNvqLevel2Lookups.Count()); result.AcademicYearLookups.Should().HaveCount(model.AcademicYearLookups.Count()); result.AwardingBodyLookups.Should().HaveCount(model.AwardingBodyLookups.Count()); result.ValidityCategoryLookups.Should().HaveCount(model.ValidityCategoryLookups.Count()); result.ValidityFundingMappingLookups.Should().HaveCount(model.ValidityFundingMappingLookups.Count()); result.FrameworkTypeLookups.Should().HaveCount(model.FrameworkTypeLookups.Count()); result.IssuingAuthorityLookups.Should().HaveCount(model.IssuingAuthorityLookups.Count()); result.StandardSectorLookups.Should().HaveCount(model.StandardSectorLookups.Count()); }
/// <summary> /// 根据Model自动填充TableModel /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="obj"></param> public static void FillTableWithModel <T>(this object model, T t) where T : BaseModel { try { if (model == null) { throw new Exception("model is null!"); } if (t == null) { throw new Exception("obj is null!"); } var mType = model.GetType(); var objType = t.GetType(); var piList = objType.GetProperties(); foreach (var pi in piList) { if (pi == null || pi.IsSpecialName) { continue; } if (!pi.CanWrite) { continue; } PropertyInfo mPi = mType.GetProperty(pi.Name); if (mPi == null) { continue; } if (!mPi.CanRead) { continue; } object value = mPi.GetValue(model, null); if (value == null) { continue; } if (pi.PropertyType.Name.ToLower() == "string") { if (value.GetType().Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss"), null); } else { pi.SetValue(t, Convert.ToString(value), null); } } else if (pi.PropertyType.Name.ToLower() == "int32" || pi.PropertyType.Name.ToLower() == "nullable`1") { pi.SetValue(t, Convert.ToInt32(value), null); } else if (pi.PropertyType.Name.ToLower() == "decimal") { pi.SetValue(t, Convert.ToDecimal(value), null); } else if (pi.PropertyType.Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value), null); } else if (pi.PropertyType.Name.ToLower() == "boolean") { pi.SetValue(t, Convert.ToBoolean(value), null); } else if (pi.PropertyType.Name.ToLower() == "guid") { if (mPi.PropertyType.Name.ToLower() == "lookupmodel") { LookUpModel lookUp = value as LookUpModel; if (!string.IsNullOrEmpty(lookUp.Id)) { pi.SetValue(t, Guid.Parse(lookUp.Id), null); } } else { pi.SetValue(t, Guid.Parse(value.ToString()), null); } } } } catch (Exception ex) { throw new Exception(ex.Message, ex); } }