Example #1
0
        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;
 }
Example #3
0
 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;
 }
Example #4
0
        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();
        }
    }
Example #5
0
        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();
        }
Example #6
0
    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();
    }
Example #7
0
    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();
    }