Example #1
0
 private void AddShape(MainAreaDto area, Guid areaId, Guid shapId, AreaMapBulk bulk)
 {
     bulk.Shape.Add(new Shape()
     {
         Id     = shapId,
         TypeId = area.Shape.Type,
         AreaId = areaId
     });
 }
Example #2
0
 private static void AddPloygon(SqlDataReader reader, MainAreaDto area)
 {
     area.Shape.Data = new PolygonDto()
     {
         CoordinateId = Guid.Parse(reader["DataId"].ToString()),
         Coordinate   = JsonSerializer
                        .Deserialize <List <PolygonCoordinateDto> >(reader["CoordinatesAsJson"].ToString())
     };
 }
Example #3
0
 private void AddArea(MainAreaDto area, Guid areaId, Guid shapId, AreaMapBulk bulk)
 {
     bulk.Area.Add(
         new Domain.Entities.Area()
     {
         Id      = areaId,
         Name    = area.Name,
         ShapeId = shapId
     });
 }
Example #4
0
 private static void AddCircle(SqlDataReader reader, MainAreaDto area)
 {
     area.Shape.Data = new CircleDto()
     {
         CoordinateId = Guid.Parse(reader["DataId"].ToString()),
         Coordinate   = new CoordinateDto()
         {
             Latitude  = double.Parse(reader["Latitude"].ToString()),
             Longitude = double.Parse(reader["Longitude"].ToString())
         },
         Radius = double.Parse(reader["Radius"].ToString())
     };
 }
Example #5
0
 private static void AddRectangle(SqlDataReader reader, MainAreaDto area)
 {
     area.Shape.Data = new RectangleDto()
     {
         BoundsId = Guid.Parse(reader["DataId"].ToString()),
         Bounds   = new RectangleBoundsDto()
         {
             East  = double.Parse(reader["East"].ToString()),
             North = double.Parse(reader["North"].ToString()),
             South = double.Parse(reader["South"].ToString()),
             West  = double.Parse(reader["West"].ToString()),
         }
     };
 }
Example #6
0
        public async Task <List <MainAreaDto> > GetAllAreasAsync()
        {
            var areasList = new List <MainAreaDto>();

            using (var connection = new SqlConnection(Context.Database.GetConnectionString()))
                using (connection)
                {
                    //for pagination case , you can use [spGetAreasByPage]. Ex: get 10 page: spGetAreasByPage 1,10

                    SqlCommand command = new SqlCommand("spGetAllAreas", connection)
                    {
                        CommandType = CommandType.StoredProcedure
                    };

                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();

                    if (reader.HasRows)
                    {
                        while (await reader.ReadAsync())
                        {
                            var type = int.Parse(reader["TypeId"].ToString());
                            var area = new MainAreaDto()
                            {
                                Name = reader["Name"].ToString(),
                                Id   = Guid.Parse(reader["Id"].ToString())
                            };

                            area.Shape = new ShapeDto()
                            {
                                Type = type,
                                Id   = Guid.Parse(reader["ShapeId"].ToString())
                            };

                            switch (type)
                            {
                            case ShapeType.Circle:
                            {
                                AddCircle(reader, area);
                            }
                            break;

                            case ShapeType.Rectangle:
                            {
                                AddRectangle(reader, area);
                            }
                            break;

                            case ShapeType.Polygon:
                            {
                                AddPloygon(reader, area);
                            }
                            break;
                            }

                            areasList.Add(area);
                        }
                    }

                    reader.Close();
                }

            return(areasList);
        }