public SqlTemplatesBenchmark() { var mappers = new MapperCollection(); var factory = new FluentPocoDataFactory((type, iPocoDataFactory) => new PocoDataBuilder(type, mappers).Init(), mappers); SqlContext = new SqlContext(new SqlServerSyntaxProvider(Options.Create(new GlobalSettings())), DatabaseType.SQLCe, factory); SqlTemplates = new SqlTemplates(SqlContext); }
public void FluentConfigShouldBePlacedOnDatabaseWhenInsertedIntoFactoryConfig() { var db = new Database(new SqlConnection()); var mapperCollection = new MapperCollection(); var pocoDataFactory = new FluentPocoDataFactory((y, f) => new PocoDataBuilder(y, mapperCollection).Init(), mapperCollection); var fluentConfig = new FluentConfig(x => pocoDataFactory); var factory = DatabaseFactory.Config(x => { x.UsingDatabase(() => db); x.WithFluentConfig(fluentConfig); }); var database = factory.GetDatabase(); Assert.AreEqual(fluentConfig.Config(null), database.PocoDataFactory); }
private void MockForGetPagedUsers() { Mock.Get(Current.SqlContext) .Setup(x => x.Query <IUser>()) .Returns(new Query <IUser>(Current.SqlContext)); var syntax = new SqlCeSyntaxProvider(); Mock.Get(Current.SqlContext) .Setup(x => x.SqlSyntax) .Returns(syntax); var mappers = new MapperCollection(new [] { new UserMapper() }); Mock.Get(Current.SqlContext) .Setup(x => x.Mappers) .Returns(mappers); }
private void MockForGetPagedUsers() { Mock.Get(Current.SqlContext) .Setup(x => x.Query <IUser>()) .Returns(new Query <IUser>(Current.SqlContext)); var syntax = new SqlCeSyntaxProvider(); Mock.Get(Current.SqlContext) .Setup(x => x.SqlSyntax) .Returns(syntax); var mappers = new MapperCollection(new [] { new UserMapper(new Lazy <ISqlContext>(() => Current.SqlContext), new ConcurrentDictionary <Type, ConcurrentDictionary <string, string> >()) }); Mock.Get(Current.SqlContext) .Setup(x => x.Mappers) .Returns(mappers); }
public PocoDataBuilder(Type type, MapperCollection mapper) { Type = type; Mapper = mapper; }
private IEnumerable<PocoMemberPlan> GetPocoMembers(MapperCollection mapper, ColumnInfo[] columnInfos, List<MemberInfo> memberInfos, string prefix = null) { var capturedMembers = memberInfos.ToArray(); var capturedPrefix = prefix; foreach (var columnInfo in columnInfos) { if (columnInfo.IgnoreColumn) continue; var memberInfoType = columnInfo.MemberInfo.GetMemberInfoType(); if (columnInfo.ReferenceType == ReferenceType.Many) { var genericArguments = memberInfoType.GetGenericArguments(); memberInfoType = genericArguments.Any() ? genericArguments.First() : memberInfoType.GetTypeWithGenericTypeDefinitionOf(typeof(IList<>)).GetGenericArguments().First(); } var childrenPlans = new PocoMemberPlan[0]; TableInfoPlan childTableInfoPlan = null; var members = new List<MemberInfo>(capturedMembers) { columnInfo.MemberInfo }; if (columnInfo.ComplexMapping || columnInfo.ReferenceType != ReferenceType.None) { if (capturedMembers.GroupBy(x => x.GetMemberInfoType()).Any(x => x.Count() >= 2)) { continue; } var childColumnInfos = GetColumnInfos(memberInfoType); if (columnInfo.ReferenceType != ReferenceType.None) { childTableInfoPlan = GetTableInfo(memberInfoType, childColumnInfos, members); } var newPrefix = JoinStrings(capturedPrefix, columnInfo.ReferenceType != ReferenceType.None ? "" : (columnInfo.ComplexPrefix ?? columnInfo.MemberInfo.Name)); childrenPlans = GetPocoMembers(mapper, childColumnInfos, members, newPrefix).ToArray(); } MemberInfo capturedMemberInfo = columnInfo.MemberInfo; ColumnInfo capturedColumnInfo = columnInfo; var accessors = GetMemberAccessors(members); var memberType = capturedMemberInfo.GetMemberInfoType(); var isList = IsList(capturedMemberInfo); var listType = GetListType(memberType, isList); var isDynamic = capturedMemberInfo.IsDynamic(); var fastCreate = GetFastCreate(memberType, mapper, isList, isDynamic); var columnName = GetColumnName(capturedPrefix, capturedColumnInfo.ColumnName ?? capturedMemberInfo.Name); var memberInfoData = new MemberInfoData(capturedMemberInfo); yield return tableInfo => { var pc = new PocoColumn { ReferenceType = capturedColumnInfo.ReferenceType, TableInfo = tableInfo, MemberInfoData = memberInfoData, MemberInfoChain = members, ColumnName = columnName, ResultColumn = capturedColumnInfo.ResultColumn, ForceToUtc = capturedColumnInfo.ForceToUtc, ComputedColumn = capturedColumnInfo.ComputedColumn, ComputedColumnType = capturedColumnInfo.ComputedColumnType, ColumnType = capturedColumnInfo.ColumnType, ColumnAlias = capturedColumnInfo.ColumnAlias, VersionColumn = capturedColumnInfo.VersionColumn, VersionColumnType = capturedColumnInfo.VersionColumnType, SerializedColumn = capturedColumnInfo.SerializedColumn }; pc.SetMemberAccessors(accessors); var childrenTableInfo = childTableInfoPlan == null ? tableInfo : childTableInfoPlan(); var children = childrenPlans.Select(plan => plan(childrenTableInfo)).ToList(); // Cascade ResultColumn down foreach (var child in children.Where(child => child.PocoColumn != null && pc.ResultColumn)) { child.PocoColumn.ResultColumn = true; } var pocoMember = new PocoMember() { MemberInfoData = memberInfoData, MemberInfoChain = members, IsList = isList, IsDynamic = isDynamic, PocoColumn = capturedColumnInfo.ComplexMapping ? null : pc, ReferenceType = capturedColumnInfo.ReferenceType, ReferenceMemberName = capturedColumnInfo.ReferenceMemberName, PocoMemberChildren = children, }; pocoMember.SetMemberAccessor(accessors[accessors.Count - 1], fastCreate, listType); return pocoMember; }; } }
private static FastCreate GetFastCreate(Type memberType, MapperCollection mapperCollection, bool isList, bool isDynamic) { return memberType.IsAClass() || isDynamic ? (new FastCreate(isList ? (memberType.GetGenericArguments().Any() ? memberType.GetGenericArguments().First() : memberType.GetTypeWithGenericTypeDefinitionOf(typeof(IList<>)).GetGenericArguments().First()) : memberType, mapperCollection)) : null; }
public DynamicPocoMember(MapperCollection mapperCollection) { _mapperCollection = mapperCollection; }
public UmbracoPocoDataBuilder(Type type, MapperCollection mapper, bool upgrading) : base(type, mapper) { _upgrading = upgrading; }
public FluentMappingsPocoDataBuilder(Type type, Mappings mappings, MapperCollection mapper) : base(type, mapper) { _mappings = mappings; }
private static FastCreate GetFastCreate(Type memberType, MapperCollection mapperCollection, bool isList, bool isDynamic) { return memberType.IsAClass() || isDynamic ? (new FastCreate(isList ? memberType.GetGenericArguments().First() : memberType, mapperCollection)) : null; }
public PocoDataFactory(MapperCollection mapper) { _mapper = mapper; }
public PocoData(Type type, MapperCollection mapper) : this() { Type = type; Mapper = mapper; }
public async System.Threading.Tasks.Task GetCurrentUser_Fips() { ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) { //setup some mocks var userServiceMock = Mock.Get(Current.Services.UserService); userServiceMock.Setup(service => service.GetUserById(It.IsAny <int>())) .Returns(() => null); if (Thread.GetDomain().GetData(".appPath") != null) { HttpContext.Current = new HttpContext(new SimpleWorkerRequest("", "", new StringWriter())); } else { var baseDir = Current.IOHelper.MapPath("", false).TrimEnd(Current.IOHelper.DirSepChar); HttpContext.Current = new HttpContext(new SimpleWorkerRequest("/", baseDir, "", "", new StringWriter())); } Current.IOHelper.ForceNotHosted = true; var usersController = new AuthenticationController( Factory.GetInstance <IGlobalSettings>(), umbracoContextAccessor, Factory.GetInstance <ISqlContext>(), Factory.GetInstance <ServiceContext>(), Factory.GetInstance <AppCaches>(), Factory.GetInstance <IProfilingLogger>(), Factory.GetInstance <IRuntimeState>(), helper); return(usersController); } Mock.Get(Current.SqlContext) .Setup(x => x.Query <IUser>()) .Returns(new Query <IUser>(Current.SqlContext)); var syntax = new SqlCeSyntaxProvider(); Mock.Get(Current.SqlContext) .Setup(x => x.SqlSyntax) .Returns(syntax); var mappers = new MapperCollection(new[] { new UserMapper(new Lazy <ISqlContext>(() => Current.SqlContext), new ConcurrentDictionary <Type, ConcurrentDictionary <string, string> >()) }); Mock.Get(Current.SqlContext) .Setup(x => x.Mappers) .Returns(mappers); // Testing what happens if the system were configured to only use FIPS-compliant algorithms var typ = typeof(CryptoConfig); var flds = typ.GetFields(BindingFlags.Static | BindingFlags.NonPublic); var haveFld = flds.FirstOrDefault(f => f.Name == "s_haveFipsAlgorithmPolicy"); var isFld = flds.FirstOrDefault(f => f.Name == "s_fipsAlgorithmPolicy"); var originalFipsValue = CryptoConfig.AllowOnlyFipsAlgorithms; try { if (!originalFipsValue) { haveFld.SetValue(null, true); isFld.SetValue(null, true); } var runner = new TestRunner(CtrlFactory); var response = await runner.Execute("Authentication", "GetCurrentUser", HttpMethod.Get); var obj = JsonConvert.DeserializeObject <UserDetail>(response.Item2); Assert.AreEqual(-1, obj.UserId); } finally { if (!originalFipsValue) { haveFld.SetValue(null, false); isFld.SetValue(null, false); } } }
/// <summary> /// 初始化一个<see cref="AppBootProgram" />实例 /// </summary> public AppBootProgram() { _assemblyFinder = new AssemblyFinder(); ServiceCollection = new ServiceCollection(); MapperCollection = new MapperCollection(); }
public DynamicPocoMember(MapperCollection mapperCollection) { this._mapperCollection = mapperCollection; }
public FastCreate(Type type, MapperCollection mapperCollection) { _type = type; _mapperCollection = mapperCollection; CreateDelegate = GetCreateDelegate(); }