Автор работы: Пользователь скрыл имя, 11 Сентября 2011 в 23:00, курсовая работа
Практическое задание на тему «Проектирование БД» подразумевает выполнение следующих задач:
определение объектов и их характеристик, которые необходимо хранить в БД (определение исходных данных для проектирования структуры БД);
разработка структуры БД;
разработка уровня доступа к данным;
создание пользовательского интерфейса для работы с БД.
1. Формулировка задания 3
2. Описание БД 4
3. Описание интерфейса программы 7
3.1. Окно «Категории информационных материалов» 7
3.2. Окно «Информационные материалы» 8
3.3. Окно «Информационный материал» 9
3.4. Окно «Редактирование информационного материала» 10
3.5. Окно «Добавление информационного материала» 11
3.6. Окно «Фильтрация информационных материалов» 12
4. Перечень запросов LINQ to Entities, используемых в приложении 14
5. Листинг программы 16
App.xaml 16
CategoriesWindow.xaml 17
CategoriesWindow.xaml.cs 19
InfoMaterialAddEditWindow.xaml 22
InfoMaterialAddEditWindow.xaml.cs 23
InfoMaterialsFilterWindow.xaml 25
InfoMaterialsFilterWindow.xaml.cs 27
InfoMaterialsWindow.xaml 29
InfoMaterialsWindow.xaml.cs 30
InfoMaterialWindow.xaml 32
InfoMaterialWindow.xaml.cs 34
Convertor.cs 35
Filter.cs 36
Category.cs 38
CategoryRepository.cs 38
InfoMaterial.cs 40
InfoMaterialRepository.cs 40
InfoMaterialsDataManager.cs 42
{
get { return _sortDirection; }
set { _sortDirection = value; }
}
}
}
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Media.Imaging;
using ASDC.Model.Classes;
namespace ASDC.Model.InfoMaterials
{
public partial class Category
{
public Category Parent { get; set; }
public List<Category> Children { get; set; }
public Image Bitmap { get; set; }
private BitmapImage _bitmapSource;
public BitmapImage BitmapSource
{
get { return _bitmapSource; }
set
{
_bitmapSource = value;
Image = Convertor.BitmapSourceToBytes(
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using ASDC.Model.Classes;
namespace ASDC.Model.InfoMaterials
{
public class CategoryRepository
{
private ASDCEntities _entities;
/// <summary>
/// Конструктор класса
/// </summary>
/// <param name="entities">Ссылка на объект-хранилище (коннекшен, connection), включающее все сущности (entities) промапленной (mapping) БД.</param>
public
CategoryRepository(ASDCEntitie
{
_entities = entities;
}
/// <summary>
/// Функция выбирает категорию по заданному идентификатору (id)
/// </summary>
/// <param name="categoryId">Идентификато
/// <returns></returns>
public Category GetCategory(long categoryId)
{
Category category = _entities.Categories.First(c => c.ID_Category == categoryId);
category.BitmapSource = Convertor.ByteToBitmapSource(
return category;
}
/// <summary>
/// Функция выбирает два уровня категорий
/// </summary>
/// <returns></returns>
public List<Category> GetCategories()
{
var categories = GetSubCategories(0);
foreach (var category in categories)
{
category.Children = GetSubCategories(category.ID_
}
return categories.ToList();
}
/// <summary>
/// Функция рекурсивно выбирает все категории
/// </summary>
/// <param name="categoryId">Категория, подкатегории которой нужно выбрать</param>
/// <returns></returns>
public List<Category> GetCategories(long categoryId)
{
var categories = GetSubCategories(categoryId);
if (categories != null)
{
foreach (var category in categories)
{
category.Children = GetCategories(category.ID_
}
}
return categories;
}
/// <summary>
/// Функция выбирает подкатегории заданной категории
/// </summary>
/// <param name="categoryId">Категория, подкатегории которой нужно выбрать</param>
/// <returns></returns>
public List<Category> GetSubCategories(long categoryId)
{
var categories = (from c in _entities.Categories
where categoryId == 0 ? (c.ParentCategory == categoryId || c.ParentCategory == null) : (c.ParentCategory == categoryId)
select c).ToList();
foreach (var category in categories)
{
category.BitmapSource = Convertor.ByteToBitmapSource(
}
return categories;
}
/// <summary>
/// Функция добавления новой категории
/// </summary>
/// <param name="category">Новая категория в виде класса категории</param>
/// <returns></returns>
public Category InsertCategory(Category category)
{
_entities.AddToCategories(
return category;
}
public void DeleteCategory(Category category)