public static void RecreateCleanDatabase() { using var context = new ShapesContext(quiet: true); context.Database.EnsureDeleted(); context.Database.EnsureCreated(); }
public ShapeGroupsSteps(ShapeGroupsContext shapeGroupsContext, ShapesContext shapesContext, RayContext rayContext, IntersectionsContext intersectionsContext, SphereContext sphereContext) { _sphereContext = sphereContext; _intersectionsContext = intersectionsContext; _rayContext = rayContext; _shapesContext = shapesContext; _shapeGroupsContext = shapeGroupsContext; }
public ShapesSteps(ShapesContext shapesContext, MaterialsContext materialsContext, RayContext rayContext, IntersectionsContext intersectionsContext, VectorsContext vectorsContext, TransformationsContext transformationsContext) { _transformationsContext = transformationsContext; _vectorsContext = vectorsContext; _intersectionsContext = intersectionsContext; _rayContext = rayContext; _materialsContext = materialsContext; _shapesContext = shapesContext; }
public static void PopulateDatabase() { using var context = new ShapesContext(quiet: true); var triangles = new List <Triangle> { new() { Name = "Acute", PartitionKey = "TrianglesPartition", Angle1 = 75, Angle2 = 85, InsertedOn = DateTime.UtcNow }, new() { Name = " Obtuse ", PartitionKey = "TrianglesPartition", Angle1 = 110, Angle2 = 35, InsertedOn = DateTime.UtcNow }, new() { Name = "Right", PartitionKey = "TrianglesPartition", Angle1 = 90, Angle2 = 45, InsertedOn = DateTime.UtcNow }, new() { Name = "Isosceles", PartitionKey = "TrianglesPartition", Angle1 = 75, Angle2 = 75, InsertedOn = DateTime.UtcNow }, new() { Name = "Equilateral", PartitionKey = "TrianglesPartition", Angle1 = 60, Angle2 = 60, InsertedOn = DateTime.UtcNow } }; context.AddRange(triangles); context.SaveChanges(); } }
public static void PopulateDatabase() { using var context = new ShapesContext(quiet: true); context.AddRange( new Triangle { Name = "Acute", Angle1 = 75, Angle2 = 85, InsertedOn = DateTime.UtcNow - TimeSpan.FromDays(2) }, new Triangle { Name = " Obtuse ", Angle1 = 110, Angle2 = 35, InsertedOn = DateTime.UtcNow - TimeSpan.FromDays(1) }, new Triangle { Name = "Right", Angle1 = 90, Angle2 = 45, InsertedOn = DateTime.UtcNow }, new Triangle { Name = "Isosceles", Angle1 = 75, Angle2 = 75, InsertedOn = DateTime.UtcNow + TimeSpan.FromDays(1) }, new Triangle { Name = "Equilateral", Angle1 = 60, Angle2 = 60, InsertedOn = DateTime.UtcNow + TimeSpan.FromDays(2) } ); context.SaveChanges(); }
public static void Cosmos_diagnostics() { Console.WriteLine($">>>> Sample: {nameof(Cosmos_diagnostics)}"); Console.WriteLine(); Helpers.RecreateCleanDatabase(); Helpers.PopulateDatabase(); using var context = new ShapesContext(); Console.WriteLine(); Console.WriteLine("Insert diagnostic events:"); Console.WriteLine(); #region InsertEvents var triangle = new Triangle { Name = "Impossible", PartitionKey = "TrianglesPartition", Angle1 = 90, Angle2 = 90, InsertedOn = DateTime.UtcNow }; context.Add(triangle); context.SaveChanges(); #endregion Console.WriteLine(); Console.WriteLine("Query diagnostic events:"); Console.WriteLine(); #region QueryEvents var equilateral = context.Triangles.Single(e => e.Name == "Equilateral"); #endregion Console.WriteLine(); Console.WriteLine("Find diagnostic events:"); Console.WriteLine(); #region FindEvents var isosceles = context.Triangles.Find("Isosceles", "TrianglesPartition"); #endregion Console.WriteLine(); Console.WriteLine("Update diagnostic events:"); Console.WriteLine(); #region UpdateEvents triangle.Angle2 = 89; context.SaveChanges(); #endregion Console.WriteLine(); Console.WriteLine("Delete diagnostic events:"); Console.WriteLine(); #region DeleteEvents context.Remove(triangle); context.SaveChanges(); #endregion Console.WriteLine(); }
public static void Cosmos_queries() { Console.WriteLine($">>>> Sample: {nameof(Cosmos_queries)}"); Console.WriteLine(); Helpers.RecreateCleanDatabase(); Helpers.PopulateDatabase(); using var context = new ShapesContext(); #region StringTranslations var stringResults = context.Triangles.Where( e => e.Name.Length > 4 && e.Name.Trim().ToLower() != "obtuse" && e.Name.TrimStart().Substring(2, 2).Equals("uT", StringComparison.OrdinalIgnoreCase)) .ToList(); #endregion Console.WriteLine(); foreach (var result in stringResults) { Console.WriteLine($" {result.Name}"); } Console.WriteLine(); #region MathTranslations var hypotenuse = 42.42; var mathResults = context.Triangles.Where( e => (Math.Round(e.Angle1) == 90.0 || Math.Round(e.Angle2) == 90.0) && (hypotenuse * Math.Sin(e.Angle1) > 30.0 || hypotenuse * Math.Cos(e.Angle2) > 30.0)) .ToList(); #endregion Console.WriteLine(); foreach (var result in mathResults) { Console.WriteLine($" {result.Name}"); } Console.WriteLine(); #region TimeTranslations var timeResults = context.Triangles.Where( e => e.InsertedOn <= DateTime.UtcNow) .ToList(); #endregion Console.WriteLine(); foreach (var result in timeResults) { Console.WriteLine($" {result.Name}"); } Console.WriteLine(); #region DistictTranslation var distinctResults = context.Triangles .Select(e => e.Angle1).OrderBy(e => e).Distinct() .ToList(); #endregion Console.WriteLine(); foreach (var result in distinctResults) { Console.WriteLine($" {result}"); } Console.WriteLine(); #region FromSql var maxAngle = 60; var rawResults = context.Triangles.FromSqlRaw( @"SELECT * FROM root c WHERE c[""Angle1""] <= {0} OR c[""Angle2""] <= {0}", maxAngle) .ToList(); #endregion Console.WriteLine(); foreach (var result in rawResults) { Console.WriteLine($" {result.Name}"); } Console.WriteLine(); }