public List <AmigosProximos> ObterAmigosProximos(string jsonInput) { var _calculoHistoricoLogService = new CalculoHistoricoLogService(); var localizacaoAtual = JsonConvert.DeserializeObject <ProjetoTeste.Domain.Entities.Amigo>(jsonInput); var listAmigos = _amigoRepositorio.GetAll().ToList(); #region Calculo var oListAmigosProximos = new List <AmigosProximos>(); foreach (var item in listAmigos) { var oAmigosProximos = new AmigosProximos(); oAmigosProximos.idAmigo = item.Id; oAmigosProximos.Idade = item.Idade; oAmigosProximos.Nome = item.Nome; oAmigosProximos.latitude = item.latitude; oAmigosProximos.longitude = item.longitude; oAmigosProximos.distancia = (int)CalcularDistancia(localizacaoAtual.latitude, localizacaoAtual.longitude, item.latitude, item.longitude); oListAmigosProximos.Add(oAmigosProximos); } oListAmigosProximos.Sort((x, y) => x.distancia - y.distancia); oListAmigosProximos = oListAmigosProximos.Take(3).ToList(); #endregion #region Log var _calculoHistoricoLog = new CalculoHistoricoLog(); _calculoHistoricoLog.LatitudeAtual = localizacaoAtual.latitude; _calculoHistoricoLog.LongitudeAtual = localizacaoAtual.longitude; _calculoHistoricoLog.Resultado = JsonConvert.SerializeObject(oListAmigosProximos); _calculoHistoricoLogService.SalvarLog(_calculoHistoricoLog); #endregion return(oListAmigosProximos); }
public List <Tracking> ObterAmigosMaisProximo(string Nome) { List <Tracking> tracking = new List <Tracking>(); double distancia = 0; try { var pessoas = _uow._db.Pessoas.Where(x => x.Nome.Trim().ToLower() == Nome.Trim().ToLower()); if (pessoas == null || pessoas.Count() == 0) { return(tracking); } var pessoaOrigem = pessoas.ToList().FirstOrDefault(); var outrasPessoas = _uow._db.Pessoas.Where(x => x.Id != pessoaOrigem.Id).ToList(); foreach (var pessoa in outrasPessoas) { var localizacaoOrigem = new Localizacao() { Latitude = Convert.ToDouble(pessoaOrigem.Latitude), Longitude = Convert.ToDouble(pessoaOrigem.Longitude) }; var localizacaoDestino = new Localizacao() { Latitude = Convert.ToDouble(pessoa.Longitude), Longitude = Convert.ToDouble(pessoa.Longitude) }; distancia = TrackingHelper.CalculateDistance(localizacaoOrigem, localizacaoDestino); tracking.Add(new Tracking { PessoaId = pessoa.Id, Nome = pessoa.Nome, Distancia = Math.Round(distancia, 2) }); // Salvar Histórico var historico = new CalculoHistoricoLog { PessoaOrigemID = pessoaOrigem.Id, PessoaDestinoID = pessoa.Id, Distancia = Convert.ToDecimal(Math.Round(distancia, 2)) }; var Novohistorico = new CalculoHistoricoLogRepository(_uow).Save(historico); } } catch (Exception ex) { throw new Exception(ex.Message); } return(tracking.OrderBy(x => x.Distancia).Take(3).ToList()); }
public bool SalvarLog(CalculoHistoricoLog obj) { try { _calculoHistoricoLogRepositorio.Insert(ref obj); return(true); } catch (Exception ex) { return(false); } }
public CalculoHistoricoLog Save(CalculoHistoricoLog entity) { try { entity.UltimaAtualizacao = System.DateTime.Now; _uow._db.Add(entity); _uow._db.SaveChanges(); return(entity); } catch (Exception ex) { string erro = ex.Message; throw; } }
public void HistoricoLog(DateTime dateLog, int latitude, int longitude, int friendLatitude, int friendLongitude, double result) { using (var context = new LocalizacaoAmigosContext()) { CalculoHistoricoLog calculoHistoricoLog = new CalculoHistoricoLog { DateLog = dateLog, Latitude = latitude, Longitude = longitude, FriendLatitude = friendLatitude, FriendLongitude = friendLongitude, Result = result }; context.CalculoHistoricoLog.Add(calculoHistoricoLog); context.SaveChanges(); } }
public IHttpActionResult Post(CalculoHistoricoLog calculoHistoricoLog) { // Retorna o erro 400. if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Se valido, adiciona o registro. db.CalculosHistoricosLogs.Add(calculoHistoricoLog); db.SaveChanges(); // Retorna 201 return(CreatedAtRoute("DefaultApi", new { id = calculoHistoricoLog.CalculoHistoricoLogId }, calculoHistoricoLog)); }
public IHttpActionResult Put(int id, CalculoHistoricoLog calculoHistoricoLog) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); // Erro 400 } if (id != calculoHistoricoLog.CalculoHistoricoLogId) { return(BadRequest("O id informado a URL é diferente do id informado no corpo da requisição")); } if (db.CalculosHistoricosLogs.Count(c => c.CalculoHistoricoLogId == id) == 0) { return(NotFound()); } db.Entry(calculoHistoricoLog).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(StatusCode(HttpStatusCode.NoContent)); }
public void Adicionar(CalculoHistoricoLog calculoHistoricoLog) { _iCalculoHistoricoLogRepository.Adicionar(calculoHistoricoLog); }
public CalculoHistoricoLogBuilder() { calculoHistoricoLog = new CalculoHistoricoLog(); historicoCalculoLocalizacao = new List <Repositorio.Collection.Amigo>(); }
public void Update(CalculoHistoricoLog entity) { _uow._db.Update(entity); _uow._db.SaveChanges(); }
public List <CalculoHistoricoLog> Search(CalculoHistoricoLog entity) { throw new NotImplementedException(); }
public void Delete(CalculoHistoricoLog entity) { _uow._db.Remove(entity); _uow._db.SaveChanges(); }