예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("CachorroId,Nome,DonoId")] Cao cao)
        {
            if (id != cao.CachorroId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cao);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CaoExists(cao.CachorroId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DonoId"] = new SelectList(_context.Dono, "DonoId", "DonoId", cao.DonoId);
            return(View(cao));
        }
        public async Task <IActionResult> Edit(int id, [Bind("CaoId,Nome,Idade,Raca")] Cao cao)
        {
            if (id != cao.CaoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cao);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CaoExists(cao.CaoId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(IndexAdmin)));
            }
            return(View(cao));
        }
예제 #3
0
        public void Verificar_se_o_cao_esta_comendo()
        {
            // Arrange
            Cao caoGenerico = new Cao();

            // Act
            caoGenerico.Nome = "Totó";

            // Assert
            Assert.Equal("Totó começou a comer", caoGenerico.Comer());
        }
예제 #4
0
        public void Verificar_latido_cachorro()
        {
            // Arrange
            Cao caoGenerico = new Cao();

            // Act
            var latido = caoGenerico.Latir();

            // Assert
            Assert.Equal("Au, au au", latido);
        }
예제 #5
0
        public async Task <IActionResult> Create([Bind("CachorroId,Nome,DonoId")] Cao cao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cao);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DonoId"] = new SelectList(_context.Dono, "DonoId", "DonoId", cao.DonoId);
            return(View(cao));
        }
예제 #6
0
        public void Verificar_se_o_cao_foi_passear()
        {
            // Arrange
            Cao caoGenerico = new Cao();

            // Act
            var foiPassear = false;

            // Assert
            Assert.Equal($"Sinto muito, mas o {caoGenerico.Nome} não poderá passear, pois está chovendo", caoGenerico.Passear(true));
            Assert.Equal($"{caoGenerico.Nome} foi passear", caoGenerico.Passear(false));
        }
        public async Task <IActionResult> Create([Bind("CaoId,Nome,Idade,Raca, DataDeEntrada")] Cao cao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cao);
                await _context.SaveChangesAsync();

                SetSuccessMessage("Cão criado com sucesso");

                return(RedirectToAction(nameof(IndexAdmin)));
            }
            return(View(cao));
        }
예제 #8
0
 /// <summary>
 /// Adicionar um cao
 /// </summary>
 /// <param name="c">Cao a adicionar</param>
 /// <returns>verdade se adicionou o cao ou falso se falhar</returns>
 public static bool AddCao(Cao c)
 {
     foreach (Cao cao in caes)
     {
         //verifica se o cao já existe
         if (cao.Id == c.Id)
         {
             return(false);
         }
     }
     caes.Add(c);
     return(true);
 }
예제 #9
0
        static void Main(string[] args)
        {
            #region Cao
            Cao c  = new Cao("Bolinhas", "terrier", "macho", DateTime.Today, "médio", "meigo");
            Cao c2 = new Cao("Pateco", "labrador", "macho", DateTime.Today, "médio", "brincalhao");

            try
            {
                if (RegrasCao.InsereCao(c) == true && RegrasCao.InsereCao(c2) == true)
                {
                    Console.WriteLine("ID: " + c.Id + "\n");
                    Console.WriteLine("ID: " + c2.Id + "\n");
                }
                else
                {
                    Console.WriteLine("Insucesso");
                }
            }
            catch (Excecao e)
            {
                Console.WriteLine(e.Message);
            }

            //Console.WriteLine(c.ToString());
            //Console.WriteLine(c2.ToString());

            //RegrasParque.ProcuraCao(2);

            RegrasCao.RegistarCao(@"C:\Users\BOUCAA\Documents\Visual Studio 2019\GITHUB\TP_LP2_4459_6163\DAL\Ficheiros\caes.bin");
            RegrasCao.MostrarCao(@"C:\Users\BOUCAA\Documents\Visual Studio 2019\GITHUB\TP_LP2_4459_6163\DAL\Ficheiros\caes.bin");
            Console.WriteLine(RegrasCao.ShowCaes());
            //RegrasParque.RegistarCaoTxt();
            #endregion

            #region Boletim Sanitario

            Vacina v = new Vacina("gripe", "imunologica");
            RegrasBoletim.InsereVacina(v);
            ArrayList aux = new ArrayList();
            aux.Add(v);
            //Vacinas disponiveis
            RegrasBoletim.ProcuraTodasVacinas();
            BoletimSanitario b = new BoletimSanitario(c);

            RegrasBoletim.InsereBoletim(b);
            RegrasBoletim.InsereTratamentoBoletim(b, aux);
            #endregion


            Console.ReadKey();
        }
예제 #10
0
        public async Task <IActionResult> deletarCao(int idCao)
        {
            Usuario proprietario = await _context.Usuario.FirstOrDefaultAsync(user => user.Id == PegarIdUsuarioToken());

            Cao cao = await _context.Cao.FirstOrDefaultAsync(it => it.Id == idCao);

            if (cao.Proprietario != proprietario)
            {
                BadRequest("O usuário logado não pode deletar este cão.");
            }

            _context.Remove(cao);
            await _context.SaveChangesAsync();

            return(Ok());
        }
예제 #11
0
        static void Main(string[] args)
        {
            //Interface Covariance
            IMessageRecieved <object> objMessageRX = new DataTX <string>();

            //Interface Contravariance
            IMessageSend <string> objMessageSend = new DataTX <object>();


            //Delegate Covariance
            Func1 <Cao> delegateCao = new Func1 <Cao>(CreateCaoInstance);
            Cao         objCao      = delegateCao();

            Console.WriteLine("Convariance:" + objCao);
            Func1 <Animal> delegateAnimal = delegateCao;
            Animal         objAnimal      = delegateAnimal();

            Console.WriteLine("Covariance:" + objAnimal);

            //Delegate Contravariance
            Action1 <Animal> act1 = new Action1 <Animal>(DisplayCaoInstance);

            act1(new Animal());
            Action1 <Cao> cao1 = act1;

            cao1(new Cao());

            //Icomparer Contravariance
            BaseComparer <Manager> objComparer = new BaseComparer <Manager>();
            List <Manager>         managerList = new List <Manager>();

            managerList.Add(new Manager("Damasceno", 1));
            managerList.Add(new Manager("Vitor", 2));
            managerList.Sort(objComparer);

            List <Employee> employeeList = new List <Employee>();

            employeeList.Add(new Employee("Damasceno", 1));
            employeeList.Add(new Employee("Vitor", 2));

            //employeeList.Sort(objComparer);
            managerList.ForEach(e => Console.WriteLine(e.ID + " " + e.Name));

            Console.ReadKey();
        }
예제 #12
0
        public async Task <IActionResult> alterarCao(int idCao, Cao caoAtualiado)
        {
            Cao cao = await _context.Cao.FirstOrDefaultAsync(c => c.Id == idCao);

            //busca o peso
            PesoCao pesoCao = await _context.PesoCao.FirstOrDefaultAsync(pc => pc.Id == caoAtualiado.PesoId);

            cao.Nome           = caoAtualiado.Nome;
            cao.Raca           = caoAtualiado.Raca;
            cao.DataNascimento = caoAtualiado.DataNascimento;
            cao.Porte          = caoAtualiado.Porte;
            cao.PesoId         = caoAtualiado.PesoId;
            cao.Peso           = pesoCao;

            _context.Update(cao);
            await _context.SaveChangesAsync();

            return(Ok());
        }
        //Deverá somente mandar os ids dos cães nas solicitações
        public async Task <IActionResult> AdicionarCaoServico(int idCao)
        {
            CaoServico novoCaoServico = new CaoServico();

            Usuario Proprietario = await _context.Usuario.FirstOrDefaultAsync(u => u.Id == PegarIdUsuarioToken());

            //Buscar o cão passado no JSON
            Cao cao = await _context.Cao.Include(prop => prop.Proprietario)
                      .FirstOrDefaultAsync(cao => cao.Id == idCao);

            //Pegar o id do proprietário responsável pelo cão
            int idProprietario = cao.Proprietario.Id;

            if (Proprietario.TipoConta != TipoConta.Proprietario)
            {
                return(BadRequest("Este usuário não tem permissão para esta ação."));
            }

            if (Proprietario.Id != idProprietario)
            {
                return(BadRequest("O cão não pertence a " + Proprietario.Nome));
            }

            //Pegar o último serviço solicitado pelo Proprietário, para associar o cão a este serviço
            Servico servico = await _context.Servico
                              .Include(usua => usua.Usuarios)
                              .Where(id => id.ProprietarioId == PegarIdUsuarioToken())
                              .OrderBy(it => it.Id)
                              .LastAsync();


            //O servico a qual o cão está sendo associado será o serviço buscado acima
            novoCaoServico.Servico = servico;
            novoCaoServico.Cao     = cao;

            await _context.CaesServico.AddAsync(novoCaoServico);

            await _context.SaveChangesAsync();

            return(Ok("Cão adicionado ao servico com sucesso."));
        }
예제 #14
0
        public void Verificar_getters_e_setters()
        {
            // Arrange
            Cao caoGenerico = new Cao();

            // Act
            caoGenerico.Nome     = "Rufus";
            caoGenerico.Id       = 1;
            caoGenerico.Porte    = "médio";
            caoGenerico.CorPelo  = "preto";
            caoGenerico.NomeDono = "Robson";

            // Assert
            Assert.Equal("Robson", caoGenerico.NomeDono);
            Assert.Equal("Rufus", caoGenerico.Nome);
            Assert.Equal(1, caoGenerico.Id);
            Assert.Equal("médio", caoGenerico.Porte);
            Assert.Equal("preto", caoGenerico.CorPelo);
            Assert.NotEqual(3, caoGenerico.Id);
            Assert.NotEqual("Pedro", caoGenerico.NomeDono);
        }
예제 #15
0
        public async Task <IActionResult> cadastrarCaoAsync(Cao novoCao)
        {
            //Busca o usuário de acordo com o token
            Usuario usuario = await _context.Usuario.FirstOrDefaultAsync(prop => prop.Id == PegarIdUsuarioToken());

            if (usuario.TipoConta == TipoConta.DogWalker)
            {
                return(BadRequest("Um Dog Walker não pode ter cães."));
            }

            //Busca o peso de acordo com o Id
            int     idPesoCao = novoCao.PesoId;
            PesoCao pesoCao   = await _context.PesoCao.FirstOrDefaultAsync(pesoId => pesoId.Id == idPesoCao);

            novoCao.Proprietario = usuario;
            novoCao.Peso         = pesoCao;

            await _context.Cao.AddAsync(novoCao);

            await _context.SaveChangesAsync();

            return(Ok("Cão cadastrado com sucesso!"));
        }
예제 #16
0
    /// <summary>
    /// AI计算从一个点开始走的期望
    /// </summary>
    /// <param name="Game">游戏句柄</param>
    /// <param name="Player">玩家句柄</param>
    /// <param name="Block">起点的格子</param>
    /// <param name="Banned">被禁止投出的骰子点数(用于唐寅的技能【浪子】)</param>
    /// <param name="IncludePassMoney">计算是否包括经过奖励(用于计算前进收益)</param>
    /// <returns></returns>
    public static int StartFromExpect(PGame Game, PPlayer Player, PBlock Block, int Banned = 0, bool IncludePassMoney = true)
    {
        PBlock CurrentBlock = Block;

        if (!Player.NoLadder)
        {
            CurrentBlock = CurrentBlock.NextBlock;
        }
        if (Player.Traffic != null && Player.Traffic.Model is P_ChiihTuu)
        {
            CurrentBlock = CurrentBlock.NextBlock;
        }
        if (Player.NoLadder)
        {
            return(Expect(Game, Player, CurrentBlock));
        }
        int Expectation      = 0;
        int NewtonTargetStep = (Player.General is P_Newton ? P_Newton.Grx_Next(Game, Block).Value : 0);

        for (int i = 6; i >= 1; --i)
        {
            if (Banned == i)
            {
                continue;
            }
            int SingleExpect = Expect(Game, Player, CurrentBlock);
            if (NewtonTargetStep > 0)
            {
                SingleExpect = Math.Max(SingleExpect, Expect(Game, Player, Game.Map.NextStepBlock(CurrentBlock, NewtonTargetStep)));
            }
            Expectation += SingleExpect;
            if (IncludePassMoney)
            {
                if (CurrentBlock.GetMoneyPassSolid != 0)
                {
                    int Disaster = Block.GetMoneyPassSolid;
                    if (Disaster < 0 && -Disaster <= 1000 && Player.Traffic != null && Player.Traffic.Model is P_NanManHsiang)
                    {
                        Disaster = 0;
                    }
                    else if (Disaster < 0 && Player.Defensor != null && Player.Defensor.Model is P_YinYangChing)
                    {
                        Disaster = 0;
                    }
                    Expectation += i * Disaster;
                }
                if (CurrentBlock.GetMoneyPassPercent != 0)
                {
                    int Disaster = PMath.Percent(Player.Money, CurrentBlock.GetMoneyPassPercent);
                    if (Disaster < 0 && -Disaster <= 1000 && Player.Traffic != null && Player.Traffic.Model is P_NanManHsiang)
                    {
                        Disaster = 0;
                    }
                    else if (Disaster < 0 && Player.Defensor != null && Player.Defensor.Model is P_YinYangChing)
                    {
                        Disaster = 0;
                    }
                    Expectation += i * Disaster;
                }
                if (CurrentBlock.GetCardPass != 0)
                {
                    Expectation += i * 2000 * CurrentBlock.GetCardPass;
                }
                if (CurrentBlock.BusinessType.Equals(PBusinessType.Altar) && CurrentBlock.Lord != null && CurrentBlock.Lord.TeamIndex != Player.TeamIndex)
                {
                    Expectation -= 1000;
                }
            }
            CurrentBlock = Block.NextBlock;
        }
        Player.Area.AmbushCardArea.CardList.ForEach((PCard Card) => {
            if (Card.Model is P_TsaaoMuChiehPing Cao)
            {
                Expectation += Cao.AIExpect(Game, Player, Block);
            }
        });
        return(Expectation / (Banned > 0 ? 5 : 6));
    }
예제 #17
0
        public ModelDonoCao AcaoOperacao(Operacao.Acao tipoenum, string nomeDono, string Nomecao, string RacaCao)
        {
            try
            {
                Operacao.Acao _valor = tipoenum;

                if (_valor == Operacao.Acao.sel)
                {
                    using (var context = new ApplicationDBContext())
                    {
                        var  idDonoFG = context.tblDono.First(a => a.Nome == nomeDono).IdDono;
                        var  IdCaoFG  = context.tblCao.First(a => a.IdCao == idDonoFG).IdCao;
                        Dono dono     = context.tblDono.First(a => a.IdDono == idDonoFG);
                        Cao  cao      = context.tblCao.First(a => a.IdCao == IdCaoFG);
                        mdc.NomeDono = dono.Nome;
                        mdc.NomeCao  = cao.Nome;
                        mdc.RacaCao  = cao.Raca;
                        return(mdc);
                    }
                }
                else if (_valor == Operacao.Acao.edit)
                {
                    using (var context = new ApplicationDBContext())
                    {
                        var dono   = context.tblDono.First(a => a.Nome == nomeDono);
                        var iddono = dono.IdDono;
                        var cao    = context.tblCao.First(a => a.IdCao == iddono);
                        dono.Nome = nomeDono;
                        cao.Nome  = Nomecao;
                        cao.Raca  = RacaCao;
                        context.Update(dono);
                        context.Update(cao);
                        context.SaveChanges();
                        return(null);
                    }
                }
                else if (_valor == Operacao.Acao.del)
                {
                    using (var context = new ApplicationDBContext())
                    {
                        var dono            = context.tblDono.First(a => a.Nome == nomeDono);
                        var iddono          = dono.IdDono;
                        var cao             = context.tblCao.First(a => a.IdCao == iddono);
                        var relacaoDono_Cao = context.tblDono_Cao.First(a => a.IdDono == iddono);
                        context.Remove(relacaoDono_Cao);
                        context.Remove(dono);
                        context.Remove(cao);
                        context.SaveChanges();
                        return(null);
                    }
                }
                else if (_valor == Operacao.Acao.add)
                {
                    Dono             d   = new Dono();
                    Cao              c   = new Cao();
                    Relacao_Dono_Cao rdc = new Relacao_Dono_Cao();

                    using (var context = new ApplicationDBContext())
                    {
                        d.Nome = nomeDono;
                        c.Nome = Nomecao;
                        c.Raca = RacaCao;
                        context.Add(d);
                        context.Add(c);
                        context.SaveChanges();

                        var idDonoFG = context.tblDono.First(a => a.Nome == nomeDono).IdDono;
                        int idCaoFG  = context.tblCao.First(a => a.Nome == nomeDono).IdCao;
                        rdc.IdDono = idDonoFG;
                        rdc.IdCao  = idCaoFG;
                        context.Add(rdc);
                        context.SaveChanges();
                        return(null);
                    }
                }
                return(null);
            }
            catch (Exception ex)
            {
                Console.WriteLine("AcaoOperacao" + ex.Message);;
                return(null);
            }
        }
예제 #18
0
 /// <summary>
 /// Regra negocio para inserir um cao
 /// </summary>
 /// <param name="c">cão a inserir</param>
 /// <returns>adiciona o cao e retorna verdadeiro, caso contrario retorna falso</returns>
 public static bool InsereCao(Cao c)
 {
     return(DadosCao.AddCao(c));
 }