public static void addTrace(IEnumerable <Touch> touches, int gestureId, DeviceInfo dInfo, TouchField tfInfo) { try { using (dbEntities con = new dbEntities()) { var Gesture = con.Gestures.Find(gestureId); //dInfo or tfInfo already known? var oldDInfo = con.DeviceInfos.FirstOrDefault(d => d.ScreenH == dInfo.ScreenH && d.ScreenW == dInfo.ScreenW && d.Platform.Equals(dInfo.Platform) && d.UserAgent.Equals(dInfo.UserAgent)); if (oldDInfo != null) { dInfo = oldDInfo; } var oldTfInfo = con.TouchFields.FirstOrDefault(t => t.Left == tfInfo.Left && t.Right == tfInfo.Right && t.Top == tfInfo.Top && t.Bottom == tfInfo.Bottom && t.Width == tfInfo.Width && t.Height == tfInfo.Height); if (oldTfInfo != null) { tfInfo = oldTfInfo; } var trace = new Trace(); trace.DeviceInfo = dInfo; trace.TouchField = tfInfo; trace.Gesture = Gesture; foreach (var touch in touches) { touch.Trace = trace; con.Touches.Add(touch); } con.Traces.Add(trace); if (oldTfInfo != tfInfo) { con.TouchFields.Add(tfInfo); } if (oldDInfo != dInfo) { con.DeviceInfos.Add(dInfo); } con.SaveChanges(); } } catch (Exception e) { Console.Write(e.StackTrace); } }
/// <summary> /// adds a user to the db /// </summary> /// <param name="username"></param> /// <param name="name"></param> /// <returns>return true if the user was added and false if the user already exists</returns> public static bool addUser(string username, string name) { using (dbEntities con = new dbEntities()) { //user already in db? User user = con.Users.FirstOrDefault(u => u.Username.Equals(username)); if (user != null) { return(false); } user = new User(); user.Username = username; user.Name = name; con.Users.Add(user); String[] gestures = { "Circle_1Finger", "Square_1Finger", "OwnForm_1Finger", "Circle_2Finger", "Square_2Finger", "OwnForm_2Finger", "Open_5Finger", "Close_5Finger", "TurnLeft_5Finger", "TurnRight_5Finger" }; foreach (var g in gestures) { var gesture = new Gesture(); gesture.Name = g; gesture.User = user; con.Gestures.Add(gesture); } /* * var gesture1 = new Gesture(); * gesture1.Name = "Gesture1"; * gesture1.User = user; * var gesture2 = new Gesture(); * gesture2.Name = "Gesture2"; * gesture2.User = user; * var gesture3 = new Gesture(); * gesture3.Name = "Gesture3"; * gesture3.User = user; * con.Gestures.Add(gesture1); * con.Gestures.Add(gesture2); * con.Gestures.Add(gesture3); */ con.SaveChanges(); return(true); } }