コード例 #1
0
ファイル: Excel.cs プロジェクト: Europium-TA/DB-Project
        private void ReadExcelData(OleDbConnection conn, string sheetName)
        {
            Console.WriteLine("Reading data...");
            var excelDbCommand = new OleDbCommand(@"SELECT * FROM [" + sheetName + "]", conn);
            using (var oleDbDataAdapter = new OleDbDataAdapter(excelDbCommand))
            {
                DataSet ds = new DataSet();
                oleDbDataAdapter.Fill(ds);
                var locations = new List<Location>();
                using (var reader = ds.CreateDataReader())
                {
                    while (reader.Read())
                    {
                        var loc = new Location();
                        loc.Name = reader["City"].ToString();
                        locations.Add(loc);
                    }
                }

                var db = new MagicalCreatureDbContext();
                foreach (var loc in locations)
                {
                    db.Locations.Add(loc);
                }

                db.SaveChanges();
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        public static void Main()
        {
            System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion<MagicalCreatureDbContext, Configuration>());

            var dbContext = new MagicalCreatureDbContext();
            List<MagicalCreatureModel> list;
            string lastCommnad = "";
            while (true)
            {

                var input = Console.ReadLine();

                switch(input)
                {
                    case "init":
                        GenerateSqlDatabBaseIfNeeded();
                        CreteMongoDb();
                        break;
                    case "excel":
                        LoadInitialExcelDataFromZipFile();
                        break;
                    case "importMongo":
                        ImportMongoToSql();
                        break;
                    case "pdf":
                        GeneratePDfReport();
                        break;
                    case "xmlReport":
                        dbContext = new MagicalCreatureDbContext();
                        list = AllCreatures(dbContext);
                        XmlReport(list);
                        break;
                    case "json":
                        dbContext = new MagicalCreatureDbContext();
                        list = AllCreatures(dbContext);
                        JsonReport(list);
                        break;
                    case "mysql":
                        dbContext = new MagicalCreatureDbContext();
                        list = AllCreatures(dbContext);
                        addToMySql(list);
                        break;
                    case "update":
                        UpdateMythologies();
                        break;
                    case "exit":
                        return;
                    default:
                        break;
                }

            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        private static void UpdateMythologies()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("../../../DataSystem/AddData.xml");
            XmlNode rootNode = doc.DocumentElement;

            var dbsql = new MagicalCreatureDbContext();

            var mongoCreator = new MongoCreator();
            var db = mongoCreator.GetDatabase(MongoCreator.DatabaseName, MongoCreator.DatabaseHost);

            foreach (XmlNode node in rootNode.ChildNodes)
            {
                var name = node["name"].InnerText;
                var description = node["description"].InnerText;

                var myth = dbsql.Mythologies.First(x => x.Name == name);
                myth.Discription = description;

                var collection = db.GetCollection<BsonDocument>("MagicalCreatureMythologyData");
                var mythDb = collection.FindAll().First(x => x["Name"] == name);
                mythDb["Description"] = description;

                Console.WriteLine(mythDb["Description"].AsString);
                collection.Save(mythDb);
            }
            dbsql.SaveChanges();
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        private static void ImportMongoToSql()
        {
            var mongoCreator = new MongoCreator();
            var db = mongoCreator.GetDatabase(MongoCreator.DatabaseName, MongoCreator.DatabaseHost);
            var myths = db.GetCollection<BsonDocument>("MagicalCreatureMythologyData");
            var data = myths.FindAll();

            var dbsql = new MagicalCreatureDbContext();

            var locations = dbsql.Locations.Select(o => o.Name).ToString();

            foreach (var item in data)
            {
                var loctionData = item["LocationOfOrigin"].AsString;

                if(!locations.Contains(loctionData))
                {
                    var loc = new Location { Name = loctionData };
                    dbsql.Locations.Add(loc);

                    var mythDataNme = item["Name"].AsString;
                    var mythology = new Mythology { Name = mythDataNme, Location = loc };

                    dbsql.Mythologies.Add(mythology);
                }
                else
                {
                    var mythDataNme = item["Name"].AsString;
                    var mythology = new Mythology { Name = mythDataNme, LocationId = locations.IndexOf(loctionData) };
                    dbsql.Mythologies.Add(mythology);
                }

            }

            dbsql.SaveChanges();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        private static void GenerateSqlDatabBaseIfNeeded()
        {
            var db = new MagicalCreatureDbContext();

            var loc = new Location
            {
                Name = "Sofia"
            };
            if (db.Locations.Count() == 0)
            {
                db.Locations.Add(loc);
            }

            db.SaveChanges();
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        private static void GeneratePDfReport()
        {
            /*

             var species = new Species();
             species.Name = "Dragon";
             species.Mythology = db.Mythologies.FirstOrDefault();

             var creature = new MagicalCreature();
             creature.Name = "Bob";
             creature.AssesedDangerLevel = DangerLevel.High;
             creature.DateSpotted = DateTime.Now.AddDays(-10);
             creature.AggressionWhenSpotted = AggressionLevel.Aggitated;
             creature.Location = db.Locations.FirstOrDefault();
             creature.Species = species;

             db.MagicalCreatures.Add(creature);
             db.SaveChanges();*/
            var report = new PdfReportGenerator();
            var db = new MagicalCreatureDbContext();
            report.CreateUserReport(db.MagicalCreatures,"Report1.pdf",DateTime.Now);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
        /* private static void AddElf()
        {
            var db = new MagicalCreatureDbContext();

            var mythology = new Models.Mythology
            {
                Name = "Norse",
                AreaOfOrigin = "Denmakr"
            };

            var goblins = new Models.Species
            {
                Name = "Elf",
                Mythology = mythology,
                Description = "Tall,Fast and pretty",
            };

            db.Species.Add(goblins);
            //context.SaveChanges();

            var loc = new Models.Location { Name = "Plovdiv" };
            var supAb = new Models.SuperNaturalAbility
            {
                Name = "Magic Missle",
                RangeInMeters = 10,
                DangerLevel = DangerLevel.Medium
            };

            db.Locations.Add(loc);
            //context.SaveChanges();

            db.SuperNaturalAbilities.Add(supAb);

            var creature = new MagicalCreature
            {
                Name = "Bob1",
                DateSpotted = DateTime.Now,
                AggressionWhenSpotted = AggressionLevel.Aggitated,
                AssesedDangerLevel = DangerLevel.Medium,
                Species = goblins,
                Location = loc,
            };

            creature.SuperNaturalAbilities.Add(supAb);

            db.MagicalCreatures.AddOrUpdate(creature);

            db.SaveChanges();

            Console.WriteLine(db.Mythologies.Count());
        }*/
        private static ICollection<MagicalCreatureModel> ExtractMagicalCreaturesByMythologyName(string mythology)
        {
            var db = new MagicalCreatureDbContext();

            var list = db.MagicalCreatures
                .Where(c => c.Species.Mythology.Name == "Norse")
                .Select(c => new MagicalCreatureModel
                {
                    Name = c.Name,
                    DateSpotted = c.DateSpotted,
                    AggressionWhenSpotted = c.AggressionWhenSpotted,
                    AssesedDangerLevel = c.AssesedDangerLevel,
                    Location = c.Location.Name,
                    Species = c.Species.Name + " from" + c.Species.Mythology.Name + " mythology"
                })
                .ToList();

            return list;
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: Europium-TA/DB-Project
 private static List<MagicalCreatureModel> AllCreatures(MagicalCreatureDbContext dbContext)
 {
     return dbContext.MagicalCreatures
         .Where(c => c.LocationId != c.Species.Mythology.LocationId)
         .Select(c => new MagicalCreatureModel
         {
             Name = c.Name,
             AggressionWhenSpotted = c.AggressionWhenSpotted,
             DateSpotted = c.DateSpotted,
             AssesedDangerLevel = c.AssesedDangerLevel,
             Location = c.Location.Name,
             Species = c.Species.Name
         })
         .ToList();
 }