コード例 #1
0
        /// <summary>
        /// Carrega a lista de livros na grid original e ordena para outra denominada grid ordenada
        /// </summary>
        private void LoadAndOrderBooks()
        {
            if (System.Windows.Forms.Application.UserAppDataRegistry.GetValue("XmlPath") != null)
            {
                var path = System.Windows.Forms.Application.UserAppDataRegistry.GetValue("XmlPath").ToString();
                tbXmlPath.Text = path;

                var dataSet = new DataSet();
                try
                {
                    dataSet.ReadXml(path);
                    dgvBooks.DataSource = dataSet.Tables[0];
                }
                catch
                {
                    MessageBox.Show("Ocorreu um erro ao carregar lista.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                try
                {
                    var books = dataSet.Tables[0].AsEnumerable().Select(r => new Book
                    {
                        Title       = r.Field <string>("Title"),
                        AuthorName  = r.Field <string>("AuthorName"),
                        EditionYear = Convert.ToInt32(r.Field <string>("EditionYear"))
                    });
                    var list = _booksOrderer.Order(books);

                    dgvOrderedBooks.DataSource = new BindingSource(list, null);
                }
                catch (OrdenationException ex)
                {
                    MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch
                {
                    MessageBox.Show("Ocorreu um erro ao ordenar lista.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #2
0
 public IEnumerable <Book> Order(IEnumerable <Book> books)
 {
     return(_booksOrderer.Order(books));
 }