[Route("rest/getBusiness/{idOwner}")] //public REST servis, ako neko bas hoce, moze i iz browsera da pretrazuje kompanije, visak vidljivosti njima ne smeta public IHttpActionResult getBusiness(int idOwner) { using (var context = new EntityFrameworkModels.birdtouchEntities2()) { var ResultSetBusinessInfo = (from s in context.business_info where s.id_business_owner == idOwner select new Business() { Adress = s.adress, CompanyName = s.companyname, Email = s.email, IdBusinessOwner = s.id_business_owner, PhoneNumber = s.phonenumber, Website = s.website, ProfilePictureData = s.profilepicturedata }); var businessInfo = ResultSetBusinessInfo.FirstOrDefault <Business>(); if (businessInfo != null) { BusinessEncoded businessEncoded = new BusinessEncoded() { Website = businessInfo.Website, Adress = businessInfo.Adress, CompanyName = businessInfo.CompanyName, Email = businessInfo.Email, IdBusinessOwner = businessInfo.IdBusinessOwner, PhoneNumber = businessInfo.PhoneNumber, }; if (businessInfo.ProfilePictureData != null) { businessEncoded.ProfilePictureDataEncoded = Convert.ToBase64String(businessInfo.ProfilePictureData); } return(Ok(businessEncoded));// String serialized = Newtonsoft.Json.JsonConvert.SerializeObject(userEncoded); } } return(NotFound()); }
public IHttpActionResult getBusinessUsersNearMe() { 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 == 2); 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 == 2) { //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.business_info.Where(x => listOfUsersIdAroundMe.Contains(x.id_business_owner)).ToList <EntityFrameworkModels.business_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 <BusinessEncoded> result = new List <BusinessEncoded>(); foreach (var item in tempResult) { BusinessEncoded businessEncoded = new BusinessEncoded() { CompanyName = item.companyname, IdBusinessOwner = item.id_business_owner, Website = item.website, Adress = item.adress, Email = item.email, PhoneNumber = item.phonenumber }; if (item.profilepicturedata != null) { businessEncoded.ProfilePictureDataEncoded = Convert.ToBase64String(item.profilepicturedata); } result.Add(businessEncoded); } return(Ok(result)); } }