/// <summary> /// Returns arbitrary list of Transformers object to populate initial data /// </summary> /// <param name="context">TransformerDBContext</param> /// <returns>List<Transformer></returns> public static Task <List <Transformer> > getTransformers(TransformerDBContext context) { return(Task.Run(() => context .TransformerAllegiances .ToList <TransformerAllegiance>() .Select((transformerAllegiance, index) => Enumerable .Range(1, 5) .Select(item => new Transformer { AllegianceId = transformerAllegiance.TransformerAllegianceId , Name = $"{transformerAllegiance.AllegianceName} - {NumberToWords(item)}" , Strength = getRandomNumber(1, 10) , Intelligence = getRandomNumber(1, 10) , Speed = getRandomNumber(1, 10) , Endurance = getRandomNumber(1, 10) , Rank = getRandomNumber(1, 10) , Courage = getRandomNumber(1, 10) , Firepower = getRandomNumber(1, 10) , Skill = getRandomNumber(1, 10) } ) .ToList <Transformer>() ) .SelectMany(items => items) .ToList <Transformer>() )); }
/// <summary> /// Generate seed(initial) data for the application /// </summary> /// <param name="context"></param> /// <returns>TransformerDBContext</returns> public static Task SeedData(this TransformerDBContext context) { return(Task.Run(() => { if (context.Database.IsSqlServer()) { context.Database.EnsureCreated(); // For MSSQL only } // To truncate tables and reseed the identities -- only required during odd cases //if (context.Transformers.Any()) //{ // context.Transformers.RemoveRange(context.Transformers); // context.TransformerAllegiances.RemoveRange(context.TransformerAllegiances); // context.SaveChanges(); // if (context.Database.IsSqlServer()) // For MSSQL only // { // context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('Transformers', RESEED, 0)"); // context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('TransformerAllegiances', RESEED, 0)"); // } //} if (!context.TransformerAllegiances.Any()) { context.TransformerAllegiances.AddRange(TransformersEnums.TransformerAllegiancesList()); context.SaveChanges(); } if (!context.Transformers.Any()) { context.Transformers.AddRange(getTransformers(context).GetAwaiter().GetResult()); context.SaveChanges(); } })); }