public async Task CalculateSquares(List <Point> points, Guid pointsListId)
        {
            List <Square> squares = new List <Square>();

            for (int i = 0; i <= points.Count - 4; i++)
            {
                for (int j = 1; j <= points.Count - 3; j++)
                {
                    for (int k = 2; k <= points.Count - 2; k++)
                    {
                        for (int l = 3; l <= points.Count - 1; l++)
                        {
                            bool isSquare = CheckIfSquare(points[i], points[j], points[k], points[l]);
                            if (isSquare)
                            {
                                squares.Add(new Square(points[i], points[j], points[k], points[l]));
                            }
                        }
                    }
                }
            }

            SquaresMetadata squaresMetadata = CreateMetadata(pointsListId, squares);
            await _squaresRepository.Create(squaresMetadata).ConfigureAwait(false);
        }
        public async Task <IEnumerable <Square> > GetSquares(Guid listId)
        {
            List <Square>   squares         = new();
            SquaresMetadata squaresMetadata = await _squaresService.GetSquares(listId).ConfigureAwait(false);

            squares.AddRange(squaresMetadata.Squares.Select(Map).ToList());

            return(squares);
        }
 public async Task SaveSquares(Guid pointsListId, List <Square> squares)
 {
     SquaresMetadata squaresMetadata = CreateMetadata(pointsListId, squares);
     await _squaresRepository.Create(squaresMetadata).ConfigureAwait(false);
 }