예제 #1
0
        private ActionResult Salvar(PosicaoVM posicaoVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("O modelo não é válido.");
                }

                var posicao = Mapper.Map <PosicaoVM, Posicao>(posicaoVM);

                logic.Save(posicao);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(posicaoVM));
            }
        }
예제 #2
0
        public void CalcularAmigosProximos()
        {
            _serviceAmigoProximo.DeleteAll();

            var todosAmigos = FindAll(x => x.Ativo, i => i.AmigosQueEstaoProximos).ToList();

            foreach (var x in todosAmigos)
            {
                var amigoAtual = new AmigoVM(x);

                PosicaoVM posicaoAmigoAtual = new PosicaoVM();
                posicaoAmigoAtual.PosicaoX = amigoAtual.PosicaoX;
                posicaoAmigoAtual.PosicaoY = amigoAtual.PosicaoY;

                List <AmigoVM> ListaAmigosDistanciasACalcular = new List <AmigoVM>();

                var amigosSemOAtual = FindAll(n => n.Ativo && n.ID != amigoAtual.ID);

                foreach (var h in amigosSemOAtual)
                {
                    var amigoTerceiro = new AmigoVM(h);

                    PosicaoVM posicaoAmigosTerceiros = new PosicaoVM();
                    posicaoAmigosTerceiros.PosicaoX = amigoTerceiro.PosicaoX;
                    posicaoAmigosTerceiros.PosicaoY = amigoTerceiro.PosicaoY;
                    amigoTerceiro.Distance          = Math.Sqrt((Math.Pow(amigoAtual.PosicaoX - amigoTerceiro.PosicaoX, 2) + Math.Pow(amigoAtual.PosicaoY - amigoTerceiro.PosicaoY, 2)));


                    CalculoHistorico calHistorico = new CalculoHistorico();

                    calHistorico.Acao             = "Calculo de disntância";
                    calHistorico.Descricao        = string.Format("Calculo de distancia entre o amigo {0} e amigo {1}, resultado: {2}", amigoAtual.Nome, amigoTerceiro.Nome, amigoTerceiro.Distance);
                    calHistorico.AmigoID          = amigoAtual.ID.Value;
                    calHistorico.AmigoCalculadoID = amigoTerceiro.ID.Value;
                    calHistorico.Data             = DateTime.Now;

                    x.CalculoHistorico.Add(calHistorico);

                    ListaAmigosDistanciasACalcular.Add(amigoTerceiro);
                }

                Update(x);

                ListaAmigosDistanciasACalcular = ListaAmigosDistanciasACalcular.OrderBy(o => o.Distance).ToList();

                if (ListaAmigosDistanciasACalcular.Count > 0)
                {
                    int tamanho = ListaAmigosDistanciasACalcular.Count < 3 ? ListaAmigosDistanciasACalcular.Count : 3;

                    ListaAmigosDistanciasACalcular = ListaAmigosDistanciasACalcular.GetRange(0, tamanho);

                    var listAmigosProximos = new List <AmigoProximo.Domain.Entities.AmigoProximo>();

                    ListaAmigosDistanciasACalcular.ForEach(f =>
                    {
                        AmigoProximo.Domain.Entities.AmigoProximo apx = new Domain.Entities.AmigoProximo();

                        apx.AmigoID = amigoAtual.ID.Value;
                        apx.AmigoQueEstaoProximoID = f.ID.Value;

                        listAmigosProximos.Add(apx);
                    });

                    foreach (var item in listAmigosProximos)
                    {
                        var amigoProximo = new AmigoProximo.Domain.Entities.AmigoProximo();
                        amigoProximo.AmigoID = item.AmigoID;
                        amigoProximo.AmigoQueEstaoProximoID = item.AmigoQueEstaoProximoID;

                        _serviceAmigoProximo.Insert(amigoProximo);
                    }
                }
            }
        }
예제 #3
0
 public ActionResult Editar(PosicaoVM posicaoVM)
 {
     return(Salvar(posicaoVM));
 }
예제 #4
0
        public IActionResult PosicaoCreateOrUpdate(PosicaoVM posicaoVM)
        {
            _posicaoBU.Save(posicaoVM.Codigo, posicaoVM.Descricao, posicaoVM.Goleiro, posicaoVM.Tecnico);

            return(Ok());
        }