//
        // Aceitar um pedido de amizade
        //
        public static bool AceitarPedido(string username1, string username2, int forca, string tag)
        {
            Ligacao ligacao = AddLigacao(username1, username2, tag, forca);

            if (ligacao != null)
            {
                ligacao.Estado = 1;
                ligacao.Save();

                var x = new IA_AR.Utils();

                ligacao = Ligacao.LoadByUserNames(username2, username1);
                if (ligacao != null)
                {
                    ligacao.Estado = 1;
                    ligacao.Save();

                    x.insertLig(username1.ToLower(), username2.ToLower(), forca);
                    x.insertLig(username2.ToLower(), username1.ToLower(), ligacao.ForcaDeLigacao);

                    return(true);
                }
                return(false);
            }
            return(false);
        }
        //
        // Mudar Forca de uma Relação
        //
        public static bool MudarTagRelacao(string username1, string username2, int forca)
        {
            Ligacao ligacao = Ligacao.LoadByUserNames(username1, username2);

            if (ligacao != null && forca < 6 && forca > 0)
            {
                ligacao.ForcaDeLigacao = forca;

                return(true);
            }

            return(false);
        }
        //
        // Mudar Tag de uma Relação
        //
        public static bool MudarTagRelacao(string username1, string username2, string tagS)
        {
            Ligacao ligacao = Ligacao.LoadByUserNames(username1, username2);

            if (ligacao != null)
            {
                Tag tag = Tag.LoadTagByNome(tagS);

                if (tag != null)
                {
                    ligacao.IdTagRelacao = tag.ID;

                    return(true);
                }
            }

            return(false);
        }
        //
        // Rejeitar um pedido de amizade
        //
        public static bool RejeitarPedido(string username1, string username2)
        {
            Ligacao ligacao = AddLigacao(username1, username2, "", -1);

            if (ligacao != null)
            {
                ligacao.Estado = -1;
                ligacao.Save();

                ligacao = Ligacao.LoadByUserNames(username2, username1);
                if (ligacao != null)
                {
                    ligacao.Estado = -1;
                    ligacao.Save();
                    return(true);
                }
                return(false);
            }
            return(false);
        }
        // Metodos
        //
        //
        // Adicionar ligação através de dois Usernames e um nome de Tag
        public static Ligacao AddLigacao(string username1, string username2, string tagS, int forca)
        {
            Ligacao ligacao = Ligacao.LoadByUserNames(username1, username2);
            Tag     tag     = Tag.LoadTagRelacaoByNome(tagS);

            if (ligacao == null)
            {
                if (tag != null)
                {
                    ligacao = new Ligacao(User.LoadByUserName(username1).UniqueIdentifierUserId,
                                          User.LoadByUserName(username2).IdUserLigado,
                                          forca,
                                          tag.ID);
                }
                else
                {
                    ligacao = new Ligacao(User.LoadByUserName(username1).UniqueIdentifierUserId,
                                          User.LoadByUserName(username2).IdUserLigado,
                                          forca,
                                          -1);
                }
            }
            else
            {
                if (tag == null)
                {
                    ligacao.IdTagRelacao = -1;
                }
                else
                {
                    ligacao.IdTagRelacao = tag.ID;
                }
                ligacao.ForcaDeLigacao = forca;
            }
            return(ligacao);
        }