Пример #1
0
 public PushMethodArguments(IAdapterBuilder adapterBuilder,
                            IAdaptParameter pushParameter, IExtractionContext extractionContext)
 {
     _adapterBuilder = adapterBuilder;
     _pushParameter  = pushParameter;
     _context        = extractionContext;
 }
Пример #2
0
 public PushMethodArguments(IAdapterBuilder adapterBuilder,
     IAdaptParameter pushParameter, IExtractionContext extractionContext)
 {
     _adapterBuilder = adapterBuilder;
     _pushParameter = pushParameter;
     _context = extractionContext;
 }
Пример #3
0
 /// <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
     }));
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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;
 }
Пример #8
0
 /// <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));
 }
Пример #9
0
 public MapsterAsyncEnumerable(IAsyncEnumerable <T> enumerable, IAdapterBuilder builder)
 {
     _enumerable = enumerable;
     _builder    = builder;
 }
Пример #10
0
 public MapsterQueryableProvider(IQueryProvider provider, IAdapterBuilder builder)
 {
     _provider = provider;
     _builder  = builder;
 }
Пример #11
0
 public MapsterQueryable(IQueryable queryable, IAdapterBuilder builder)
 {
     _queryable    = queryable;
     this.Provider = new MapsterQueryableProvider(queryable.Provider, builder);
 }
Пример #12
0
 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));
        }
Пример #14
0
 /// <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));
 }