Пример #1
0
 public bool DeleteAll <T>() where T : BaseObject
 {
     using (var db = new LiteDB.LiteDatabase(CoreManager.GetService <Config>().DBFileName))
     {
         return(db.DropCollection(typeof(T).Name));
     }
 }
        /// <summary>
        /// Método que carrega os produtos, pois na consulta de pedidos da API Rest, os itens não carregam os dados mercadológicos
        /// </summary>
        private static void CarregarProdutos()
        {
            // Paginação
            int page = 1;

            logger.Info("Carregar lista de Produtos...");

            // Gravando os produtos em uma solução NoSQL local, para evitar realizar muitas consultas na API Rest.
            using (var db = new LiteDB.LiteDatabase(@"app.db"))
            {
                IRestResponse response;

                // A cada importação, a lista de produtos é destruida para sempre pegar uma listagem nova
                db.DropCollection("produtos");
                var produtosDB = db.GetCollection <Produto>("produtos");

                do
                {
                    logger.Info($"Carregando produtos página {page}...");

                    var client  = new RestClient((URL_BASE + URL_PRODUTO).Replace("[page]", page.ToString()).Replace("[apikey]", apiKey));
                    var request = new RestRequest(Method.GET);
                    response = client.Execute(request);

                    // Contando os requests para logar. Isso vai ajudar a mensurar quantas requisições estão sendo feitas por execução
                    qtdeRequest++;

                    if (response.StatusCode == System.Net.HttpStatusCode.OK && JsonValue.Parse(response.Content)["retorno"].ContainsKey("produtos"))
                    {
                        var listProdutosJson = (JsonArray)JsonValue.Parse(response.Content)["retorno"]["produtos"];

                        foreach (var linha in listProdutosJson)
                        {
                            var produtoAux = linha["produto"];

                            var produto = new Produto
                            {
                                codigo         = produtoAux["codigo"],
                                descricao      = (string)produtoAux["descricao"],
                                unidade        = produtoAux["unidade"],
                                grupoProduto   = produtoAux["grupoProduto"],
                                situacao       = produtoAux["situacao"],
                                nomeFornecedor = produtoAux["nomeFornecedor"],
                                marca          = produtoAux["marca"],
                                preco          = produtoAux["preco"],
                                precoCusto     = produtoAux["precoCusto"],
                                pesoLiq        = produtoAux["pesoLiq"],
                                dataInclusao   = produtoAux["dataInclusao"],
                                dataAlteracao  = produtoAux["dataAlteracao"]
                            };
                            produtosDB.Insert(produto);
                        }
                    }
                    logger.Info($"Produtos da página {page} carregados");
                    page++;
                } while (response.StatusCode == System.Net.HttpStatusCode.OK && JsonValue.Parse(response.Content)["retorno"].ContainsKey("produtos")); // Continua enquanto houver produto
            }

            logger.Info("Lista de produtos carregada");
        }
        private void SeedCollection <TEntity>(LiteDB.LiteDatabase database, ICollection <TEntity> data) where TEntity : class
        {
            var entityTypeName = data.GetType().GetGenericArguments()[0].Name;
            var wasDropped     = database.DropCollection(entityTypeName);
            var collection     = database.GetCollection <TEntity>();

            collection.InsertBulk(data);
        }
Пример #4
0
 public void DropCollection <T>()
 {
     _liteDatabase.DropCollection(typeof(T).Name);
 }
Пример #5
0
 public static void Init()
 {
     if (Cache.CollectionExists("Skills"))
     {
         Cache.DropCollection("Skills");
     }
     if (File.Exists(Settings.ConfigsPath))
     {
         ArchiveManager am = new ArchiveManager(Settings.ConfigsPath, new ArchiveKey());
         am.ReadFileTable();
         var entry = am.Files.Where(x => x.Path.EndsWith("skillstr.txt")).ToList();
         if (entry.Count > 0)
         {
             byte[]       skillstr   = am.GetFile(entry.First());
             StreamReader sr         = new StreamReader(new MemoryStream(skillstr));
             string       text       = sr.ReadToEnd();
             Regex        r          = new Regex(@"^[0-9]+\s{0,10}" + "(\"[^\"]*\")", RegexOptions.Multiline);
             var          collection = r.Matches(text);
             var          enumerator = collection.GetEnumerator();
             var          col        = Cache.GetCollection <CustomDataCollection>("Skills");
             while (enumerator.MoveNext())
             {
                 var    split = enumerator.Current.ToString().Split(new string[] { "\"" }, StringSplitOptions.RemoveEmptyEntries);
                 string id    = split[0].Remove(split[0].IndexOf(" ") - 1);
                 string name  = split[1].Replace("\"", "");
                 enumerator.MoveNext();
                 col.Insert(new CustomDataCollection()
                 {
                     ID   = id.ToInt32(),
                     Name = name,
                     Desc = enumerator.Current.ToString().Substring(enumerator.Current.ToString().IndexOf("\""))
                 });
             }
             sr.Close();
             Utils.MemoryCleaner();
         }
     }
     if (File.Exists(Settings.ElementsPath))
     {
         if (Cache.CollectionExists("Npcs"))
         {
             Cache.DropCollection("Npcs");
         }
         if (Cache.CollectionExists("Mobs"))
         {
             Cache.DropCollection("Mobs");
         }
         if (Cache.CollectionExists("Mines"))
         {
             Cache.DropCollection("Mines");
         }
         var col1 = Cache.GetCollection <CustomDataCollection>("Npcs");
         var col2 = Cache.GetCollection <CustomDataCollection>("Mobs");
         var col3 = Cache.GetCollection <CustomDataCollection>("Mines");
         KuklusDataEditor.Core.ElementsData elements = new KuklusDataEditor.Core.ElementsData();
         try
         {
             elements.Load(Settings.ElementsPath);
         }
         catch { }
         byte list_count = 0;
         foreach (var list in elements.Lists)
         {
             if (list_count == 3)
             {
                 break;
             }
             if (list.Name.Contains("NPC_ESSENCE") ||
                 list.Name.Contains("MONSTER_ESSENCE") ||
                 list.Name.Contains("MINE_ESSENCE"))
             {
                 foreach (var item in list.Items)
                 {
                     int    id   = item.Values[list.IDIndex].ToString().ToInt32();
                     string name = item.Values[list.NameIndex].ToString();
                     var    data = new CustomDataCollection()
                     {
                         ID   = id,
                         Name = name,
                         Desc = ""
                     };
                     if (list.Name.Contains("NPC_ESSENCE"))
                     {
                         col1.Insert(data);
                     }
                     else if (list.Name.Contains("MONSTER_ESSENCE"))
                     {
                         col2.Insert(data);
                     }
                     else if (list.Name.Contains("MINE_ESSENCE"))
                     {
                         col3.Insert(data);
                     }
                 }
                 ++list_count;
             }
         }
         elements.Lists.Clear();
         Utils.MemoryCleaner();
     }
 }