private void RecreateProcedures(TelimenaTelemetryContext context) { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin\\Database\\Sql\\StoredProcedures"); DirectoryInfo dir = new DirectoryInfo(path); var spFiles = dir.GetFiles("*.sql"); foreach (FileInfo file in spFiles) { string spName = Path.GetFileNameWithoutExtension(file.Name); try { context.Database.ExecuteSqlCommand($"DROP PROCEDURE {spName}"); } catch (Exception ex) { if (!ex.Message.Contains("because it does not exist or you do not have permission.")) { throw; } //otherwise it's fine, the procedure is new } var text = File.ReadAllText(file.FullName); try { context.Database.ExecuteSqlCommand(text); Debug.WriteLine("Adding procedure"); Debug.WriteLine(text); } catch (Exception ex) { Debug.Fail($"{ex.Message}\r\nFailed to add procedure [{spName}]", text + "\r\n" + ex); } } }
public RegisterProgramUnitOfWork(TelimenaTelemetryContext telemetryContext, TelimenaPortalContext portalContext) { this.telemetryContext = telemetryContext; this.portalContext = portalContext; this.Users = new UserRepository(portalContext); this.Programs = new ProgramRepository(portalContext, telemetryContext); }
public ToolkitDataUnitOfWork(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext, IAssemblyStreamVersionReader versionReader) { this.portalContext = portalContext; this.telemetryContext = telemetryContext; this.UpdaterRepository = new UpdaterRepository(portalContext, versionReader); this.Programs = new ProgramRepository(portalContext, telemetryContext); this.Users = new UserRepository(portalContext); this.ToolkitDataRepository = new ToolkitDataRepository(portalContext, versionReader); }
protected override void Seed(TelimenaTelemetryContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. this.RecreateProcedures(context); this.RecreateFunctions(context); }
public ProgramsDashboardUnitOfWork(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext) { this.portalContext = portalContext; this.telemetryContext = telemetryContext; this.Programs = new ProgramRepository(this.portalContext); this.Views = new ViewRepository(this.telemetryContext); this.Events = new Repository <Event>(this.telemetryContext); this.UpdatePackages = new UpdatePackageRepository(this.portalContext, null); this.Users = new Repository <TelimenaUser>(this.portalContext); }
public TelemetryUnitOfWork(TelimenaTelemetryContext telemetryContext, TelimenaPortalContext portalContext, IAssemblyStreamVersionReader versionReader) { this.telemetryContext = telemetryContext; this.portalContext = portalContext; this.ClientAppUsers = new Repository <ClientAppUser>(telemetryContext); this.Exceptions = new Repository <ExceptionInfo>(telemetryContext); this.Versions = new Repository <AssemblyVersionInfo>(telemetryContext); this.Views = new ViewRepository(telemetryContext); this.Events = new Repository <Event>(telemetryContext); this.LogMessages = new Repository <LogMessage>(telemetryContext); this.TelemetryRootObjects = new Repository <TelemetryRootObject>(telemetryContext); this.Programs = new ProgramRepository(portalContext); this.ToolkitData = new ToolkitDataRepository(telemetryContext, versionReader); }
public static async Task <TelemetryRootObject> GetRootObjectOrAddIfNotExists(TelimenaTelemetryContext telemetryContext, TelimenaPortalContext portalContext, Guid telemetryKey) { var prg = await portalContext.Programs.FirstOrDefaultAsync(x => x.TelemetryKey == telemetryKey).ConfigureAwait(false); if (prg == null) { return(null); } var rootObject = await telemetryContext.TelemetryRootObjects.FirstOrDefaultAsync(x => x.ProgramId == prg.Id).ConfigureAwait(false); if (rootObject == null) { rootObject = new TelemetryRootObject { ProgramId = prg.Id, TelemetryKey = prg.TelemetryKey, }; telemetryContext.TelemetryRootObjects.Add(rootObject); return(rootObject); } return(rootObject); }
public ProgramRepository(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext) { this.portalContext = portalContext; this.telemetryContext = telemetryContext; }
public static async Task <List <KeyValuePair <string, Guid> > > SeedInitialPrograms(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext, int prgCount, string getName, string[] userNames, string devName = "SomeDeveloper", string devEmail = "*****@*****.**", [CallerMemberName] string caller = "") { Mock <HttpRequestContext> requestContext = await SetupUserIntoRequestContext(portalContext, devName, devEmail).ConfigureAwait(false); RegisterProgramUnitOfWork unit = new RegisterProgramUnitOfWork(telemetryContext, portalContext); RegisterProgramController programsController = new RegisterProgramController(unit) { RequestContext = requestContext.Object }; List <KeyValuePair <string, Guid> > list = await SeedInitialPrograms(programsController, prgCount , GetName(getName, caller), userNames.Select(x => GetName(x, caller)).ToList()).ConfigureAwait(false); foreach (string userName in userNames) { telemetryContext.AppUsers.Add(new ClientAppUser() { UserIdentifier = GetName(userName, caller) }); } telemetryContext.SaveChanges(); return(list); }
public ViewRepository(TelimenaTelemetryContext dbContext) : base(dbContext) { }
public static IEnumerable <TelemetryDetail> GetTelemetryDetails(this Program program, TelimenaTelemetryContext context, TelemetryItemTypes type) { switch (type) { case TelemetryItemTypes.View: return(context.ViewTelemetryDetails.Where(x => x.TelemetrySummary.View.ProgramId == program.Id)); case TelemetryItemTypes.Event: return(context.EventTelemetryDetails.Where(x => x.TelemetrySummary.Event.ProgramId == program.Id)); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }