private IEnumerable<string> GenerateBinding(Database db) { List<string> res = new List<string>(); foreach (DataStructure table in db.Tables) { res.Add($"Bind<I{table.ClrName}Provider>().To<{table.ClrName}Provider>().InSingletonScope();"); } foreach (DataStructure view in db.Views) { res.Add($"Bind<I{view.ClrName}Provider>().To<{view.ClrName}Provider>().InSingletonScope();"); } if (db.StoredProcedure.Any()) { res.Add($"Bind<IStoredProcedureProvider>().To<StoredProcedureProvider>().InSingletonScope();"); } return res; }
public void GenerateModule(Database database) { try { string template = ReadTemplate("NinjectModuleTemplate.txt"); string moduleNamespace = _parameterReaderService.Get<string>("namespace", "module"); string providerInterfaceNamespace = _parameterReaderService.Get<string>("namespace", "provider", "interface"); string providerImplNamespace = _parameterReaderService.Get<string>("namespace", "provider", "impl"); string filePath = _parameterReaderService.Get<string>("output", "baseDirectory"); template = template.Replace("#NAMESPACE#", moduleNamespace); template = template.Replace("#DAL-NAME#", database.Name); template = template.Replace("#PROVIDER-NAMESPACE-INTERFACE#", providerInterfaceNamespace); template = template.Replace("#PROVIDER-NAMESPACE-IMPL#", providerImplNamespace); template = template.Replace("#BINDINGS#", string.Join(Environment.NewLine, GenerateBinding(database))); WriteFile(filePath, $"{database.Name}.generated.cs", template); } catch (Exception ex) { _logger.Exception(ex); } }
private Database GetDataModel() { Stopwatch sw = new Stopwatch(); sw.Start(); Database res = new Database(); res.Name = _parameterReaderService.Get<string>("data","default","name"); res.Tables = _tableProvider.GetAll().Select(t=>_mapper.Map(t)); ; foreach (DataStructure table in res.Tables) { table.Keys = _keyProvider.GetAllTableKeys(table.Name).Select(t => _mapper.Map(t)); ; } res.Views = _viewProvider.GetAll().Select(t => _mapper.Map(t)); ; foreach (DataStructure view in res.Views) { view.Keys = _keyProvider.GetAllViewKeys(view.Name).Select(t => _mapper.Map<Key>(t)); ; } res.StoredProcedure = _storedProcedureProvider.GetAll().Select(t => _mapper.Map(t)); foreach (StoredProcedure storedProcedure in res.StoredProcedure) { storedProcedure.Parameters = _parameterProvider.GetAllStoredProcedureParameters(storedProcedure.Name).Select(t => _mapper.Map(t)); } sw.Stop(); return res; }