示例#1
0
 public ActionResult <Amigo> Cadastrar(AmigoVM model)
 {
     try
     {
         _amigoService.Cadastrar(model);
         return(Ok("Amigo cadastrado com sucesso."));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
 public ActionResult Delete(Guid id, AmigoVM amigoVM)
 {
     try
     {
         _business.Deletar(Mapper.Map <Amigo>(amigoVM));
         return(RedirectToAction("Index"));
     }
     catch (Exception e)
     {
         ModelState.AddModelError("", "Não foi possivel deletar este amigo, verifique se ele não tem emprestimos em aberto.");
         ModelState.AddModelError("", e.Message);
         return(View(Mapper.Map <AmigoVM>(_business.Recuperar(id))));
     }
 }
示例#3
0
        public void ExcluirAmigo(AmigoVM model)
        {
            try
            {
                var amigoBD = _service.Find(x => x.ID == model.ID);

                amigoBD.Ativo = false;

                Update(amigoBD);
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#4
0
        public double CalcularDistanciaEntreAmigos(AmigoVM amVM1, AmigoVM amVM2)
        {
            double           resultado    = Math.Sqrt((Math.Pow(amVM1.PosicaoX - amVM2.PosicaoX, 2) + Math.Pow(amVM1.PosicaoY - amVM2.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}", amVM1.Nome, amVM2.Nome, resultado);
            calHistorico.AmigoID          = amVM1.ID.Value;
            calHistorico.AmigoCalculadoID = amVM2.ID.Value;
            calHistorico.Data             = DateTime.Now;

            _service.Insert(calHistorico);

            return(resultado);
        }
示例#5
0
        public List <AmigoVM> ObterAmigos()
        {
            var listRetorno = new List <AmigoVM>();

            _service.FindAll(x => x.Ativo, i => i.AmigosQueEstaoProximos).ToList().ForEach(a =>
            {
                var amigo          = new AmigoVM(a);
                var amigosproximos = _serviceAmigoProximo.FindAll(x => x.AmigoID == amigo.ID);

                amigosproximos.ToList().ForEach(d => amigo.AmigosProximos.Add(new AmigoProximoVM(d)));

                listRetorno.Add(amigo);
            });

            return(listRetorno);
        }
示例#6
0
        // <summary>
        /// Cadastrar Amigo
        /// </summary>
        /// <param name="AmigoVM">AmigoVM</param>
        /// <returns></returns>
        public void Cadastrar(AmigoVM model)
        {
            try
            {
                Amigo amigo = new Amigo()
                {
                    Nome = model.Nome
                };

                _amigoRepository.Add(amigo);
            }
            catch (Exception ex)
            {
                GlobalException.ReturnException(ex);
            }
        }
示例#7
0
        public IHttpActionResult ExcluirAmigo(AmigoVM model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                _amigoService.ExcluirAmigo(model);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public ActionResult Edit(Guid id, AmigoVM amigoVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(amigoVM));
                }

                _business.Alterar(Mapper.Map <Amigo>(amigoVM));
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", "Não foi possivel alterar este amigo");
                ModelState.AddModelError("", e.Message);
                return(View(amigoVM));
            }
        }
        public async Task <ActionResult> Create(AmigoVM amigoVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(amigoVM));
                }
                var user = new ApplicationUser {
                    UserName = amigoVM.Email, Email = amigoVM.Email
                };
                var senhaPadrao = WebConfigurationManager.AppSettings["SenhaPadrao"];
                var result      = await UserManager.CreateAsync(user, senhaPadrao);

                if (result.Succeeded)
                {
                    _business.Salvar(Mapper.Map <Amigo>(amigoVM));
                }
                else
                {
                    if (result.Errors.First().Contains("already taken"))
                    {
                        ModelState.AddModelError("", "Email já esta sendo usado.");
                    }
                    else
                    {
                        ModelState.AddModelError("", result.Errors.First());
                    }

                    return(View(amigoVM));
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                return(View(amigoVM));
            }
        }
示例#10
0
        public void CadastrarAmigo(AmigoVM model)
        {
            try
            {
                model.Ativo = true;

                var amigo = AmigoVM.ConvertModel(model);

                var amigoMesmaPosicao = Find(x => x.PosicaoX == model.PosicaoX && x.PosicaoY == model.PosicaoY);

                if (amigoMesmaPosicao != null)
                {
                    throw new Exception("Já existe um amigo nessa posição, escolha outra");
                }

                _service.Insert(amigo);

                CalcularAmigosProximos();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#11
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);
                    }
                }
            }
        }
示例#12
0
        public InserirAmigos()
        {
            InitializeComponent();

            BindingContext = new AmigoVM(this);
        }