Автор работы: Пользователь скрыл имя, 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
{
_entities.DeleteObject(
}
public void SaveChanges()
{
_entities.SaveChanges();
}
}
}
using System.Windows.Media.Imaging;
using ASDC.Model.Classes;
namespace ASDC.Model.InfoMaterials
{
public partial class InfoMaterial
{
private BitmapImage _bitmapSource;
public BitmapImage BitmapSource
{
get { return _bitmapSource; }
set
{
_bitmapSource = value;
Image.Image = Convertor.BitmapSourceToBytes(
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using ASDC.Model.Classes;
namespace ASDC.Model.InfoMaterials
{
public class InfoMaterialRepository
{
private ASDCEntities _entities;
public
InfoMaterialRepository(ASDCEnt
{
_entities = entities;
}
public List<InfoMaterial> GetInfoMaterialsByFilter(Filte
{
var
infoMaterials = from im in _entities.InfoMaterials.
if (filter.NumberOfRows <= 0)
filter.NumberOfRows = int.MaxValue;
if
(!string.IsNullOrEmpty(filter.
infoMaterials = infoMaterials.Where(im => im.Name.Contains(filter.Name))
if (filter.ByRating)
{
if (filter.SortDirection == SortDirectionType.Top)
infoMaterials = infoMaterials.
else
infoMaterials = infoMaterials.OrderBy(im => im.Rating).Take(filter.
}
if (filter.ByViewCount)
if (filter.SortDirection == SortDirectionType.Top)
infoMaterials = infoMaterials.
else
infoMaterials = infoMaterials.OrderBy(im => im.ViewCount).Take(filter.
return
ConvertInfoMaterialImageToBitm
}
public List<InfoMaterial> GetShortInfoMaterialsByCategor
{
var
infoMaterials = (from im in _entities.InfoMaterials.
return
ConvertInfoMaterialImageToBitm
}
private List<InfoMaterial> ConvertInfoMaterialImageToBitm
{
foreach (var infoMaterial in infoMaterials)
{
if (infoMaterial.Image != null)
infoMaterial.BitmapSource = Convertor.ByteToBitmapSource(
}
return infoMaterials;
}
public InfoMaterial GetInfoMaterial(long materialId)
{
var
infoMaterial = (from im in _entities.InfoMaterials.
if (infoMaterial.Image != null)
infoMaterial.BitmapSource = Convertor.ByteToBitmapSource(
return infoMaterial;
}
public InfoMaterial InsertInfoMaterial(InfoMateria
{
_entities.AddToInfoMaterials(
if (material.Image != null)
_entities.AddToInfoMat_Image(
return material;
}
public InfoMaterial InsertComments(InfoMaterial material)
{
foreach (var comment in material.Comments.ToList())
{
_entities.AddToComments(
}
return material;
}
public void
DeleteInfoMaterial(InfoMateria
{
_entities.DeleteObject(
}
public void SaveChanges()
{
_entities.SaveChanges();
}
}
namespace ASDC.Model.InfoMaterials
{
public class InfoMaterialsDataManager
{
private ASDCEntities _entities;
private CategoryRepository _categoryRepository;
private InfoMaterialRepository _infoMaterialRepository;
public InfoMaterialsDataManager()
{
_entities = new ASDCEntities();
}
public CategoryRepository CategoryRepository
{
get
{
if (_categoryRepository == null)