Помощь в написании студенческих работ
Антистрессовый сервис

Проектирование модели данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Класс EFUsersRepository содержит обьекты для доступа к данным приложения, предназначен для описания механизма хранения данных о пользователе. Методы класса: Таким образом приложение получится хорошо структурированным и понятным. Каждый проект отвечает за конкретную функциональную область приложения. Метод MembershipUser GetMembershipUserByName (string userName) — предназначен для инициализации… Читать ещё >

Проектирование модели данных (реферат, курсовая, диплом, контрольная)

Выделение сущностей и атрибутов

Для предметной области «Предоставление транспортных услуг» я выделил следующие сущности:

Автомобиль (Vehicle) — сущность, содержащая все автомобили, на которых будут осуществляться грузоперевозки.

Груз (Admin) — сущность, содержащая всех диспетчеров, которыебудут работать.

Маршруты (Order) — сущность, содержащая все заказы, по которым будут осуществляться грузоперевозки.

Пользователь (Driver) — сущность, содержащая всех водителей, которые будут осуществлять грузоперевозки.

ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.

Во время проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.).

ER-модель представляет собой формальную конструкцию, которая сама по себе не предписывает никаких графических средств её визуализации. В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма сущность-связь (ER-диаграмма).

На рисунке 2.11 показана ER-модель предметной области.

ER-модель предметной области.

Рисунок 2.11 — ER-модель предметной области.

Построение логической модели данных

На рисунке 2.12 изображена логическая модель базы данных Web-приложения предоставление транспортных услуг.

Логическая модель данных Web-приложения предоставление транспортных услуг.

Рисунок 2.12 — Логическая модель данных Web-приложения предоставление транспортных услуг.

Описание таблиц и полей

В таблицах 2.3 — 2.6 приведены описания таблиц и полей базы данных управление грузоперевозками.

Таблица 2.3 — Таблица Автомобиль «Vehicle».

Название поля.

Тип.

Ограничение.

Примечания.

IdVehicle.

Integer.

PK.

Id транспортного средства.

Mark.

Varchar (50).

Марка.

Model.

Varchar (50).

Модель.

TypeofVehicle.

Varchar (50).

Тип автомобиля.

Capacity.

Float.

Грузоподъемность.

Area.

Float.

Площадь платформы.

Size.

Float.

Объем платформы.

Таблица 2.4 — Таблица «Диспетчер» (Admin).

Название поля.

Тип.

Ограничение.

Примечания.

IdAdmin.

Integer.

PK.

Id диспетчера.

Email.

Varchar (50).

Емейл.

Name.

Varchar (50).

Имя.

Surname.

Varchar (70).

Фамилия.

MiddleName.

Varchar (50).

Отчество.

Phone.

Integer.

Телефон.

PhotoURL.

Varchar (50).

Адрес фотографии.

Password.

Varchar (50).

Пароль.

Таблица 2.5 — Таблица «Заказ» (Order).

Название поля.

Тип.

Ограничение.

Примечания.

IdOrder.

Integer.

PK.

Id заказа.

Name.

Varchar (50).

Название заказа.

Email.

Varchar (50).

Водитель.

Date.

Data.

Дата маршрута.

PointA.

Varchar (500).

Точка отправления.

PointB.

Varchar (500).

Точка доставки.

Client.

Date.

Заказчик.

Number.

Integer.

Номер заказчика.

IdVehicle.

Integer.

FK.

Id транспортного средства.

IdDriver.

Integer.

FK.

Id водителя.

Построение физической модели данных

На рисунке 2.13 изображения физическая модель базы данных Web-приложения предоставление транспортных услуг.

Физическая модель базы данных Web-приложения предоставление транспортных услуг.

Рисунок 2.13 — Физическая модель базы данных Web-приложения предоставление транспортных услуг.

Разработка SQL-скриптов для реализации таблиц баз данных

SQL-скрипт для создания таблицы «Пользователи»:

CREATE TABLE [dbo]. Driver] (.

[Name] NVARCHAR (50) NOT NULL,.

[Surname] NVARCHAR (50) NOT NULL,.

[Middle_name] NVARCHAR (50) NULL,.

[Email] NVARCHAR (100) NOT NULL,.

[Phone] NVARCHAR (30) NULL,.

[IsAdmin] BIT DEFAULT ((0)) NOT NULL,.

[PhotoURL] NVARCHAR (100) NULL,.

[Password] NVARCHAR (50) NOT NULL,.

[DrivingExpirience] FLOAT (53) NULL,.

[RightsCategory] NVARCHAR (50) NULL,.

PRIMARY KEY CLUSTERED ([Email] ASC).

); приложение автоматизация программный скрипт.

SQL-скрипт для создания таблицы «Автомобили»:

CREATE TABLE [dbo]. Vehicles] (.

[IdVehicle] INT NOT NULL,.

[Mark] NVARCHAR (50) NULL,.

[Model] NVARCHAR (50) NULL,.

[TypeofVehicle] NVARCHAR (50) NULL,.

[Capacity] FLOAT (53) NULL,.

[Area] FLOAT (53) NULL,.

[Size] FLOAT (53) NULL,.

PRIMARY KEY CLUSTERED ([IdVehicle] ASC).

);

SQL-скрипт для создания таблицы «Диспетчер»:

CREATE TABLE [dbo]. Admin] (.

[IdProduct] INT NOT NULL,.

[Name] NVARCHAR (50) NULL,.

[Typeofproduct] NVARCHAR (50) NULL,.

[Weight] FLOAT (53) NULL,.

[Height] FLOAT (53) NULL,.

[Length] FLOAT (53) NULL,.

[Price] NCHAR (10) NULL,.

PRIMARY KEY CLUSTERED ([IdProduct] ASC).

);

SQL-скрипт для создания таблицы «Заказы»:

CREATE TABLE [dbo]. Order] (.

[IdOrder] INT NOT NULL,.

[Name] NVARCHAR (50) NULL,.

[Email] NVARCHAR (100) NULL,.

[Date] DATE NULL,.

[PointA] NVARCHAR (500) NULL,.

[PointB] NVARCHAR (500) NULL,.

[Client] NVARCHAR (50) NULL,.

[Number] NVARCHAR (50) NULL,.

[IdVehicle] INT NULL,.

[IdProduct] INT NULL,.

PRIMARY KEY CLUSTERED ([Idщквук] ASC).

);

Описание методов классов для реализации системы

В результате разработки Web-приложения были реализованы следующие проекты:

  • — DataBase;
  • — BusinessLogic;
  • — MVCApplicationTransportServices;

Таким образом приложение получится хорошо структурированным и понятным. Каждый проект отвечает за конкретную функциональную область приложения.

В проекте DataBase определена модель разрабатываемого приложения и его сущности. Диаграмма классов DataBase представлена на рисунке 2.18.

Диаграмма классов проекта DataBase.

Рисунок 2.18 — Диаграмма классов проекта DataBase.

Проект содержит следующие доменные объекты приложения:

  • — Driver;
  • — Order;
  • — Admin;
  • — Vehicle.

Класс Driver предназначен для описания сущности «Пользователь». Свойства класса:

  • — int DriverId — уникальный идентификатор водителя;
  • — string Name — имя пользователя;
  • — string Middle_name — фамилия пользователя;
  • — string Last_name — отчество пользователя;
  • — string Password — пароль пользователя;
  • — string Email — адресс электронной почты пользователя;
  • — float DrivingExpirience — стаж;
  • — string RightCtegory — категория;

Клас Order предназначен для описания сущности «Заказ». Свойства класса:

  • — string Name — название маршрута;
  • — string Email — идентификатор водителя;
  • — date Date — дата маршрута;
  • — string PointA — точка отправления;
  • — string PointB — точка доставки;
  • — string Client — заказчик;
  • — int Number — номер заказчика;
  • — int IdVehicle — идентификатор транспортного средства;
  • — int IdDriver — идентификатор водителя;

Класс Admin предназначен для описания сущности «Диспетчер». Свойства класса:

  • — string Name — имя пользователя;
  • — string Middle_name — фамилия пользователя;
  • — string Last_name — отчество пользователя;
  • — string Password — пароль пользователя;
  • — string Email — адресс электронной почты пользователя;

Класс Vehicle предназначен для описания сущности «Транспортные стредства». Свойства класса:

  • — int IdVehicle — уникальный идентификатор записи в таблице Vehicle;
  • — string Mark — идентификатор адресанта сообщения;
  • — string Model — Модель;
  • — string TypeofVehicle — Тип автомобиля;
  • — float Capacity — Грузоподъемность;
  • — float Area — Площадь платформы;
  • — float Size — Объем платформы;

Проект BusinessLogic предназначен для описания механизма обработки пользовательских запросов и взаимодействия пользователя с приложением. Диаграмма классов проекта представлена на рисунке 2.19.

Диаграмма классов проекта BusinessLogic.

Рисунок 2.19 — Диаграмма классов проекта BusinessLogic.

Проект BusinessLogic содержит следующие интерфейсы:

  • — IDriverRepository;
  • — IOrderRepository;
  • — IAdminRepository;
  • — IVehicleRepository.

Интерфейс IUsersRepository предназначен для взаимодействия с репозиторием EFUsersRepository. Свойства интерфейса:

  • — метод IEnumerable GetUsers () — предназначен для выборки всех пользователей с БД;
  • — метод User GetUserById (int id) — предназначен для выборки пользователя с указанным идентификатором;
  • — метод User GetUserByName (string userName) — предназначен для выборки пользователя с указанным логином;
  • — метод MembershipUser GetMembershipUserByName (string userName) — предназначен для инициализации нового экземпляра класса MembershipUser при регистрации нового пользователя;
  • — метод GetUserNameByEmail (string email) — предназначен для выборки пользователя с указанным адресом электронной почты;
  • — метод void CreateUser (string userName, string password, string email, string firstName, string lastName, string middleName) — содержит параметры регистрируемого пользователя;
  • — метод bool ValidateUser (string userName, string password) — предназначен для проверки валидации логина и пароля пользователя;
  • — метод void SaverUser (User user) — описывает механизм сохранения нового пользователя в базу данных.

Интерфейс IOrderRepository предназначен для взаимодействия с репозиторием EFOrderRepository.

Интерфейс IVehicleRepository предназначен для взаимодействия с репозиторием EFVehicleRepository.

Интерфейс IPAdmintRepository предназначен для взаимодействия с репозиторием EFAdminRepository.

Проект BusinessLogic содержит следующие классы реализации интерфейсов:

  • — EFDriverRepository;
  • — EFVehicleRepository;
  • — EFAdminRepository;
  • — EFOrderRepository.

Класс EFUsersRepository содержит обьекты для доступа к данным приложения, предназначен для описания механизма хранения данных о пользователе. Методы класса:

  • — метод public EFUsersRepository (EFDbContext context) — конструктор класса;
  • — метод public IEnumerable GetUsers () — предназначен для выборки всех пользователей с БД;
  • — метод public User GetUserById (int id) — предназначен для выборки пользователя с указанным идентификатором;
  • — метод public User GetUserByName (string userName) — предназначен для выборки пользователя с указанным логином;
  • — метод public System.Web.Security.MembershipUser GetMembershipUserByName (string userName) — предназначен для инициализации нового экземпляра класса MembershipUser при регистрации нового пользователя;
  • — метод public string GetUserNameByEmail (string email) — предназначен для выборки пользователя с указанным адресом электронной почты;
  • — метод public void CreateUser (string userName, string password, string email, string firstName, string lastName, string middleName) — содержит параметры регистрируемого пользователя;
  • — метод public bool ValidateUser (string userName, string password) — предназначен для проверки валидации логина и пароля пользователя;
  • — метод public void SaverUser (User user) — описывает механизм сохранения нового пользователя в базу данных.

Проект MVCTransportServices предназначен для описания механизма визуализации данных приложения и взаимодействия с пользователем.

Краткое описание классов и методов «Web-приложения для предоставления транспортных услуг»:

— AccountController — к основным функциям класса относятся реалирегистрация, авторизация, подтверждение регистрации.

— OrderController — к основным функциям класса относятся добавление, удаление и изменение маршрута, поиск маршрута, выбор ма…

{.

Session[" Culture" ] = new CultureInfo (lang);

return Redirect (returnUrl);

}.

[HttpGet].

public ActionResult Login ().

{.

return View (new LoginViewModel ());

}.

[HttpPost].

public ActionResult Login (LoginViewModel model).

{.

//_usersProvider.LoginUser (model.Login, model. Password);

var user = _usersProvider.LoginUser (model.Login, model. Password);

if (user == null).

{.

model.UserNotExist = true;

}.

else.

{.

UserContext.SetUser (user);

return RedirectToAction («Profile»);

}.

return View (model);

}.

[HttpGet].

public ActionResult NewLogin ().

{.

return View (new NewLoginViewModel ());

}.

[HttpPost].

public async Task NewLogin (NewLoginViewModel model).

{.

if (ModelState.IsValid).

{.

string photoURL = «» ;

if (model.Upload ≠ null).

{.

// получаем имя файла.

string fileName = System.IO.Path.GetFileName (model.Upload.FileName);

photoURL = «/Content/UserImages/» + fileName;

// сохраняем файл в папку Files в проекте.

model.Upload.SaveAs (Server.MapPath (photoURL));

}.

var user = _usersProvider.RegisterUser (model.Surname, model.Name, model. Middle_name, model. Email, model. Phone, model. RightsCategory, photoURL, model. Password);

UserContext.SetUser (user);

});

return RedirectToAction («Profile»);

}.

return View (model);

}.

[HttpGet].

public ActionResult Profile ().

{.

var User = UserContext. GetCurrentUser ();

if (User ≠ null).

{.

var model = new ProfileViewModel.

{.

Surname = User. Surname,.

Name = User.Name,.

Middle_name = User. MiddleName,.

Email = User. Email,.

//DrivingExpirience = User. DrivingExpirience,.

RightsCategory = User. RightsCategory,.

Phone = User. Phone,.

Password = User. Password,.

Repeat_password = User. Password,.

Upload = User.PhotoURL.

};

return View (model);

}.

else { return View (); }.

}.

[HttpPost].

public ActionResult Profile (ProfileViewModel model).

{.

if (ModelState.IsValid).

{.

string photoURL = model. Upload;

if (model.Image ≠ null).

{.

// получаем имя файла.

string fileName = System.IO.Path.GetFileName (model.Image.FileName);

photoURL = «/Content/UserImages/» + fileName;

// сохраняем файл в папку Files в проекте.

model.Image.SaveAs (Server.MapPath (photoURL));

}.

var user = _usersProvider.EditingProfile (model.Surname, model.Name, model. Middle_name, model. Email, model. Phone, model. RightsCategory, model. Password, photoURL);

UserContext.SetUser (user);

}.

return View (model);

}.

[HttpGet].

public ActionResult EditingOfAllProfiles (string surname, string name, string middle_name, string email, string phone, string rightsCategory, string password, string photo).

{.

var model = new ProfileViewModel.

{.

Surname = surname,.

Name = name,.

Middle_name = middle_name,.

Email = email,.

//DrivingExpirience = drivingExperiance,.

RightsCategory = rightsCategory,.

Phone = phone,.

Password = password,.

Repeat_password = password,.

Upload = photo.

};

return View (model);

}.

[HttpGet].

public ActionResult AllProfiles ().

{.

var model = new ProfileList ();

var profiles = _usersProvider.GetAllProfiles ();

foreach (var profile in profiles).

{.

var profileViewModel = new ProfileViewModel.

{.

Surname = profile. Surname,.

Name = profile.Name,.

Middle_name = profile. MiddleName,.

Email = profile. Email,.

// DrivingExpirience = profile. DrivingExpirience,.

RightsCategory = profile. RightsCategory,.

Phone = profile. Phone,.

Password = profile. Password,.

Upload = profile.PhotoURL.

};

model.ProfilesList.Add (profileViewModel);

}.

return View (model);

}.

[HttpPost].

public ActionResult AllProfiles (ProfileList model).

{.

var profiles = _usersProvider.GetAllProfilesOderBy ();

foreach (var profile in profiles).

{.

var profileViewModel = new ProfileViewModel.

{.

Surname = profile. Surname,.

Name = profile.Name,.

Middle_name = profile. MiddleName,.

Email = profile. Email,.

//DrivingExpirience = profile. DrivingExpirience,.

RightsCategory = profile. RightsCategory,.

Phone = profile. Phone,.

Password = profile. Password,.

Upload = profile.PhotoURL.

};

model.ProfilesList.Add (profileViewModel);

}.

return View (model);

}.

[HttpGet].

public ActionResult LogOut ().

{.

UserContext.SetUser (null);

return RedirectToAction («Index», «Information»);

}.

}.

}.

VehicleController.cs.

using MvcApplication1. Models;

using System;

using System.Collections.Generic;

using System. Linq;

using System. Web;

using System.Web.Mvc;

using BusinessLogic. Interfaces;

using BusinessLogic. Providers;

using MvcApplication1. Helpers;

using System. Globalization;

using System.Net.Mail;

using System.Threading.Tasks;

namespace MvcApplication1.Controllers.

{.

public class VehicleController: Controller.

{.

private IVehiclesProvider _vehiclesProvider = new VehiclesProvider ();

// GET: /Vehicle/.

[HttpGet].

public ActionResult Vehicle ().

{.

return View (new VehicleViewModel ());

}.

[HttpGet].

public ActionResult AllVehicles ().

{.

var model = new VehicleList ();

var vehicles = _vehiclesProvider.GetAllVehicles ();

foreach (var vehicle in vehicles).

{.

var vehicleViewModel = new VehicleViewModel.

{.

Mark = vehicle. Mark,.

Model = vehicle. Model,.

TypeofVehicle = vehicle. TypeofVehicle,.

Capacity = vehicle. Сapacity,.

Area = vehicle. Area,.

Size = vehicle.Size.

};

model.VehiclesList.Add (vehicleViewModel);

}.

return View (model);

}.

[HttpPost].

public ActionResult AllVehicles (VehicleList model).

{.

var vehicles = _vehiclesProvider.GetAllVehiclesOderBy ();

foreach (var vehicle in vehicles).

{.

var vehicleViewModel = new VehicleViewModel.

{.

Mark = vehicle. Mark,.

Model = vehicle. Model,.

TypeofVehicle = vehicle. TypeofVehicle,.

Capacity = vehicle. Сapacity,.

Area = vehicle. Area,.

Size = vehicle.Size.

};

model.VehiclesList.Add (vehicleViewModel);

}.

return View (model);

}.

}.

}.

InformationController.cs.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Web;

using System.Web.Mvc;

namespace MvcApplication1.Controllers.

{.

public class InformationController: Controller.

{.

public ActionResult Index ().

{.

return View ();

}.

public ActionResult TermsUse ().

{.

return View ();

}.

}.

}.

LoginViewModel.cs.

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System. Linq;

using System. Web;

namespace MvcApplication1.Models.

{.

public class LoginViewModel.

{.

public bool UserNotExist { get; set; }.

public string Login { get; set; }.

public string Password { get; set; }.

}.

public class NewLoginViewModel.

{.

public HttpPostedFileBase Upload { get; set; }.

[Required (ErrorMessage = «Ошибка, поле „Имя“ должно быть обязательно заполненным!»)].

public string Name { get; set; }.

[Required (ErrorMessage = «Ошибка, поле „Фамилия“ должно быть обязательно заполненным!»)].

public string Surname { get; set; }.

public string Middle_name { get; set; }.

[Required (ErrorMessage = «Ошибка, поле „Емейл“ должно быть обязательно заполненным!»)].

[RegularExpression (@" [A-Za-z0−9._%±]+@[A-Za-z0−9.-]+. A-Za-z]{2,4}", ErrorMessage = «Некорректный адрес»)].

public string Email { get; set; }.

public string Phone { get; set; }.

[StringLength (50, MinimumLength = 0, ErrorMessage = «Длина строки должна быть меньше 100 символов»)].

//public float DrivingExpirience { get; set; }.

public string RightsCategory { get; set; }.

[Required (ErrorMessage = «Ошибка, поле „Пароль“ должно быть обязательно заполненным!»)].

[DataType (DataType.Password)].

public string Password { get; set; }.

[Required (ErrorMessage = «Ошибка, поле „Повторный ввод пароля“ должно быть обязательно заполненным!»)].

[Compare («Password», ErrorMessage = «Пароли не совпадают»)].

[DataType (DataType.Password)].

public string Repeat_password { get; set; }.

}.

}.

ProfileList.cs.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Web;

namespace MvcApplication1.Models.

{.

public class ProfileList.

{.

public ProfileList ().

{.

ProfilesList = new List ();

}.

public List ProfilesList { get; set; }.

}.

}.

ProfileViewModel.cs.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Web;

using System.ComponentModel.DataAnnotations;

namespace MvcApplication1.Models.

{.

public class ProfileViewModel.

{.

public string Surname { get; set; }.

public string Name { get; set; }.

public string Middle_name { get; set; }.

public string Email { get; set; }.

public string Phone { get; set; }.

public string RightsCategory { get; set; }.

[StringLength (50, MinimumLength = 0, ErrorMessage = «Длина строки должна быть меньше 100 символов»)].

public string Password { get; set; }.

// public float DrivingExpirience { get; set; }.

public string Upload { get; set; }.

public HttpPostedFileBase Image { get; set; }.

[Compare («Password», ErrorMessage = «Пароли не совпадают»)].

[DataType (DataType.Password)].

public string Repeat_password { get; set; }.

}.

}.

Product.cs.

using System;

using System.Collections.Generic;

using System.Data.Linq.Mapping;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

namespace Database.Entyties.

{.

[Table (Name = «Products»)].

public class Product.

{.

[Column].

public int IdProduct { get; set; }.

[Column].

public string Name { get; set; }.

[Column].

public string Typeofproduct { get; set; }.

[Column].

public float Weight { get; set; }.

[Column].

public float Width { get; set; }.

[Column].

public float Height { get; set; }.

[Column].

public float Length { get; set; }.

[Column].

public float Price { get; set; }.

}.

}.

Traffic.cs.

using System;

using System.Collections.Generic;

using System.Data.Linq.Mapping;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

namespace Database.Entyties.

{.

[Table (Name = «Traffics»)].

public class Traffic.

{.

[Column].

public int IdTraffic { get; set; }.

[Column].

public string Name { get; set; }.

[Column].

public string Email { get; set; }.

[Column].

public DateTime Date { get; set; }.

[Column].

public string PointA { get; set; }.

[Column].

public string PointB { get; set; }.

[Column].

public string Client { get; set; }.

[Column].

public string Number { get; set; }.

[Column].

public int IdVehicle { get; set; }.

[Column].

public int IdProduct { get; set; }.

}.

}.

Vehicle.cs.

using System;

using System.Collections.Generic;

using System.Data.Linq.Mapping;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

namespace Database.Entyties.

{.

[Table (Name = «Vehicles»)].

public class Vehicle.

{.

[Column].

public int IdVehicle { get; set; }.

[Column].

public string Mark { get; set; }.

[Column].

public string Model { get; set; }.

[Column].

public string TypeofVehicle { get; set; }.

[Column].

public float Сapacity { get; set; }.

[Column].

public float Area { get; set; }.

[Column].

public float Size { get; set; }.

}.

}.

User.cs.

using System;

using System.Collections.Generic;

using System.Data.Linq.Mapping;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

namespace Database.Entyties.

{.

[Table (Name = «Users»)].

public class User.

{.

[Column].

public string Surname { get; set; }.

[Column].

public string Name { get; set; }.

[Column (Name = «Middle_name»)]//указываем, если имя изменилось.

public string MiddleName { get; set; }.

[Column (IsPrimaryKey = true)].

public string Email { get; set; }.

[Column].

public string Phone { get; set; }.

[Column].

public string PhotoURL { get; set; }.

//[Column (Name = «DrivingExpirience»)]//указываем, если имя изменилось.

//public float DrivingExpirience { get; set; }.

[Column (Name = «RightsCategory»)]//указываем, если имя изменилось.

public string RightsCategory { get; set; }.

[Column].

public string Password { get; set; }.

[Column].

public bool IsAdmin { get; set; }.

}.

}.

IUserProvider.cs.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

using Database. Entyties;

namespace BusinessLogic.Interfaces.

{.

public interface IUsersProvider.

{.

User RegisterUser (string surname, string name, string middleName, string email, string phone, string rightsCategory, string password, string photoURL);

User LoginUser (string Login, string Password);

User EditingProfile (string Surname, string Name, string MiddleName, string Phone, string Email, string RightsCategory, string Password, string PhotoURL);

IEnumerable GetAllProfiles ();

IEnumerable GetAllProfilesOderBy ();

}.

}.

IuserInterface.cs.

using BusinessLogic. Interfaces;

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System.Threading.Tasks;

using Database. Entyties;

using Database;

namespace BusinessLogic.Providers.

{.

public class UsersProvider: IUsersProvider.

{.

private TransportationServicesDatabaseContext _context = new TransportationServicesDatabaseContext ();

public User RegisterUser (string surname, string name, string middleName, string email, string phone, string rightsCategory, string password, string photoURL).

{.

var user = new User.

{.

Surname = surname,.

Name = name,.

MiddleName = middleName,.

Email = email,.

Phone = phone,.

//DrivingExpirience = drivingExpirience,.

RightsCategory = rightsCategory,.

Password = password,.

PhotoURL = photoURL.

};

_context.Users.InsertOnSubmit (user);

_context.SubmitChanges ();

return user;

}.

public User LoginUser (string login, string password).

{.

var user = _context.Users.FirstOrDefault (u => string. Equals (u.Email, login));

if (user ≠ null && string. Equals (user.Password, password)).

{.

return user;

}.

return null;

}.

public User EditingProfile (string surname, string name, string middleName, string email, string phone, string rightsCategory, string password, string photoURL).

{.

var user = _context.Users.FirstOrDefault (u => int. Equals (u.Email, email));

user.Surname = surname;

user.Name = name;

user.MiddleName = middleName;

user.Phone = phone;

user.RightsCategory = rightsCategory;

user.Password = password;

// user. DrivingExpirience = drivingExpirience;

user.PhotoURL = photoURL;

_context.SubmitChanges ();

return user;

}.

public IEnumerable GetAllProfiles ().

{.

return _context.Users.OrderBy (t => t. Email);

}.

public IEnumerable GetAllProfilesOderBy ().

{.

return _context.Users.OrderBy (t => t. Surname);

}.

}.

}.

Показать весь текст
Заполнить форму текущей работой