public ExcelService(IServicesProvider <ICategoryRepo> categoryRepo, IHttpContextAccessor accessor, IHostingEnvironment hostingEnvironment) { _accessor = accessor; _categoryRepo = categoryRepo; _hostingEnvironment = hostingEnvironment; }
public static int?GetTotalCount <T>(this IServicesProvider dataService, IQueryable <T> entities, FilterInfo filter, DbSetInfo dbSetInfo) where T : class { IQueryable filtered_entities = PerformFilter(dataService, entities, filter, dbSetInfo); return(filtered_entities.Count()); }
public NavigationImpl(IServicesProvider servicesProvider, IDispatcher dispatcher) { Services = new ScopeBuilder(servicesProvider) .WithInstance(this).As <INavigation>() .Build(); objectFactory = Services.GetService <IObjectFactory>(); this.dispatcher = dispatcher; }
public static T GetRefreshedEntity <T>(this IServicesProvider dataService, IQueryable <T> entities, RefreshInfo info) where T : class { var keyValue = info.rowInfo.GetPKValues(dataService.ServiceContainer.DataHelper); var dbEntity = FindEntity(entities, info.rowInfo, keyValue); return((T)dbEntity); }
private static void ProcessServicesProvider(IServicesProvider provider, YieldServicesProvider yieldServicesProvider, FourPartVersion asmVersion, IRequest request) { try { provider.InitializeProvider(DynamicInterface.Instance, request); FourPartVersion ver = provider.GetProviderVersion(); yieldServicesProvider(provider.GetServicesProviderName(), provider, ver == 0 ? asmVersion : ver, request); } catch (Exception e) { e.Dump(); } }
public UserService(IServicesProvider <IUserRepo> userRepo, IServicesProvider <IAppPermissionRepo> permissionRepo, IServicesProvider <IAppNotificationRepo> notificationRepo, IHttpContextAccessor accessor, IHubContext <NotificationHub> hubContext) { _accessor = accessor; _userRepo = userRepo; _notificationRepo = notificationRepo; _hubContext = hubContext; _permissionRepo = permissionRepo; }
public CategoryService(IServicesProvider <ICategoryRepo> categoryRepo, IServicesProvider <IProductCategoryRepo> productCategoryRepo, IServicesProvider <IAppNotificationRepo> notificationRepo, IHttpContextAccessor accessor, IHubContext <NotificationHub> hubContext) { _accessor = accessor; _categoryRepo = categoryRepo; _productCategoryRepo = productCategoryRepo; _notificationRepo = notificationRepo; _hubContext = hubContext; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="servicesProvider">インジェクション サービス</param> protected ApplicationViewModelBase(IServicesProvider servicesProvider) { // // デザイナー上でViewModelをバインドするために // デザインモード時は常にViewModel をインスタンス化できるようにする。 // if (ViewUtility.IsDesignMode()) return; if (servicesProvider == null) throw new ArgumentNullException(nameof(servicesProvider)); _servicesProvider = servicesProvider; DialogService = _servicesProvider.DialogService; ViewService = _servicesProvider.ViewService; }
/// <summary> /// 创建服务生成器 /// </summary> /// <param name="service">服务提供者</param> /// <param name="config">配置回调</param> /// <returns>服务生成器</returns> public static IServicesBuilder CreateServiceBuilder(this IServicesProvider service, Action <IServicesBuilder> config) { if (config == null) { throw new ArgumentNullException("配置回调不能为null"); } var builder = new HttpServicesBuilder(); builder.ServiceProvider = service; config(builder); return(builder); }
public ScopeBuilder(IServicesProvider parentServicesProvider = null) { servicesProvider.ObjectFactory = objectFactory; servicesProvider.TypeMapping = abstractTypeMapping; objectFactory.ServicesProvider = servicesProvider; objectFactory.TypeMapping = abstractTypeMapping; WithType <ScopeBuilder>().As <IScopeBuilder>(); if (parentServicesProvider != null) { servicesProvider.Parent = parentServicesProvider; abstractTypeMapping.Parent = parentServicesProvider.GetService <IAbstractTypeMapping>(); } }
public static IQueryable <T> PerformQuery <T>(this IServicesProvider dataService, IQueryable <T> entities, ref int?totalCount) where T : class { var reqCtxt = RequestContext.Current; var queryInfo = reqCtxt.CurrentQueryInfo; if (queryInfo.isIncludeTotalCount && !totalCount.HasValue) { totalCount = GetTotalCount(dataService, entities, queryInfo.filterInfo, queryInfo.dbSetInfo); } entities = PerformFilter(dataService, entities, queryInfo.filterInfo, queryInfo.dbSetInfo); entities = PerformSort(dataService, entities, queryInfo.sortInfo); entities = GetPage(dataService, entities, queryInfo.pageIndex, queryInfo.pageSize, queryInfo.pageCount, queryInfo.dbSetInfo); return(entities); }
/// <summary> /// ViewModel の生成ルールを設定します。<para/> /// このメソッドは最初のView を生成する前に実行してください。 /// </summary> /// <param name="servicesProvider">インジェクション サービス</param> public static void SetDefaultViewModelLocater(IServicesProvider servicesProvider) { // // ViewModel を生成する場合、コンストラクタの引数にインジェクション サービスを設定する。 // ViewModelLocationProvider.SetDefaultViewModelFactory( viewModelType => Activator.CreateInstance(viewModelType, servicesProvider)); // // View に設定したViewModel 属性の型によってView とViewModel を紐付けます。 // ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver( viewType => { var vmType = viewType.GetTypeInfo().GetCustomAttribute <ViewModelAttribute>(); return(vmType?.ViewModelType); }); }
public void GetServicesTest() { Assert.IsNull(ServicesContainer.ServicesProvider); var servicesProviderMock = new Mock <IServicesProvider>(); servicesProviderMock.Setup(provider => provider.GetEnvironmentService()) .Returns(new EnvironmentServiceMock()); servicesProviderMock.Setup(provider => provider.GetLoggingService(It.IsAny <string>(), null)) .Returns(new LoggingServiceMock()); IServicesProvider servicesProvider = servicesProviderMock.Object; ServicesContainer.SetServicesProvider(servicesProvider); Assert.IsNotNull(ServicesContainer.ServicesProvider); Assert.IsNotNull(servicesProvider.GetLoggingService("any")); Assert.IsNotNull(servicesProvider.GetEnvironmentService()); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="servicesProvider">インジェクション サービス</param> protected ApplicationViewModelBase(IServicesProvider servicesProvider) { // // デザイナー上でViewModelをバインドするために // デザインモード時は常にViewModel をインスタンス化できるようにする。 // if (ViewUtility.IsDesignMode()) { return; } if (servicesProvider == null) { throw new ArgumentNullException(nameof(servicesProvider)); } _servicesProvider = servicesProvider; DialogService = _servicesProvider.DialogService; ViewService = _servicesProvider.ViewService; }
public static IQueryable <T> GetPage <T>(this IServicesProvider dataService, IQueryable <T> entities, int pageIndex, int pageSize, int pageCount, DbSetInfo dbInfo) where T : class { var result = entities; if (!dbInfo.enablePaging || pageIndex < 0) { return(result); } if (pageSize < 0) { pageSize = 0; } var skipRows = pageIndex * pageSize; result = Queryable.Take(Queryable.Skip(entities, skipRows), pageSize * pageCount); return(result); }
IServicesProvider ICoreApplication.Initialize(IServicesProvider servicesProvider) { var assembly = GetType().Assembly; var builder = new ScopeBuilder(servicesProvider); var elementTypeMapping = new ElementTypeMapping(assembly); var appValues = new AppValues(); var conversionService = new ConversionService(assembly); var bindingService = new BindingService(appValues, conversionService); LoadApplicationDefinition(appValues, bindingService, elementTypeMapping, servicesProvider.GetService <IObjectFactory>()); builder .WithInstance(this).As <Application>().As(GetType()) .WithInstance(elementTypeMapping).As <IElementTypeMapping>() .WithInstance(appValues).As <IAppValues>() .WithInstance(bindingService).As <IBindingService>() .WithType <TooltipService>().As <ITooltipService>().AsSingleton() .WithType <UIServices>().As <IUIServices>().AsSingleton() .WithType <XxFileParserImpl>().As <IXxFileParser>().AsSingleton(); BeforeInitServices?.Invoke(servicesProvider, builder); InitServices(servicesProvider, builder); if (!builder.TryResolveInstance <IViewLocator>(out var _)) { builder.WithType <DefaultViewLocator>().As <IViewLocator>().AsSingleton(); } AfterInitServices?.Invoke(servicesProvider, builder); Services = builder.Build(); LoadFonts(Services.GetService <IFontManager>()); WindowsService = Services.GetService <IWindowsService>(); ((WindowService)WindowsService).ObjectFactory = Services.GetService <IObjectFactory>(); return(Services); }
private bool AddServicesProvider(string name, IServicesProvider provider, ulong version, IRequest request) { if (_servicesProviders.ContainsKey(name)) { if (version > _servicesProviders[name].Version) { // remove the old provider first. // todo: this won't remove the plugin domain and unload the code yet // we'll have to do that later. _servicesProviders.Remove(name); } else { return(false); } } _servicesProviders.AddOrSet(name, new ServicesProvider(provider) { Version = version }).Initialize(request); return(true); }
public static IQueryable <T> PerformSort <T>(this IServicesProvider dataService, IQueryable <T> entities, SortInfo sort) where T : class { var result = entities; if (sort == null || sort.sortItems == null || sort.sortItems.Count == 0) { return(result); } if (sort == null || sort.sortItems == null || sort.sortItems.Count == 0) { return(result); } var first = true; var sb = new StringBuilder(); foreach (var si in sort.sortItems) { var fldName = si.fieldName; if (!first) { sb.Append(","); } sb.Append(fldName); if (si.sortOrder == SortOrder.DESC) { sb.Append(" DESC"); } first = false; } result = result.OrderBy(sb.ToString()); return(result); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="servicesProvider">インジェクション サービス</param> public MainViewModel(IServicesProvider servicesProvider) : base(servicesProvider) { // // 各コマンドの初期化を行う。 // // // 終了コマンド // コンテキストメニューからメッセージボックスを表示すると即時クローズされてしまうので // メッセージ無しで終了する。 // ExitCommand = new DelegateCommand(() => { var shutDown = DialogService.ShowQuestion(Resources.ExitConfirmMessage); if (shutDown) { ApplicationManager.Shutdown(); } }); ConfigurationCommand = new DelegateCommand(() => { // TODO 構成情報画面を表示する。 }); ReceivedNotificationListCommand = new DelegateCommand(() => { // TODO 通知受信履歴一覧を表示する。 }); ShowBalloonCommand = new DelegateCommand(() => { BalloonTipService.NotifyInformation("Test", "テスト的にバルーン出した。"); }); }
/// <summary> /// ViewModel の生成ルールを設定します。<para/> /// このメソッドは最初のView を生成する前に実行してください。 /// </summary> /// <param name="servicesProvider">インジェクション サービス</param> public static void SetDefaultViewModelLocater(IServicesProvider servicesProvider) { // // ViewModel を生成する場合、コンストラクタの引数にインジェクション サービスを設定する。 // ViewModelLocationProvider.SetDefaultViewModelFactory( viewModelType => Activator.CreateInstance(viewModelType, servicesProvider)); // // View に設定したViewModel 属性の型によってView とViewModel を紐付けます。 // ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver( viewType => { var vmType = viewType.GetTypeInfo().GetCustomAttribute<ViewModelAttribute>(); return vmType?.ViewModelType; }); }
public void Run(ICoreApplication application, IServicesProvider servicesProvider = null) { FormsApplication.SetHighDpiMode(HighDpiMode.SystemAware); FormsApplication.SetCompatibleTextRenderingDefault(false); Sequence.CreateSequenceFunc = SequenceImpl.Create; Sequence.NextFrameSequence = SequenceImpl.Create(0, 0, null, null); dispatcher.DispatcherThread = Thread.CurrentThread; using (var graphics = System.Drawing.Graphics.FromHwnd(IntPtr.Zero)) { UiUnit.PixelsPerUnit = graphics.DpiX / 96f; } var scopeBuilder = new ScopeBuilder(servicesProvider); scopeBuilder.WithSkia() .WithInstance(gamePads).As <IGamePads>() .WithInstance(keyboard).As <IKeyboard>() .WithType <UiInput>().As <IUiInput>().AsSingleton() .WithCrossTypes() .WithInstance(dispatcher).As <ISystemDispatcher>().As <IDispatcher>() .WithInstance(sequencer).As <ISequencer>() .WithType <SelectFileServiceWinForms>().As <ISelectFileService>().AsSingleton(); var services = scopeBuilder.Build(); application.AfterInitServices += (s, b) => { b.WithType <WindowServiceWinForms>().AsSelf().As <IWindowsService>().AsSingleton() .WithType <AppColorTable>().AsSelf().AsSingleton(); }; services = application.Initialize(services); application.Load(); var windowsService = services.GetService <WindowServiceWinForms>(); var stopwatch = new Stopwatch(); stopwatch.Start(); TimeSpan lastUpdateTimeSpan = stopwatch.Elapsed; while (windowsService.MainWindow != null) { TimeSpan currentTimeSpan = stopwatch.Elapsed; TimeSpan timeDelta = currentTimeSpan - lastUpdateTimeSpan; lastUpdateTimeSpan = currentTimeSpan; gamePads.Update(); keyboard.Update(); dispatcher.Process(); sequencer.Update(timeDelta); for (var idx = 0; idx < windowsService.Windows.Count; ++idx) { var hostWindow = windowsService.Windows[idx]; hostWindow.Window.Update((float)timeDelta.TotalSeconds); if (hostWindow.Window.IsDirty) { hostWindow.Redraw(); } } FormsApplication.DoEvents(); Thread.Sleep(1); } foreach (var wnd in windowsService.Windows) { wnd.Window.Close(); } }
public UserController(IServicesProvider <IUserService> userProvider) { _userProvider = userProvider; }
/// <summary> /// 构造方法 /// </summary> /// <param name="servicesProvider">服务提供者</param> /// <param name="unityServicesOptions">统一服务配置</param> public UnityServicesBuilder(IServicesProvider servicesProvider, IUnityServicesOptions unityServicesOptions) { this.servicesProvider = servicesProvider; this.unityServicesOptions = unityServicesOptions; }
public static object Create(Type type, IServicesProvider serviceProvider, params object[] parameters) { IEnumerable <ConstructorInfo> constructors = null; try { constructors = type.GetTypeInfo().DeclaredConstructors; foreach (var constructor in constructors) { var constructorParameters = constructor.GetParameters(); var arguments = new object[constructorParameters.Length]; var hasAllParams = true; for (var idx = 0; idx < constructorParameters.Length; ++idx) { var param = constructorParameters[idx]; bool shouldResolveService = true; foreach (var par in parameters) { if (par == null || param == null) { continue; } if (param.ParameterType.IsAssignableFrom(par.GetType())) { arguments[idx] = par; shouldResolveService = false; break; } } if (shouldResolveService) { object instance = null; serviceProvider?.TryResolveInstance(param.ParameterType, out instance); arguments[idx] = instance; if (arguments[idx] == null && !param.IsOptional) { hasAllParams = false; break; } } } if (hasAllParams) { return(constructor.Invoke(arguments)); } } } catch (Exception ex) { Console.WriteLine(ex); throw; } var parametersList = string.Join(", ", parameters.Select(o => o.GetType().Name)); var constructorsInfo = ""; foreach (var constructor in constructors) { constructorsInfo += "\n"; constructorsInfo += $"{type.Name}("; constructorsInfo += string.Join(", ", constructor.GetParameters().Select(o => o.ParameterType.Name)) + ")"; } throw new Exception($"Cannot find proper constructor for {type.FullName} and given parameters.\n{parametersList}\nConstructors:{constructorsInfo}"); }
public CategoryController(IServicesProvider <ICategoryService> _service) { service = _service.GetInstance(); }
public ExcelController(IServicesProvider <IExcelService> importExcelProvider) { _importExcelProvider = importExcelProvider; }
public CategoryController(IServicesProvider <ICategoryService> categoryProvider) { _categoryProvider = categoryProvider.GetInstance(); }
public GeneralController(IServicesProvider <IGeneralService> generalProvider) { _generalProvider = generalProvider; }
public AppNotificationService(IServicesProvider <IAppNotificationRepo> notificationRepo, IHttpContextAccessor accessor) { _notificationRepo = notificationRepo; _accessor = accessor; }
public GeneralService(IServicesProvider <IGeneralRepo> generalRepo, IHttpContextAccessor accessor) { _accessor = accessor; _generalRepo = generalRepo; }
public static void SetServicesProvider(IServicesProvider servicesProvider) { ServicesProvider = servicesProvider; }
protected virtual void InitServices(IServicesProvider systemServices, IScopeBuilder scopeBuilder) { }