public IHttpActionResult getUserLogin() { IEnumerable <string> headerValues; headerValues = Request.Headers.GetValues("username"); String username = headerValues.FirstOrDefault(); headerValues = Request.Headers.GetValues("password"); String password = headerValues.FirstOrDefault(); using (var context = new EntityFrameworkModels.birdtouchEntities2()) { var ResultSetUserInfo = (from s in context.users join sa in context.user_info on s.id equals sa.id_user_private where s.username == username && s.password == password select new User() { Id = s.id, Username = s.username, FirstName = sa.firstName, LastName = sa.lastName, Email = sa.email, PhoneNumber = sa.phoneNumber, DateOfBirth = sa.dateOfBirth, Adress = sa.adress, ProfilePictureData = sa.profilePictureData, FbLink = sa.fbLink, TwitterLink = sa.twLink, GPlusLink = sa.gPlusLink, LinkedInLink = sa.linkedInLink }); var userInfo = ResultSetUserInfo.FirstOrDefault <User>(); if (userInfo != null) { UserEncodedImage userEncoded = new UserEncodedImage() //novaKlasa zbog base64string konverzije niza bajtova { Adress = userInfo.Adress, DateOfBirth = userInfo.DateOfBirth, Email = userInfo.Email, FbLink = userInfo.FbLink, FirstName = userInfo.FirstName, Username = userInfo.Username, GPlusLink = userInfo.GPlusLink, Id = userInfo.Id, LastName = userInfo.LastName, LinkedInLink = userInfo.LinkedInLink, PhoneNumber = userInfo.PhoneNumber, TwitterLink = userInfo.TwitterLink, }; if (userInfo.ProfilePictureData != null) { userEncoded.ProfilePictureDataEncoded = Convert.ToBase64String(userInfo.ProfilePictureData); } return(Ok(userEncoded)); // String serialized = Newtonsoft.Json.JsonConvert.SerializeObject(userEncoded); } } return(NotFound()); }
public IHttpActionResult getPrivateUsersNearMe() { IEnumerable <string> headerValues; headerValues = Request.Headers.GetValues("id"); String id = headerValues.FirstOrDefault(); int id5 = Int32.Parse(id); //mozda da se napravi jos jedan parametar za radijus decimal?mineLongitude = 0; decimal?mineLatitude = 0; using (var context = new EntityFrameworkModels.birdtouchEntities2()) { var me = context.active_users.SingleOrDefault(x => x.user_id == id5 && x.active_mode == 1); mineLatitude = me.location_latitude; mineLongitude = me.location_longitude; //sada imamo moju lokaciju iz baze List <int?> listOfUsersIdAroundMe = new List <int?>(); foreach (var active_user in context.active_users) { if (active_user.user_id != id5 && active_user.active_mode == 1) //da ne uporedjujemo sa samim sobom { double distance = new Coordinates((double)mineLatitude, (double)mineLongitude) .DistanceTo( new Coordinates((double)active_user.location_latitude, (double)active_user.location_longitude), UnitOfLength.Kilometers ); if (distance < 1.5) { listOfUsersIdAroundMe.Add(active_user.user_id); } } } var tempResult = context.user_info.Where(x => listOfUsersIdAroundMe.Contains(x.id_user_private)).ToList <EntityFrameworkModels.user_info>(); //ovaj deo koji sledi mozda nije potreban, treba ispitati da li moze bez ovog encoded dela, ali ovako je jasnije //takodje, username ostaje null zbog zastite List <UserEncodedImage> result = new List <UserEncodedImage>(); foreach (var item in tempResult) { UserEncodedImage userEncoded = new UserEncodedImage() { Adress = item.adress, DateOfBirth = item.dateOfBirth, Email = item.email, FbLink = item.fbLink, FirstName = item.firstName, GPlusLink = item.gPlusLink, Id = item.id_user_private, LastName = item.lastName, LinkedInLink = item.linkedInLink, PhoneNumber = item.phoneNumber, TwitterLink = item.twLink }; if (item.profilePictureData != null) { userEncoded.ProfilePictureDataEncoded = Convert.ToBase64String(item.profilePictureData); } result.Add(userEncoded); } return(Ok(result)); } }