partial void DeleteRoutetag(Routetag instance);
 partial void UpdateRoutetag(Routetag instance);
 partial void InsertRoutetag(Routetag instance);
		private void detach_Routetags(Routetag entity)
		{
			this.SendPropertyChanging();
			entity.Route = null;
		}
		private void attach_Routetags(Routetag entity)
		{
			this.SendPropertyChanging();
			entity.Route = this;
		}
Exemple #6
0
        public static int insertRoute(RouteModel rm)
        {
            // Create route tuple (meta data)
            Route r = new Route();
            r.User_ID = rm.userID;
            r.City = rm.city;
            r.Name = rm.name;
            r.Heightmeters = rm.heightmeters;
            r.Description = rm.description;
            r.ValidFrom = DateTime.Now;
            _db.Routes.InsertOnSubmit(r);
            _db.SubmitChanges();

            // Create event, that route was created
            RouteCreatedEvent rce = new RouteCreatedEvent(r);
            rce.save();

            // Add tags
            List<Tag> insTags = TagModel.insertTags(rm.tags);
            if (insTags != null)
            {

                List<Routetag> rtags = new List<Routetag>();
                foreach (Tag t in insTags)
                {
                    Routetag rt = new Routetag();
                    rt.Route_ID = r.RouteID;
                    rt.Tag_ID = t.Tag_ID;
                    rtags.Add(rt);
                }
                _db.Routetags.InsertAllOnSubmit(rtags);
                _db.SubmitChanges();
            }

            // Update inputted routemodel with id given by DB
            rm.routeID = r.RouteID;

            // Select the SPROC to use
            SqlConnection conn = new SqlConnection(_db.Connection.ConnectionString);
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "InsertRouteLineString";
            cmd.CommandType = CommandType.StoredProcedure;

            // Add arguments to the SPROC
            SqlParameter param = new SqlParameter("@LINESTRING", SqlDbType.Udt);
            param.SqlDbType = SqlDbType.Udt;
            param.UdtTypeName = "geography";
            param.Value = rm.routeLineString;

            cmd.Parameters.Add(param);

            cmd.Parameters.Add(new SqlParameter("@ROUTEID", r.RouteID));

            cmd.ExecuteNonQuery();

            return r.RouteID;
        }