예제 #1
0
        public async Task <IActionResult> IniciarEdicao(Edicao edicao)
        {
            var edicoes = await contexto.Edicoes.ToListAsync();


            var possuiEdicaoAberta = edicoes.Any(x => x.Status == StatusDaEdicao.Aberta);

            if (possuiEdicaoAberta)
            {
                return(BadRequest("Já existe uma edição aberta!"));
            }

            var ultimaEdicao = edicoes.Count() > 0 ? edicoes.Max(x => x.Numero) : 0;

            edicao.DefinirNumeroDaEdicao(ultimaEdicao);

            contexto.Add(edicao);
            await contexto.SaveChangesAsync();

            if (edicao == null)
            {
                return(BadRequest());
            }
            else
            {
                return(Ok());
            }
        }
예제 #2
0
        public async virtual Task <IHttpActionResult> Post([FromBody] Edicao model)
        {
            try
            {
                // validate
                if (model == null)
                {
                    return(BadRequest("Model can not be null."));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                // add entity
                if (await FacadeBO.Edicao.AddAsync(model) == 0)
                {
                    return(Conflict());
                }

                // registry created
                return(Created <object>(Request.RequestUri + model.Id.ToString(), model.Id));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
예제 #3
0
 public void NotificarAssinantes(Edicao edicao)
 {
     foreach (var assinante in _assinantes)
     {
         assinante.Notificar(edicao.NumeroEdicao);
     }
 }
예제 #4
0
 public Livro()
 {
     Titulo      = new Titulo();
     Autor       = new Autor();
     Edicao      = new Edicao();
     Idioma      = new Idioma();
     Editora     = new Editora();
     TituloAutor = new TituloAutor();
 }
예제 #5
0
        static void Main(string[] args)
        {
            var edicaoRepositorio = new EdicaoRepositorio();
            var editora           = new Editora(edicaoRepositorio);
            var assinanteA        = new AssinanteA(editora);
            var assinanteB        = new AssinanteB(editora);
            var edicao            = new Edicao("Titulo", "Ed 99");

            editora.PublicarEdicao(edicao);
        }
예제 #6
0
        /// <summary>
        /// Preenche uma edicao com os campos da tela
        /// </summary>
        /// <param name="edicoes"></param>
        /// <returns></returns>
        private Lista <IEdicao> PreencheEdicao(Lista <IEdicao> edicoes)
        {
            if (edicoes != null)
            {
                while (edicoes.ContemProximo())
                {
                    IEdicao edicao = new Edicao();

                    edicoes = this.bd.SelecionarEdicaoById(edicao);
                }
            }
            return(edicoes);
        }
예제 #7
0
        public bool Inserir(TituloAutor tituloAutor, Titulo tituloModel, Edicao edicaoModel)
        {
            var deuCerto = false;

            using (FbConnection conexaoFireBird = Conexao.GetInstancia().GetConexao())
            {
                conexaoFireBird.Open();
                var transacao = conexaoFireBird.BeginTransaction();
                var cmd       = new FbCommand
                {
                    Connection  = conexaoFireBird,
                    Transaction = transacao
                };

                try
                {
                    var sql = @"INSERT INTO TITULO (CODIGOEDITORA, NOMETITULO, DESCRICAO, DESABILITAR) 
                                 values (@CODIGOEDITORA, @NOMETITULO, @DESCRICAO, @DESABILITAR) RETURNING CODIGOTITULO";
                    tituloAutor.CodigoTitulo = cmd.Connection.ExecuteScalar <int>(sql, tituloModel, transacao);

                    sql = @"INSERT INTO EDICAO (CODIGOIDIOMA, ANO, DATA_LANCAMENTO, QTDE_PAGINAS, EDICAO) 
                                 VALUES (@CODIGOIDIOMA, @ANO, @DATALANCAMENTO, @QTDEPAGINA, @NUMEROEDICAO) RETURNING CODIGOEDICAO";
                    tituloAutor.CodigoEdicao = cmd.Connection.ExecuteScalar <int>(sql, edicaoModel, transacao);

                    sql = @"INSERT INTO TITULO_AUTOR (CODIGOAUTOR, CODIGOEDICAO, CODIGOTITULO)
                            VALUES (@CODIGOAUTOR, @CODIGOEDICAO, @CODIGOTITULO)";
                    cmd.Connection.Execute(sql, tituloAutor, transacao);

                    deuCerto = true;
                }
                catch (Exception e)
                {
                    XtraMessageBox.Show(e.Message);
                }
                finally
                {
                    if (deuCerto)
                    {
                        transacao.Commit();
                    }
                    else
                    {
                        transacao.Rollback();
                    }
                    conexaoFireBird.Close();
                }
                return(deuCerto);
            }
        }
예제 #8
0
        public bool Alterar(Titulo tituloModel, Edicao edicaoModel, TituloAutor tituloAutorModel)
        {
            var deuCerto = false;

            using (FbConnection conexaoFireBird = Conexao.GetInstancia().GetConexao())
            {
                conexaoFireBird.Open();
                var transacao = conexaoFireBird.BeginTransaction();
                var cmd       = new FbCommand
                {
                    Connection  = conexaoFireBird,
                    Transaction = transacao
                };
                try
                {
                    var sql = @"UPDATE TITULO SET CODIGOEDITORA = @CODIGOEDITORA, NOMETITULO = @NOMETITULO,
                                DESCRICAO = @DESCRICAO, DESABILITAR = @DESABILITAR WHERE CODIGOTITULO = @CODIGOTITULO";
                    cmd.Connection.Execute(sql, tituloModel, transacao);

                    sql = @"UPDATE EDICAO SET CODIGOIDIOMA = @CODIGOIDIOMA, ANO = @ANO, 
                                DATA_LANCAMENTO = @DATALANCAMENTO, QTDE_PAGINAS= @QTDEPAGINA, EDICAO = @NUMEROEDICAO WHERE CODIGOEDICAO = @CODIGOEDICAO";
                    cmd.Connection.Execute(sql, edicaoModel, transacao);


                    sql = @"UPDATE TITULO_AUTOR SET CODIGOAUTOR = @CODIGOAUTOR where CODIGOTITULO = @CODIGOTITULO";
                    cmd.Connection.Execute(sql, tituloAutorModel, transacao);

                    deuCerto = true;
                }
                catch (Exception e)
                {
                    XtraMessageBox.Show(e.Message);
                }
                finally
                {
                    if (deuCerto)
                    {
                        transacao.Commit();
                    }
                    else
                    {
                        transacao.Rollback();
                    }
                    conexaoFireBird.Close();
                }
                return(deuCerto);
            }
        }
예제 #9
0
        /// <summary>
        /// Retorna os id das edicoes listadas
        /// </summary>
        /// <returns></returns>
        private Lista <IEdicao> GetIdEdicao()
        {
            Lista <IEdicao> edicoes = null;

            if (!this.lvEdicaoPeriodico.Items.Count.Equals(0))
            {
                edicoes = new Lista <IEdicao>();

                for (int i = 0; i < this.lvEdicaoPeriodico.Items.Count; i++)
                {
                    IEdicao edicao = new Edicao();

                    edicao.Id = Convert.ToInt32(this.lvEdicaoPeriodico.Items[i].SubItems[2].Text);
                }
            }
            return(edicoes);
        }
예제 #10
0
        public async virtual Task <IHttpActionResult> Put(int id, [FromBody] Edicao model)
        {
            try
            {
                // validate
                if (model == null)
                {
                    return(BadRequest("Model can not be null."));
                }
                if (id == 0)
                {
                    return(BadRequest("Identifier is required."));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (await FacadeBO.Edicao.GetByIdAsync(id) == null)
                {
                    return(NotFound());
                }

                // defines identifier for model change
                model.Id = id;

                // modify entity
                if (await FacadeBO.Edicao.ModifyAsync(model) == 0)
                {
                    return(NotFound());
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
예제 #11
0
        public async virtual Task <IHttpActionResult> Get([FromUri] PaggingCriteria <Edicao> pagging, [FromUri] Edicao model)
        {
            try
            {
                if (pagging == null)
                {
                    pagging = new PaggingCriteria <Edicao>();
                }

                // partial filters
                var clauseExpr = PredicateBuilder.True <Edicao>();
                if (model != null)
                {
                    ApplyListFilter(model, ref clauseExpr);
                }

                // partial pagging
                ApplyListPagging(pagging);

                // get by filters

                var result = await FacadeBO.Edicao.GetByAsync(clauseExpr, pagging);


                if (result == null || result.Data.Count == 0)
                {
                    return(NotFound());
                }
                SetLinkPaging("edicao_get", result, pagging);
                result.Links.Add(GetLinkSelf("edicao_get", result, pagging));

                result.Links.Add(GetLinkItem("edicao_get_id"));
                result.Links.Add(GetLinkItemCreate("edicao_add"));
                result.Links.Add(GetLinkItemEdit("edicao_modify"));
                result.Links.Add(GetLinkItemDelete("edicao_delete"));
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
예제 #12
0
 /// <summary>
 /// Apply filter for listing
 /// </summary>
 partial void ApplyListFilter(Edicao model, ref Expression <Func <Edicao, bool> > clause);
예제 #13
0
 public void PublicarEdicao(Edicao edicao)
 {
     _repositorio.Add(edicao);
     NotificarAssinantes(edicao);
 }
 private void btEditar_Click(object sender, RoutedEventArgs e)
 {
     Edicao?.Invoke(servico);
 }