Esempio n. 1
0
        public async Task Initial(string connectionString)
        {
            try
            {
                DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();
                optionsBuilder.UseSqlServer(connectionString);
                using (StickyDbContext _db = new StickyDbContext(optionsBuilder.Options))
                {
                    var newdatabase = _redisCache.GetDatabase(RedisDatabases.TextTemplateV2);
                    var list        = await _db.ProductTextTemplates.GroupBy(c => c.SegmentId).ToListAsync();

                    foreach (var item in list)
                    {
                        await newdatabase.KeyDeleteAsync(item.Key.ToString());

                        foreach (var zitem in item.ToList())
                        {
                            await newdatabase.HashSetAsync(item.Key.ToString(), zitem.Template + "%%%" + (zitem.MinPrice ?? 0) + "%%%" + (zitem.MaxPrice ?? 0), zitem.Template + "%%%" + (zitem.MinPrice ?? 0) + "%%%" + (zitem.MaxPrice ?? 0));
                        }
                    }
                }
            }
            catch
            {
            }
        }
Esempio n. 2
0
        public async Task Initial(string connectionString)
        {
            DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();

            optionsBuilder.UseSqlServer(connectionString);
            using (StickyDbContext _db = new StickyDbContext(optionsBuilder.Options))
            {
                var hosts = await _db.Hosts.Where(c => c.HostValidated == true).ToListAsync();

                IDatabase redisdb = new RedisCache().GetDatabase(RedisDatabases.ResponseTiming);

                foreach (var item in hosts)
                {
                    var keyExists = await redisdb.KeyExistsAsync(item.Id.ToString());

                    if (!keyExists)
                    {
                        continue;
                    }
                    item.PageValidated      = (await _redisCache.GetDatabase(RedisDatabases.ResponseTiming).HashGetAsync(item.Id.ToString(), "Page")) == "1";
                    item.CategoryValidated  = (await _redisCache.GetDatabase(RedisDatabases.ResponseTiming).HashGetAsync(item.Id.ToString(), "Product")) == "1";
                    item.AddToCardValidated = (await _redisCache.GetDatabase(RedisDatabases.ResponseTiming).HashGetAsync(item.Id.ToString(), "Cart")) == "1";
                    item.FinalizeValidated  = (await _redisCache.GetDatabase(RedisDatabases.ResponseTiming).HashGetAsync(item.Id.ToString(), "Buy")) == "1";
                    item.FavValidated       = (await _redisCache.GetDatabase(RedisDatabases.ResponseTiming).HashGetAsync(item.Id.ToString(), "Fav")) == "1";
                }
                await _db.SaveChangesAsync();
            }
        }
Esempio n. 3
0
        public async Task Initial(string connectionString)
        {
            DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();

            optionsBuilder.UseSqlServer(connectionString);
            using (StickyDbContext _db = new StickyDbContext(optionsBuilder.Options))
            {
                var segmentDatabase = _redisCache.GetDatabase(RedisDatabases.CacheData);
                await segmentDatabase.KeyDeleteAsync("Segments");

                var SegmentList = await _db.Segments.Where(c => !c.Paused).ToListAsync();

                foreach (var item in SegmentList)
                {
                    await segmentDatabase.HashSetAsync("Segments", item.Id.ToString(), Newtonsoft.Json.JsonConvert.SerializeObject(new RedisSegment()
                    {
                        ActionExtra   = item.ActionExtra,
                        ActionId      = item.ActionId,
                        AudienceId    = item.AudienceId,
                        HostId        = item.HostId,
                        AudienceExtra = item.AudienceExtra,
                        Id            = item.Id,
                    }));
                }
                await _db.SaveChangesAsync();
            }
        }
Esempio n. 4
0
        public async Task FlushToSql(string connectionString)
        {
            DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();

            optionsBuilder.UseSqlServer(connectionString);
            var hosts = new List <int>();

            using (var _db = new StickyDbContext(optionsBuilder.Options))
            {
                hosts = await _db.Hosts.Where(x => x.HostValidated).Select(c => c.Id).ToListAsync();
            }
            var database = _redisCache.GetDatabase(RedisDatabases.Categories);

            foreach (var hostId in hosts)
            {
                var allkeys = await database.HashGetAllAsync(hostId.ToString());

                if (allkeys.Count() != 0)
                {
                    DataTable table = new DataTable();
                    table.Columns.Add(new DataColumn("HostId", typeof(int)));
                    table.Columns.Add(new DataColumn("Category", typeof(string)));
                    table.Columns.Add(new DataColumn("Counter", typeof(long)));
                    foreach (var price in allkeys)
                    {
                        DataRow row = table.NewRow();
                        row["HostId"]   = hostId;
                        row["Category"] = price.Name;
                        row["Counter"]  = long.Parse(price.Value);
                        table.Rows.Add(row);
                    }
                    try
                    {
                        using (SqlConnection sqlConnection = new SqlConnection(connectionString))
                        {
                            using (SqlCommand sqlCommand = new SqlCommand("UpdateCategories", sqlConnection))
                            {
                                sqlCommand.CommandType = CommandType.StoredProcedure;
                                sqlCommand.Parameters.AddWithValue("@Categories", table);
                                await sqlConnection.OpenAsync();

                                sqlCommand.CommandTimeout = 60000;
                                await sqlCommand.ExecuteNonQueryAsync();

                                sqlConnection.Close();
                            }
                        }
                        await database.KeyDeleteAsync(hostId.ToString());
                    }
                    catch
                    {
                    }
                }
            }
        }
Esempio n. 5
0
        public async Task Initial(string connectionString)
        {
            try
            {
                DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();
                optionsBuilder.UseSqlServer(connectionString);
                using (StickyDbContext _db = new StickyDbContext(optionsBuilder.Options))
                {
                    var hosts = await _db.Hosts.Where(c => c.HostValidated == true).Select(c => new HostWithoutRelation()
                    {
                        Id                    = c.Id,
                        AddToCardId           = c.AddToCardId,
                        LogoAddress           = c.LogoAddress,
                        AddToCardValidated    = c.AddToCardValidated,
                        CategoryValidated     = c.CategoryValidated,
                        FinalizePage          = c.FinalizePage,
                        FinalizeValidated     = c.FinalizeValidated,
                        HashCode              = c.HashCode,
                        Host                  = c.HostAddress,
                        ProductImageHeight    = c.ProductImageHeight,
                        ProductImageWidth     = c.ProductImageWidth,
                        HostPriority          = c.HostPriority,
                        HostValidated         = c.HostValidated,
                        LogoOtherData         = c.LogoOtherData,
                        PageValidated         = c.PageValidated,
                        ProductValidated      = c.ProductValidated,
                        ProductValidityId     = c.ProductValidityId,
                        UserId                = c.UserId,
                        UserValidityId        = c.UserValidityId,
                        ValidatingHtmlAddress = c.ValidatingHtmlAddress
                    }).ToListAsync();

                    var db = _redisCache.GetDatabase(RedisDatabases.CacheData);
                    await db.KeyDeleteAsync("HostId");

                    await db.KeyDeleteAsync("Address");

                    foreach (var item in hosts)
                    {
                        await db.HashSetAsync("HostId", item.Id.ToString(), Newtonsoft.Json.JsonConvert.SerializeObject(item));
                    }
                    foreach (var item in hosts)
                    {
                        await db.HashSetAsync("Address", item.Host.ToLower(), Newtonsoft.Json.JsonConvert.SerializeObject(item));
                    }
                }
            }
            catch
            {
            }
        }
Esempio n. 6
0
#pragma warning disable CA1822 // Mark members as static
        public async Task Initial(string connectionString)
#pragma warning restore CA1822 // Mark members as static
        {
            DbContextOptionsBuilder <StickyDbContext> optionsBuilder = new DbContextOptionsBuilder <StickyDbContext>();

            optionsBuilder.UseSqlServer(connectionString);
            using (StickyDbContext _db = new StickyDbContext(optionsBuilder.Options))
            {
                var partners = await _db.Partners.Where(c => c.Verified == true).ToListAsync();

                IDatabase db = new RedisCache().GetDatabase(RedisDatabases.CacheData);
                foreach (var item in partners)
                {
                    await db.HashSetAsync("Partners", item.ParnerHash, Newtonsoft.Json.JsonConvert.SerializeObject(item));
                }
            }
        }
Esempio n. 7
0
 public TextTemplateManager(StickyDbContext db)
 {
     _db = db;
 }
Esempio n. 8
0
 public SegmentManager(StickyDbContext db)
 {
     _db = db;
 }
Esempio n. 9
0
 public ActionTypeManager(StickyDbContext db)
 {
     _db = db;
 }
Esempio n. 10
0
 public HostManager(StickyDbContext db, IOptions <DashboardAPISetting> options, IErrorLogger errorLogger)
 {
     _errorLogger = errorLogger;
     _db          = db;
     _setting     = options.Value;
 }
Esempio n. 11
0
 public HostDataExtractor(StickyDbContext db, IOptions <DashboardAPISetting> options, ICategoryFinder categoryFinder)
 {
     _categoryFinder = categoryFinder;
     _setting        = options.Value;
     _db             = db;
 }
Esempio n. 12
0
 public AudienceTypeManager(StickyDbContext db)
 {
     _db = db;
 }