Пример #1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app,
                              IWebHostEnvironment env,
                              UserManager <ApplicationUser> userManager,
                              RoleManager <IdentityRole> roleManager,
                              IOptions <AppSettings> appSettings,
                              IConfiguration configuration,
                              IHttpContextAccessor httpContextAccessor,
                              TechnologyNewsDbContext dbcontext)
        {
            //for seeding database
            //ApplicationDbInitializer.SeedData(userManager, roleManager, appSettings);
            //using (var scope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
            //{
            //    scope.ServiceProvider.GetService<TechnologyNewsDbContext>().Database.Migrate();
            //}
            dbcontext.MigrateDatabse("Initial");
            //ApplicationDbInitializer.SeedData(userManager, roleManager, appSettings);
            //ApplicationDbInitializer.SeedOtherTables(app.ApplicationServices.GetRequiredService<IUnitOfWork>());


            //app.UseMiddleware(typeof(CorsMiddleware));

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            //var returnObject = string.Format("{0}://{1}{2}", HttpContext.Request.Scheme, HttpContext.Request.Host, Url.Content("~"));
            var URL = app.ServerFeatures.Get <IServerAddressesFeature>().Addresses.FirstOrDefault();

            //string Url = new System.Uri(configuration[WebHostDefaults.ServerUrlsKey]).ToString();
            //UnitOfWork.BaseUrlStatic = configuration[WebHostDefaults.ServerUrlsKey]; ;
            //UnitOfWork.BaseUrlStatic = Microsoft.AspNetCore.Mvc.UrlHelperExtensions.Action(,"Edit", "Project");
            //UnitOfWork.BaseUrlStatic = string.Format("{0}://{1}", httpContextAccessor.HttpContext.Request.Scheme, httpContextAccessor.HttpContext.Request.Host);

            //// global cors policy
            //app.UseCors(x => x
            //    //.AllowAnyOrigin()
            //    .WithOrigins("https://localhost:44341")
            //    .AllowAnyMethod()
            //    .AllowAnyHeader()
            //    .AllowCredentials());
            //app.UseCors(MyAllowSpecificOrigins);
            app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            if (!env.IsDevelopment())
            {
                app.UseSpaStaticFiles();
            }

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
            });

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller}/{action=Index}/{id?}");
            });


            app.UseSpa(spa =>
            {
                // To learn more about options for serving an Angular SPA from ASP.NET Core,
                // see https://go.microsoft.com/fwlink/?linkid=864501

                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });
        }
        public IActionResult CreateDefaultAsync()
        {
            var databaseUrl      = "postgres://*****:*****@ec2-46-137-84-140.eu-west-1.compute.amazonaws.com:5432/d3cbgi217b7ap6";
            var connectionString = "postgres://*****:*****@ec2-46-137-84-140.eu-west-1.compute.amazonaws.com:5432/d3cbgi217b7ap6";

            var databaseUri = new Uri(databaseUrl);
            var userInfo    = databaseUri.UserInfo.Split(':');

            if (TechnologyNewsDbContext.HerokuPostgreSqlConnectionString != null)
            {
                //"User ID =postgres;Password=1234;Server=localhost;Port=5432;Database=testDb; Integrated Security = true; Pooling = true;
                //"DefaultConnection": "Server=localhost;Port=5432;User Id=username;Password=secret;Database=todos;"
                string herokuConnectionString = $@"
                  Host={databaseUrl};
                  Port=<port>;
                  Username=<user>;
                  Password=<password>;
                  Database=<database>;
                  Pooling=true;
                  Use SSL Stream=True;
                  SSL Mode=Require;
                  TrustServerCertificate=True;
                ";
                var    builder = new Npgsql.NpgsqlConnectionStringBuilder
                {
                    Host     = databaseUri.Host,
                    Port     = databaseUri.Port,
                    Username = userInfo[0],
                    Password = userInfo[1],
                    Database = databaseUri.LocalPath.TrimStart('/'),
                    SslMode  = Npgsql.SslMode.Prefer,
                    TrustServerCertificate = true
                };
                string tempURL  = "https://res.cloudinary.com/dfebwmqmq/image/upload/v1573550127/lmhzv9dpiq3ducxykow9.jpg";
                string publicId = Regex.Replace(tempURL, $@"{(tempURL.Contains("https") ? "https" : "http")}:\/\/res\.cloudinary\.com\/.*\/image\/upload\/", "");
                //publicId = Regex.Replace(tempURL, $@"{(tempURL.Contains("https") ? "https" : "http")}", "");
                var locationInfoJson = _unitOfWork.GetLocationAsync().GetAwaiter().GetResult().ToString();
                //var featuredPosts = _unitOfWork.PostRepository.context.Post.FromSqlRaw("SELECT * FROM {0} ORDER BY RANDOM() LIMIT {1};", "Post",2).ToList();
                var           tableNamesQuery       = @"
                    SELECT table_name
                    FROM information_schema.tables
                    WHERE table_schema='public'
                    AND table_type='BASE TABLE';
                ";
                List <string> tableNamesQueryResult = new List <string>();
                //var tableNames = _unitOfWork._context.Database.ExecuteSqlRaw(tableNamesQuery);
                //var tableNames = _unitOfWork._context.Set<dynamic>().FromSqlRaw(tableNamesQuery);
                using (var context = new TechnologyNewsDbContext())
                    using (var command = context.Database.GetDbConnection().CreateCommand())
                    {
                        command.CommandText = tableNamesQuery;
                        context.Database.OpenConnection();
                        using (var result = command.ExecuteReader())
                        {
                            int count = result.FieldCount;
                            while (result.Read())
                            {
                                for (int i = 0; i < count; i++)
                                {
                                    tableNamesQueryResult.Add(result.GetString(i));
                                }
                            }

                            //result.Close();
                        }
                    }

                return(Ok(new
                {
                    publicId,
                    tempURL,
                    databaseUrl,
                    connectionString,
                    builder = builder.ToString(),
                    tableNamesQueryResult
                }));
            }
            return(Ok());
            //var key = new byte[32];
            //using (var generator = System.Security.Cryptography.RandomNumberGenerator.Create())
            //    generator.GetBytes(key);
            //string apiSecret = Convert.ToBase64String(key);
            //return Ok(apiSecret);
            //await UnitOfWork.UserManager.CreateAsync(new ApplicationUser
            //{
            //    ApiToken = "some",
            //    UserName = "******",
            //    Email = "*****@*****.**",
            //    EmailConfirmed = true,
            //    DateAdd = DateTime.Now,
            //    DateUpd = DateTime.Now,
            //}, "admin");
            //var returnObject = string.Format("{0}://{1}{2}", HttpContext.Request.Scheme, HttpContext.Request.Host, Url.Content("~"));
            ////return await UnitOfWork.AboutRepository.GetAllAsync();
            ////return Ok(await UnitOfWork.UserManager.Users.ToListAsync());
            //return Ok(returnObject);
        }
Пример #3
0
 public AboutRepository(TechnologyNewsDbContext context) : base(context)
 {
 }
 public GenericRepository(TechnologyNewsDbContext context)
 {
     //, [System.Runtime.CompilerServices.CallerMemberName] string memberName = ""
     this.context = context;
     this.dbSet   = context.Set <TEntity>();
 }
Пример #5
0
 public PageRepository(TechnologyNewsDbContext context) : base(context)
 {
 }