public PushMethodArguments(IAdapterBuilder adapterBuilder, IAdaptParameter pushParameter, IExtractionContext extractionContext) { _adapterBuilder = adapterBuilder; _pushParameter = pushParameter; _context = extractionContext; }
/// <summary> /// Sets the transporter adapter to <see cref="WebRTCAdapter"/>. /// </summary> public static WebRTCAdapterBuilder WithWebRTCAdapter(this IAdapterBuilder adapterBuilder) { return(new WebRTCAdapterBuilder(new WebRTCAdapterInfo() { builder = adapterBuilder as ResonanceTransporterBuilder })); }
/// <summary> /// Inject Logger and Line Channel Manager /// </summary> /// <param name="logger">Logger Instance</param> /// <param name="adapterAccessor">Adapter Service Resolver</param> public LineAdapterController(ILogger <LineAdapterController> logger, AdapterServiceResolver adapterAccessor) { if (adapterAccessor == null) { throw new ArgumentNullException(nameof(adapterAccessor)); } _logger = logger; _lineAdapter = adapterAccessor(ChannelType.Line); }
/// <summary> /// Inject Logger and MessageBird Adapter Instance /// </summary> /// <param name="logger">Logger Instance</param> /// <param name="adapterAccessor">Adapter Service Resolver</param> public MessageBirdAdapterController(ILogger <MessageBirdAdapterController> logger, AdapterServiceResolver adapterAccessor) { if (adapterAccessor == null) { throw new ArgumentNullException(nameof(adapterAccessor)); } _logger = logger; _messageBirdAdapter = adapterAccessor(ChannelType.MessageBird); }
public static IQueryable <TDestination> ProjectToType <TDestination>(this IAdapterBuilder <IQueryable> source) { var queryable = source.Source.ProjectToType <TDestination>(source.Config); if (!source.HasParameter || source.Parameters.All(it => it.Key.StartsWith("Mapster."))) { return(new MapsterQueryable <TDestination>(queryable, source)); } var call = (MethodCallExpression)queryable.Expression; var project = call.Arguments[1]; var mapContext = typeof(MapContext); var current = mapContext.GetProperty(nameof(MapContext.Current), BindingFlags.Public | BindingFlags.Static); var properties = mapContext.GetProperty(nameof(MapContext.Parameters), BindingFlags.Public | BindingFlags.Instance); var item = typeof(Dictionary <string, object>) .GetProperty("Item", BindingFlags.Public | BindingFlags.Instance) ! .GetMethod; var map = new Dictionary <Expression, Expression>(); foreach (var(key, value) in source.Parameters) { if (key.StartsWith("Mapster.")) { continue; } var currentEx = Expression.Property(null, current !); var propertiesEx = Expression.Property(currentEx, properties !); var itemEx = Expression.Call(propertiesEx, item !, Expression.Constant(key)); map.Add(itemEx, Parameterize(value).Body); } var replaced = new ExpressionReplacer(map).Visit(project); var methodCallExpression = Expression.Call(call.Method, call.Arguments[0], replaced !); var replacedQueryable = queryable.Provider.CreateQuery <TDestination>(methodCallExpression); return(new MapsterQueryable <TDestination>(replacedQueryable, source)); }
public PropertiesAdaptersBuilder(IAdapterBuilder <TObject> builder, params string[] targetProperties) { Builder = builder; TargetProperties = targetProperties; }
/// <summary> /// Sets the transporter adapter to <see cref="UsbAdapter"/>. /// </summary> /// <param name="adapterBuilder">The adapter builder.</param> /// <returns></returns> public static UsbAdapterBuilder WithUsbAdapter(this IAdapterBuilder adapterBuilder) { return(new UsbAdapterBuilder(adapterBuilder as ResonanceTransporterBuilder)); }
public MapsterAsyncEnumerable(IAsyncEnumerable <T> enumerable, IAdapterBuilder builder) { _enumerable = enumerable; _builder = builder; }
public MapsterQueryableProvider(IQueryProvider provider, IAdapterBuilder builder) { _provider = provider; _builder = builder; }
public MapsterQueryable(IQueryable queryable, IAdapterBuilder builder) { _queryable = queryable; this.Provider = new MapsterQueryableProvider(queryable.Provider, builder); }
public MapsterAsyncEnumerator(IAsyncEnumerator <T> enumerator, IAdapterBuilder builder) { _enumerator = enumerator; _scope = builder.CreateMapContextScope(); }
public static IQueryable <TDestination> ProjectToType <TDestination>(this IAdapterBuilder <IQueryable> source) { var queryable = source.Source.ProjectToType <TDestination>(source.Config); return(new MapsterQueryable <TDestination>(queryable, source)); }
/// <summary> /// Sets the transporter adapter to <see cref="BluetoothAdapter"/>. /// </summary> /// <param name="adapterBuilder">The adapter builder.</param> /// <returns></returns> public static BluetoothAdapterBuilder WithBluetoothAdapter(this IAdapterBuilder adapterBuilder) { return(new BluetoothAdapterBuilder(adapterBuilder as ResonanceTransporterBuilder)); }
/// <summary> /// Sets the transporter adapter to <see cref="SignalRAdapter{TCredentials}"/>. /// </summary> /// <param name="adapterBuilder">The adapter builder.</param> /// <param name="mode">The SinglaR mode (legacy/core).</param> public static SignalRAdapterBuilder WithSignalRAdapter(this IAdapterBuilder adapterBuilder, SignalRMode mode) { return(new SignalRAdapterBuilder(adapterBuilder as ResonanceTransporterBuilder, mode)); }