示例#1
0
        /// <summary>
        /// Construtor do Cadastro de Artigos
        /// </summary>
        /// <param name="pessoa">Autor do artigo</param>
        public FrmCadastroArtigo(IPessoa pessoa)
        {
            try
            {
                InitializeComponent();

                this.artigo  = new Artigo();
                this.autores = new Lista <IAutor>();

                this.autores.Adicionar((IAutor)pessoa);
                this.pessoa = pessoa;

                ComponentesHelper.AdicionaItemListView(artigo.ComentarioEditor, this.lvComentarios);
                ComponentesHelper.AdicionaItemListView(artigo.ComentariosAvaliadores, this.lvComentarios);
                ComponentesHelper.AdicionaItemListView(artigo.PalavrasChave, this.lvPalavrasChave);
                ComponentesHelper.AdicionaItemListView(autores, this.lvAutores);

                this.InicializalvComentarios();
                this.InicializaComponentes(pessoa);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#2
0
        private void btnNovo_Click(object sender, EventArgs e)
        {
            try
            {
                FrmCadastroEdicoes edicoes = new FrmCadastroEdicoes();
                edicoes.ShowDialog();

                if (edicoes.Edicao != null)
                {
                    this.bd.AdicionarPublicacao(edicoes.Edicao);

                    while (edicoes.Edicao.Artigos.ContemProximo())
                    {
                        IArtigo artigo = (IArtigo)edicoes.Edicao.Artigos.Proximo();
                        artigo.Edicao = edicoes.Edicao;
                    }
                }

                this.AtualizarEdicoes();
                this.PreencheListView();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#3
0
        /// <summary>
        /// Seleciona um artigo
        /// </summary>
        /// <param name="artigo"></param>
        /// <returns></returns>
        private IArtigo SelecionarArtigo(IArtigo artigo)
        {
            IArtigo retorno = null;

            if (artigo.Id != null || !artigo.Id.Equals(0))
            {
                retorno = Artigos.Buscar(artigo);
            }

            return(retorno);
        }
示例#4
0
        /// <summary>
        /// Remove o artigo dos avaliadores
        /// </summary>
        /// <returns></returns>
        private void LimparAvaliadores()
        {
            while (artigo.Avaliadores.ContemProximo())
            {
                IAvaliador avaliador = (IAvaliador)artigo.Avaliadores.Proximo();
                while (avaliador.ArtigosAvaliados.ContemProximo())
                {
                    IArtigo a = (IArtigo)avaliador.ArtigosAvaliados.Proximo();

                    avaliador.ArtigosAvaliados.Remover(a);
                }
            }
        }
示例#5
0
        /// <summary>
        /// Preenche os artigos do listview
        /// </summary>
        /// <param name="artigos"></param>
        /// <returns></returns>
        private Lista <IArtigo> PreencheArtigos(Lista <IArtigo> artigos)
        {
            if (artigos != null)
            {
                if (artigos.ContemProximo())
                {
                    IArtigo artigo = (IArtigo)artigos.Proximo();

                    artigos = this.bd.SelecionarArtigoById(artigo);
                }
            }
            return(artigos);
        }
示例#6
0
        /// <summary>
        /// Seleciona um artigo por id
        /// </summary>
        /// <param name="periodico"></param>
        /// <returns></returns>
        public Lista <IArtigo> SelecionarArtigoById(IArtigo artigo)
        {
            Lista <IArtigo> retorno = new Lista <IArtigo>();

            while (Artigos.ContemProximo())
            {
                IArtigo artigoRetorno = (IArtigo)Artigos.Proximo();

                if (artigoRetorno.Id.Equals(artigo.Id))
                {
                    retorno.Adicionar(artigoRetorno);
                }
            }
            return(retorno);
        }
示例#7
0
        /// <summary>
        /// Preenche o listview com os artigos do autor
        /// </summary>
        public void PreencheListView(Lista <IArtigo> artigos)
        {
            try
            {
                this.lvArtigos.Items.Clear();

                int contador = 0;

                while (artigos.ContemProximo())
                {
                    IArtigo artigo = (IArtigo)artigos.Proximo();

                    if (artigo.Status is Apreciacao)
                    {
                        ComponentesHelper.AdicionaItemListView(artigo.Nome, this.lvArtigos, 0);
                        ComponentesHelper.AdicionaSubItemListView(contador, "Apreciação", this.lvArtigos);
                    }
                    else if (artigo.Status is Avaliacao)
                    {
                        ComponentesHelper.AdicionaItemListView(artigo.Nome, this.lvArtigos, 1);
                        ComponentesHelper.AdicionaSubItemListView(contador, "Avaliação", this.lvArtigos);
                    }
                    else if (artigo.Status is Aceito)
                    {
                        ComponentesHelper.AdicionaItemListView(artigo.Nome, this.lvArtigos, 2);
                        ComponentesHelper.AdicionaSubItemListView(contador, "Aceito", this.lvArtigos);
                    }
                    else if (artigo.Status is Inativo)
                    {
                        ComponentesHelper.AdicionaItemListView(artigo.Nome, this.lvArtigos, 3);
                        ComponentesHelper.AdicionaSubItemListView(contador, "Inativo", this.lvArtigos);
                    }

                    this.lvArtigos.Items[contador].SubItems.Add(artigo.Id.ToString());

                    contador++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#8
0
        private void btnNovo_Click(object sender, EventArgs e)
        {
            try
            {
                FrmCadastroArtigo cadastro = new FrmCadastroArtigo((IAutor)this.pessoa);
                cadastro.ShowDialog();

                IArtigo artigo = cadastro.Artigo;

                bd.AdicionarPublicacao(artigo);

                AtualizarArtigos();

                PreencheListView(this.artigos);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#9
0
        /// <summary>
        /// Busca uma lista com os artigos avaliados pelo avaliador
        /// </summary>
        /// <param name="avaliador"></param>
        /// <returns></returns>
        public Lista <IArtigo> SelecionarArtigoByAvaliador(IAvaliador avaliador)
        {
            Lista <IArtigo> retorno = new Lista <IArtigo>();

            while (Artigos.ContemProximo())
            {
                IArtigo artigoRetorno = (IArtigo)Artigos.Proximo();

                while (artigoRetorno.Avaliadores.ContemProximo())
                {
                    IAvaliador avaliadorRetorno = (IAvaliador)artigoRetorno.Avaliadores.Proximo();

                    if (avaliador.Id.Equals(avaliadorRetorno.Id))
                    {
                        retorno.Adicionar(artigoRetorno);
                    }
                }
            }
            return(retorno);
        }
示例#10
0
        /// <summary>
        /// Preenche o listview com os artigos do autor
        /// </summary>
        public void PreencheListView(Lista <IArtigo> artigos)
        {
            this.lvTodos.Items.Clear();

            int contador = 0;

            while (artigos.ContemProximo())
            {
                IArtigo artigo = (IArtigo)artigos.Proximo();

                if (artigo.Status is Aceito)
                {
                    ComponentesHelper.AdicionaItemListView(artigo.Nome, this.lvTodos, 0);
                    ComponentesHelper.AdicionaSubItemListView(contador, "Aceito", this.lvTodos);

                    this.lvTodos.Items[contador].SubItems.Add(artigo.Id.ToString());
                }
                contador++;
            }
        }
示例#11
0
        /// <summary>
        /// Preenche a propriedade Artigo com os dados da tela
        /// </summary>
        private void PreencheArtigo()
        {
            if (this.artigo == null)
            {
                this.artigo = new Artigo();
            }

            this.artigo.Nome     = txtNome.Text;
            this.artigo.Resumo   = txtResumo.Text;
            this.artigo.Conteudo = txtConteudo.Text;

            if (this.pessoa is Autor)
            {
                this.artigo.Status = new Apreciacao(this.artigo);
            }

            //retorno.Autores = ListViewToLista(lvAutores);
            this.artigo.PalavrasChave = ComponentesHelper.ListViewToLista(lvPalavrasChave);
            this.artigo.Autores       = autores;

            this.Artigo = this.artigo;
        }
示例#12
0
        /// <summary>
        /// Construtor do form encaminhar artigo
        /// </summary>
        /// <param name="artigo"></param>
        public FrmEncaminharArtigo(IArtigo artigo)
        {
            try
            {
                InitializeComponent();

                this.Artigo = artigo;
                this.bd     = BancoDeDados.GetInstance();

                this.txtNome.Text = artigo.Nome;

                this.lvAvaliadores.View = View.Details;
                this.lvAvaliadores.Columns.Add("Autores");
                this.lvAutores.View = View.Details;

                ComponentesHelper.AdicionaItemListView(artigo.Autores, this.lvAutores);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#13
0
        /// <summary>
        /// Recupera os artigos do banco de dados
        /// </summary>
        private void AtualizarArtigos()
        {
            Lista <IArtigo> artigos = this.bd.SelecionarArtigoByAvaliador((IAvaliador)this.pessoa);

            while (artigos.ContemProximo())
            {
                this.artigos.Limpar();

                IArtigo artigo = (IArtigo)artigos.Proximo();

                while (artigo.Avaliadores.ContemProximo())
                {
                    IAvaliador avaliador = (IAvaliador)artigo.Avaliadores.Proximo();

                    if (avaliador.Id.Equals(this.pessoa.Id))
                    {
                        if (avaliador.ArtigosAvaliados == null || !avaliador.ArtigosAvaliados.Existe(artigo))
                        {
                            this.artigos.Adicionar(artigo);
                        }
                    }
                }
            }
        }
示例#14
0
 /// <summary>
 /// Encaminha os artigos para os avaliadores
 /// </summary>
 /// <param name="artigo"></param>
 /// <returns></returns>
 public IArtigo EncaminharArtigo(IArtigo artigo)
 {
     throw new NotImplementedException();
 }
示例#15
0
 //Inicializa o construtor da classe abstrata
 public Aceito(IArtigo artigo)
     : base(artigo)
 {
 }
示例#16
0
 /// <summary>
 /// Inicializa o construtor da classe abstrata
 /// </summary>
 /// <param name="artigo"></param>
 public Avaliacao(IArtigo artigo)
     : base(artigo)
 {
 }
示例#17
0
 //Inicializa o construtor da classe abstrata
 public Inativo(IArtigo artigo)
     : base(artigo)
 {
 }
示例#18
0
 /// <summary>
 /// Define o estado do artigo
 /// </summary>
 /// <param name="artigo">O artigo</param>
 public IEstado(IArtigo artigo)
 {
     this.artigo = artigo;
 }
示例#19
0
 /// <summary>
 /// Adiciona um artigo
 /// </summary>
 /// <param name="artigo"></param>
 private void AdicionarArtigo(IArtigo artigo)
 {
     this.Artigos.Adicionar(artigo);
 }
示例#20
0
 /// <summary>
 /// Inicializa o construtor da classe abstrata
 /// </summary>
 /// <param name="artigo"></param>
 public Apreciacao(IArtigo artigo)
     : base(artigo)
 {
 }