Example #1
0
        /// <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() }));
        }
Example #3
0
 /// <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);
     }
 }
Example #4
0
        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());
        }
Example #5
0
 /// <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);
     }
 }