public static Routine RegisterRoutine(User usr, Routine rtn) { using (elmatEntities entities = new elmatEntities()) { ROUTINE R = new ROUTINE(); R.UserID = usr.UserID; R.Title = rtn.Title; R.Mon = rtn.Mon; R.Tue = rtn.Tue; R.Wed = rtn.Wed; R.Thu = rtn.Thu; R.Fri = rtn.Fri; R.Sat = rtn.Sat; R.Sun = rtn.Sun; R.Hour = rtn.Hour; R.Lat = rtn.Latitude; R.Lon = rtn.Longitude; entities.ROUTINE.Add(R); entities.SaveChanges(); rtn.UserID = R.UserID; rtn.RoutineID = R.RoutineID; return rtn; } }
public static void AtendeCarona(User usr, Ride rd) { using (elmatEntities entities = new elmatEntities()) { var ride = (from R in entities.RIDE.Where(x => x.RideID == rd.RideID) select R).FirstOrDefault(); ride.DriverID = usr.UserID; entities.SaveChanges(); } }
public static void DeleteRoutine(User usr, Routine rtn) { using (elmatEntities entities = new elmatEntities()) { var qryRoutines = (from R in entities.ROUTINE where R.UserID == usr.UserID && R.RoutineID == rtn.RoutineID select R).FirstOrDefault(); entities.ROUTINE.Remove(qryRoutines); entities.SaveChanges(); } }
public static List<User> getUserFriends(User usr) { using (elmatEntities entities = new elmatEntities()) { var AlreadyFriends = (from F in entities.FRIENDS.Where(x => x.UserID_A == usr.UserID || x.UserID_B == usr.UserID) join UA in entities.USER on F.UserID_A equals UA.UserID join UB in entities.USER on F.UserID_B equals UB.UserID select new User { FacebookID = F.UserID_A == usr.UserID ? UB.FacebookID : UA.FacebookID, UserID = F.UserID_A == usr.UserID ? UB.UserID : UA.UserID, Name = F.UserID_A == usr.UserID ? UB.Name : UA.Name, RelationStatus = (int)F.StatusID }).ToList(); return AlreadyFriends; } }
public static GeoPoint checkClosestRoutine(User usr) { using (elmatEntities entities = new elmatEntities()) { var now = DateTime.Now; var closestRoutine = DateTime.Now.AddHours(1); var qryRoutines = (from R in entities.ROUTINE where R.UserID == usr.UserID && DbFunctions.CreateTime(R.Hour.Hour, R.Hour.Minute, R.Hour.Second) >= DbFunctions.CreateTime(now.Hour, now.Minute, now.Second) && DbFunctions.CreateTime(R.Hour.Hour, R.Hour.Minute, R.Hour.Second) <= DbFunctions.CreateTime(closestRoutine.Hour, closestRoutine.Minute, closestRoutine.Second) select new GeoPoint { Latitude = R.Lat, Longitude = R.Lon }).FirstOrDefault(); return qryRoutines; } }
public static void BlockFriend(User usr, User friend, bool isBlocked) { using (elmatEntities entities = new elmatEntities()) { FRIENDS F = (from f in entities.FRIENDS. Where(x => (x.UserID_A == usr.UserID && x.UserID_B == friend.UserID) || (x.UserID_B == usr.UserID && x.UserID_A == friend.UserID)) select f).FirstOrDefault(); if (isBlocked) { F.StatusID = 2; } else { F.StatusID = 1; } entities.SaveChanges(); } }
public static List<Routine> GetUserRoutine(User usr) { using (elmatEntities entities = new elmatEntities()) { var qryRoutines = (from r in entities.ROUTINE where r.UserID == usr.UserID select new Routine { RoutineID = r.RoutineID, Title = r.Title, UserID = r.UserID, Mon = r.Mon, Tue = r.Tue, Wed = r.Wed, Thu = r.Thu, Fri = r.Fri, Sat = r.Sat, Sun = r.Sun, Hour = r.Hour, Latitude = r.Lat, Longitude = r.Lon }).ToList(); return qryRoutines; } }
public static Ride VerificaCarona(User usr) { using (elmatEntities entities = new elmatEntities()) { RIDE r = (from R in entities.RIDE.Where(x => x.UserID == usr.UserID) select R).OrderByDescending(x => x.RideID).FirstOrDefault(); if (r != null) return RIDEToRide(r); else return null; } }
public static List<Ride> ListaCaronas(FiltroRide fr, User usr) { using (elmatEntities entities = new elmatEntities()) { var qryRide = (from R in entities.RIDE.Include("USER1") select R); // Elimina os amigos bloqueados var ublockedFriends = UserBLL.getUserFriends(usr).Where(x => x.RelationStatus == 1).Select(x => x.UserID).ToList(); qryRide = qryRide.Where(x => ublockedFriends.Contains(x.UserID)); if (fr.RideID.HasValue) { qryRide = qryRide.Where(x => x.RideID == fr.RideID.Value); } if (fr.DriverID.HasValue) { qryRide = qryRide.Where(x => x.DriverID == fr.DriverID.Value); } // Quem pediu a carona (talvez implementar no futuro filtro para mais de um usuário) if (fr.UserID != null) { qryRide = qryRide.Where(x => x.UserID == fr.UserID.Value); } if (fr.UserID.HasValue) { usr.UserID = fr.UserID.Value; var usrFriends = UserBLL.getUserFriends(usr).Select(x => x.UserID).ToList();; // testar isso, não sei se vai funcionar qryRide = qryRide.Where(x => usrFriends.Contains(x.UserID)); } if (fr.HoraIni.HasValue) { qryRide = qryRide.Where(x => x.Hour >= fr.HoraIni.Value); } if (fr.HoraFim.HasValue) { qryRide = qryRide.Where(x => x.Hour <= fr.HoraFim.Value); } var minHour = DateTime.Now.AddHours(-2); var subqry = (from q in qryRide group q by q.UserID into g select new { UserID = g.Key, RideID = g.Max(a => a.RideID) }); var qryRes = (from q in qryRide.Where(x => x.DriverID == null && x.UserID != usr.UserID && x.Hour >= minHour) join g in subqry on new { q.UserID, q.RideID } equals new { g.UserID, g.RideID } select new Ride { usr = new User { UserID = q.USER1.UserID, FacebookID = q.USER1.FacebookID, Name = q.USER1.Name }, RideID = q.RideID, Hour = q.Hour, LatDestino = q.LatDest, LatOrigem = q.LatOrg, LonDestino = q.LonDest, LonOrigem = q.LonOrg }).ToList(); return qryRes; } }
public static void UpdateRoutine(Routine rtn, User usr) { using (elmatEntities entities = new elmatEntities()) { var qryRoutines = (from R in entities.ROUTINE where R.UserID == usr.UserID && R.RoutineID == rtn.RoutineID select R).FirstOrDefault(); qryRoutines.Title = rtn.Title; qryRoutines.Mon = rtn.Mon; qryRoutines.Tue = rtn.Tue; qryRoutines.Wed = rtn.Wed; qryRoutines.Thu = rtn.Thu; qryRoutines.Fri = rtn.Fri; qryRoutines.Sat = rtn.Sat; qryRoutines.Sun = rtn.Sun; qryRoutines.Hour = rtn.Hour; entities.SaveChanges(); } }
/// <summary> /// Localiza os amigos que o Facebook enviou e não estão relacionados na tabela FRIENDS /// </summary> /// <param name="parFriendList"> Lista dos IDs do Facebook dos amigos </param> /// <param name="usr"> Usuário que está realizando a comparação </param> public static int MakeFriends(List<Int64> parFriendList, User usr) { using (elmatEntities entities = new elmatEntities()) { var AlreadyFriends = (from F in entities.FRIENDS.Where(x => x.UserID_A == usr.UserID || x.UserID_B == usr.UserID) join UA in entities.USER on F.UserID_A equals UA.UserID join UB in entities.USER on F.UserID_B equals UB.UserID select F.UserID_A == usr.UserID ? UB.UserID : UA.UserID).ToList(); var ReceivedFriends = (from U in entities.USER.Where(x => parFriendList.Contains(x.FacebookID)) select new User { FacebookID = U.FacebookID, UserID = U.UserID }).ToList(); var UnAddedFriends = (from RF in ReceivedFriends.Where(x => !AlreadyFriends.Contains(x.UserID)) select RF).ToList(); AddFriends(UnAddedFriends, usr); return UnAddedFriends.Count(); } }
private static void AddFriends(List<User> FriendsToAdd, User usr) { using (elmatEntities entities = new elmatEntities()) { try { foreach (User fr in FriendsToAdd) { FRIENDS f = new FRIENDS(); f.UserID_A = usr.UserID; f.UserID_B = fr.UserID; f.StatusID = 1; entities.FRIENDS.Add(f); } entities.SaveChanges(); } catch (Exception e) { throw e; } } }
public static User RegisterUser( User FbUser ) { using (elmatEntities entities = new elmatEntities()) { USER U = new USER(); U.FacebookID = FbUser.FacebookID; U.Name = FbUser.Name; entities.USER.Add(U); entities.SaveChanges(); FbUser.UserID = U.UserID; return FbUser; } }