private ServiceResponse InstallDb(Assembly asm, string version, DbInstallItem items) { var result = new ServiceResponse(); var prefix = asm.GetName().Name + ".Data"; var _version = version; for (var i = 0; i < 1; i++) { if (string.IsNullOrEmpty(_version)) { _version = ResourceProvider.Versions.OrderByDescending(item => item.Value).FirstOrDefault().Key; } else { if (string.IsNullOrEmpty(ResourceProvider.Versions.FirstOrDefault(item => item.Key == version).Key)) { result.Status = "VersionNotFound"; result.Message = $"Specified application module does not contain {_version} version."; break; } } prefix += _version + ".Db." + Config.DbConfig.DbType; var items = ResourceProvider.ResourceNames.Where(name => name.StartsWith(prefix)); } return(result); }
public ServiceResponse Install(string version = "", DbInstallItem items = DbInstallItem.SchemaAndData) { var response = null as ServiceResponse; Logger.LogCategory("Installing ..."); Logger.Log("Checking config"); for (var i = 0; i < 1; i++) { try { response = ValidateConfig(); if (response != null) { break; } response = new ServiceResponse(); var asmr = AssemblyHelper.Load(Config.AppModuleNameOrPath); if (!asmr.Success) { response.Status = "LoadingAppModuleFailed"; response.Message = "Loading application module failed."; response.Exception = asmr.Exception; break; } ResourceProvider = new AppModuleResourceProvider(asmr.Data); if (string.IsNullOrEmpty(ResourceProvider.ModuleType)) { response.Status = "MissingAssemblyType"; response.Message = "Application module is missing 'AssemblyType' attribute."; break; } if (string.Compare(ResourceProvider.ModuleType, "AppModule", true) != 0) { response.Status = "InvalidAssemblyType"; response.Message = "Specified file is not an application module."; break; } InstallDb(asmr.Data, version, items); response.Success = true; response.Status = "InstallationSucceeded"; response.Message = "Installation Succeeded"; } catch (Exception e) { response.Status = "AbnormalTermination"; response.Message = "Installation encountered with an unexpected exception. Installation aborted."; response.Exception = e; break; } } Logger.Log(response.Status); Logger.Log(response.Message); if (response.Exception != null) { Logger.Log(response.Exception.Message); ExceptionLogger.LogException(response.Exception); } return(response); }