public static void AddPostToDataBase(string namePost, decimal distanceSensors, int IdKoords, string nameBasin, string nameGround, string nameLocality, string description) { using (var dbContext = new FastWaterContext()) { GeographicalKoordinate koordinate = GeographyKordinatesService.GetGeographicalKoordinatesEf().FirstOrDefault(y => y.Id_GeographicalKoordinates == IdKoords); Basin basin = dbContext.Basins.FirstOrDefault(y => y.NameBasin.Equals(nameBasin)); Ground ground = dbContext.Grounds.FirstOrDefault(y => y.TypeGround.Equals(nameGround)); Locality locality = dbContext.Localities.FirstOrDefault(y => y.NameLocality.Equals(nameLocality)); int idKoords = dbContext.GeographicalKoordinates.FirstOrDefault(x => x.Id_GeographicalKoordinates == IdKoords).Id_GeographicalKoordinates; int idbasin = dbContext.Basins.FirstOrDefault(y => y.NameBasin.Equals(nameBasin)).Id_Basin; int idGround = dbContext.Grounds.FirstOrDefault(y => y.TypeGround.Equals(nameGround)).Id_Ground; int idlocal = dbContext.Localities.FirstOrDefault(y => y.NameLocality.Equals(nameLocality)).Id_Locality; Post post = new Post() { NamePost = namePost, DistanceBeetwenSensors = distanceSensors, // GeographicalKoordinate = koordinate, Id_GeographicalKoordinates = idKoords, // Basin = basin, Id_Basin = idbasin, // Ground = ground, Id_Ground = idGround, // Locality = locality, Id_Locality = idlocal, description = description }; dbContext.Posts.Add(post); dbContext.SaveChanges(); } }
public static void UpdatePost(int idUpdate, string namePost, decimal distanceSensors, int IdKoords, string nameBasin, string nameGround, string nameLocality, string description) { var context = new FastWaterContext(); //Объект класса для получения доступа к сущностям GeographicalKoordinate koordinate = GeographyKordinatesService.GetGeographicalKoordinatesEf().FirstOrDefault(y => y.Id_GeographicalKoordinates == IdKoords); Basin basin = context.Basins.FirstOrDefault(y => y.NameBasin.Equals(nameBasin)); Ground ground = context.Grounds.FirstOrDefault(y => y.TypeGround.Equals(nameGround)); Locality locality = context.Localities.FirstOrDefault(y => y.NameLocality.Equals(nameLocality)); IQueryable <Post> query = context.Posts; var updateObject = query.FirstOrDefault(x => x.Id_Post == idUpdate); updateObject.NamePost = namePost; updateObject.DistanceBeetwenSensors = distanceSensors; updateObject.GeographicalKoordinate = koordinate; updateObject.Basin = basin; updateObject.Ground = ground; updateObject.Locality = locality; updateObject.description = description; context.Entry(updateObject).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); }
public static void AddGeographyKoordToDataBase(int srid, int radiusAction, decimal heighSeaLevel, string description, string typeKoordinates, params double[] latitude_longitude) { var context = new FastWaterContext(); //var location = new GeographicalKoordinate() //{ // // Create a point using native DbGeography Factory method // Koordinate = DbGeography.PointFromText( // string.Format("POINT({0} {1})", -121.527200, 45.712113) // , 4326), //}; //context.GeographicalKoordinates.Add(location); DbGeography geographyKoords = null; switch (typeKoordinates) { case "POINT": geographyKoords = CreatePoint(latitude_longitude[0], latitude_longitude[1]); break; case "LINESTRING": geographyKoords = CreateLineString(latitude_longitude[0], latitude_longitude[1], latitude_longitude[2], latitude_longitude[3]); break; case "POLYGON": geographyKoords = CreatePoligon(latitude_longitude); break; // case MessageBox.Show("Не верный тип координат"); } GeographicalKoordinate geographicalKoordinate = new GeographicalKoordinate() { Koordinate = geographyKoords, SRID = srid, RadiusAction = radiusAction, HeighSeaLevel = heighSeaLevel, description = description, TypeKoordinates = typeKoordinates }; context.GeographicalKoordinates.Add(geographicalKoordinate); context.SaveChanges(); }