Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
 public RegisterProgramUnitOfWork(TelimenaTelemetryContext telemetryContext, TelimenaPortalContext portalContext)
 {
     this.telemetryContext = telemetryContext;
     this.portalContext    = portalContext;
     this.Users            = new UserRepository(portalContext);
     this.Programs         = new ProgramRepository(portalContext, telemetryContext);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public ProgramRepository(TelimenaPortalContext portalContext, TelimenaTelemetryContext telemetryContext)
 {
     this.portalContext    = portalContext;
     this.telemetryContext = telemetryContext;
 }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 public ViewRepository(TelimenaTelemetryContext dbContext) : base(dbContext)
 {
 }
Ejemplo n.º 11
0
        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);
            }
        }