public async Task <ActionResult <Models.Response.CadastrarAlterarTimeResponse> > CadastrarTimeAsync(Models.Request.CadastrarAlterarTimeRequest req)
        {
            try
            {
                Models.TbUsuario tbUsuario = await usuarioBsn.ConsultarUsuarioPorIdLoginAsync(req.IdLogin);

                Models.TbQuadro tbQuadro = quadroCnv.ToTbQuadro(req, tbUsuario);

                tbQuadro = await quadroBsn.CadastrarQuadroAsync(tbQuadro);

                Models.TbTime tbTime = timeCnv.ToTbTime(req, tbQuadro);

                tbTime = await timeBsn.CadastrarTimeAsync(tbTime);

                tbTime = await timeBsn.SalvarLinkAsync(tbTime, tbTime);

                Models.TbTimeIntegrante timeIntegrante = timeIntegranteCnv.ToTbIntegrante(tbUsuario.IdUsuario, tbTime.IdTime);

                timeIntegrante = await timeIntegranteBsn.CadastrarTimeIntegranteAsync(timeIntegrante);

                Models.Response.CadastrarAlterarTimeResponse resp = timeCnv.ToTimeResponse(tbTime);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(
                               400, e.Message
                               )
                           ));
            }
        }
        public async Task <ActionResult <Models.Response.CadastrarAlterarTimeResponse> > AlterarTimeAsync(int idTime, Models.Request.CadastrarAlterarTimeRequest req)
        {
            try
            {
                Models.TbTime tbTimeAntigo = await timeBsn.ConsultarTimePorIdTime(idTime);

                Models.TbQuadro tbQuadro = await quadroBsn.ConsultarQuadroPorIdQuadroAsync(tbTimeAntigo.IdQuadro);

                Models.TbTime tbTimeAtual = timeCnv.ToTbTime(req, tbQuadro);

                tbTimeAntigo = await timeBsn.AlterarTimeAsync(tbTimeAntigo, tbTimeAtual);

                Models.Response.CadastrarAlterarTimeResponse resp = timeCnv.ToTimeResponse(tbTimeAntigo);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(
                               400, e.Message
                               )
                           ));
            }
        }
示例#3
0
        public async Task <Models.TbTime> SalvarLinkAsync(Models.TbTime timeAntigo, Models.TbTime timeNovo)
        {
            timeAntigo.DsLinkConvite = timeNovo.DsLinkConvite;

            await ctx.SaveChangesAsync();

            return(timeAntigo);
        }
示例#4
0
        public async Task <Models.TbTime> DeletarTimeAsync(Models.TbTime req)
        {
            ctx.TbTime.Remove(req);

            await ctx.SaveChangesAsync();

            return(req);
        }
示例#5
0
        public async Task <Models.TbTime> CadastrarTimeAsync(Models.TbTime req)
        {
            await ctx.TbTime.AddAsync(req);

            await ctx.SaveChangesAsync();

            return(req);
        }
示例#6
0
        public async Task <Models.TbTime> AlterarTimeAsync(Models.TbTime timeAntigo, Models.TbTime timeAtual)
        {
            timeAntigo.NmTime = timeAtual.NmTime;
            timeAntigo.DsTime = timeAtual.DsTime;

            await ctx.SaveChangesAsync();

            return(timeAntigo);
        }
        public async Task <Models.TbTime> SalvarLinkAsync(Models.TbTime timeAntigo, Models.TbTime timeNovo)
        {
            timeNovo.DsLinkConvite = gerenciadorLink.GerarLink(timeAntigo.IdTime, timeAntigo.IdQuadro);

            gerenciadorLink.ValidarLink(timeNovo.DsLinkConvite);

            timeAntigo = await timeDb.SalvarLinkAsync(timeAntigo, timeNovo);

            return(timeAntigo);
        }
示例#8
0
        public Models.TbTime ToTbTime(Models.Request.CadastrarAlterarTimeRequest req, Models.TbQuadro tbQuadro)
        {
            Models.TbTime resp = new Models.TbTime();

            resp.NmTime   = req.NomeTime;
            resp.DsTime   = req.DescricaoTime;
            resp.IdQuadro = tbQuadro.IdQuadro;

            return(resp);
        }
示例#9
0
        public Models.Response.CadastrarAlterarTimeResponse ToTimeResponse(Models.TbTime req)
        {
            Models.Response.CadastrarAlterarTimeResponse resp = new Models.Response.CadastrarAlterarTimeResponse();

            resp.IdTime    = req.IdTime;
            resp.NomeTime  = req.NmTime;
            resp.Descricao = req.DsTime;

            return(resp);
        }
        private void ValidarTimeRequest(Models.TbTime req)
        {
            if (req.NmTime == string.Empty || req.NmTime.Count(x => x != ' ') <= 0)
            {
                throw new Exception("Nome do time não pode ser vazio.");
            }

            if (req.DsLinkConvite == string.Empty)
            {
                throw new Exception("Não foi possível gerar o link pro seu time.");
            }
        }
        public async Task <Models.TbTime> AlterarTimeAsync(Models.TbTime timeAntigo, Models.TbTime timeAtual)
        {
            this.ValidarTimeRequest(timeAtual);

            if (timeAtual.IdQuadro <= 0)
            {
                throw new Exception("Quadro do time não encontrado.");
            }

            timeAntigo = await timeDb.AlterarTimeAsync(timeAntigo, timeAtual);

            return(timeAntigo);
        }
        public async Task <Models.TbTime> ConsultarTimePorIdTime(int idTime)
        {
            if (idTime <= 0)
            {
                throw new Exception("Id de time inválido.");
            }

            Models.TbTime tbTime = await timeDb.ConsultarTimePorIdTime(idTime);

            if (tbTime == null)
            {
                throw new Exception("Time não encontrado.");
            }

            return(tbTime);
        }
        public async Task <Models.TbTime> CadastrarTimeAsync(Models.TbTime req)
        {
            this.ValidarTimeRequest(req);

            if (req.IdQuadro <= 0)
            {
                throw new Exception("Quadro do time não encontrado.");
            }

            req = await timeDb.CadastrarTimeAsync(req);

            if (req.IdTime <= 0)
            {
                throw new Exception("Id do time inválido.");
            }

            return(req);
        }
        public async Task <ActionResult <Models.Response.CadastrarAlterarTimeResponse> > ConsultarTimePorIdQuadroAsync(int idTime)
        {
            try
            {
                Models.TbTime tbTime = await timeBsn.ConsultarTimePorIdTime(idTime);

                if (tbTime == null)
                {
                    return(NotFound());
                }

                Models.Response.CadastrarAlterarTimeResponse resp = timeCnv.ToTimeResponse(tbTime);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(
                               400, e.Message
                               )
                           ));
            }
        }
 public async Task <Models.TbTime> DeletarTimeAsync(Models.TbTime req)
 {
     return(await timeDb.DeletarTimeAsync(req));
 }