private void AddDefaultData() { int optionscount = _project3Context.Options.Count(); if (optionscount > 0) { return; } //添加管理员用户 var adminuser = new Users(); adminuser.username = "******"; adminuser.password = MD5Extension.PassEncrypt("admin"); _project3Context.Users.Add(adminuser); //添加默认设置 var data = new OptionsModel(); Type t = data.GetType(); foreach (var pi in t.GetProperties()) { object value = pi.GetValue(data); string name = pi.Name; var option = new Options(); option.name = name; option.value = value != null?value.ToString() : ""; _project3Context.Options.Add(option); } _project3Context.SaveChanges(); }
public Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } if (bindingContext.ModelType != typeof(OptionsModel)) { return(Task.CompletedTask); } var parameters = new Dictionary <string, string>(); foreach (var parameter in bindingContext.ModelType.GetProperties()) { var valueProviderResult = bindingContext.ValueProvider.GetValue(parameter.Name); if (valueProviderResult.FirstValue != null) { parameters.Add(parameter.Name, valueProviderResult.FirstValue); } } var result = new OptionsModel(); PropertyInfo[] properties = result.GetType().GetProperties(); foreach (var property in properties) { if (!parameters.Any(p => p.Key.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase))) { continue; } KeyValuePair <string, string> parameter = parameters.First(p => p.Key.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)); Type propertyType = result.GetType().GetProperty(property.Name).PropertyType; Type newType = Nullable.GetUnderlyingType(propertyType) ?? propertyType; object newObject = Convert.ChangeType(parameter.Value, newType); result.GetType().GetProperty(property.Name).SetValue(result, newObject, null); } bindingContext.Result = ModelBindingResult.Success(result); return(Task.CompletedTask); }
/// <summary> /// 是否存在配置项名 /// </summary> /// <param name="name"></param> /// <returns></returns> private bool IsHasOptionName(string name) { var data = new OptionsModel(); Type t = data.GetType(); foreach (var pi in t.GetProperties()) { if (pi.Name == name) { return(true); } } return(false); }
public async Task <OptionsModel> GetAsync() { var data = new OptionsModel(); Type t = data.GetType(); foreach (var pi in t.GetProperties()) { string name = pi.Name; var option = await _project3DB.Options.Where(m => m.name == name).SingleOrDefaultAsync(); if (option != null) { pi.SetValue(data, option.value); } } return(data); }
/// <summary> /// Convert RelationshipDetails to JSON /// </summary> /// <param name="th"></param> /// <returns></returns> public static string ToJSON(this OptionsModel th) { th.Options = th.Options.OrderBy(o => o.DisplayName).ToArray(); using (MemoryStream memoryStream = new MemoryStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(th.GetType()); serializer.WriteObject(memoryStream, th); return(Encoding.UTF8.GetString(memoryStream.ToArray())); } }