Add Contracts

This commit is contained in:
2023-04-02 14:40:27 +03:00
parent b1826e8630
commit 361db163de
38 changed files with 776 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BindingModel
{
public class ReportBindingModel
{
public string FileName { get; set; } = string.Empty;
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IDiyLogic
{
List<DiyViewModel>? ReadList(DiySearchModel? model);
DiyViewModel? ReadElement(DiySearchModel model);
bool Create(DiyBindingModel model);
bool Update(DiyBindingModel model);
bool Delete(DiyBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IInterestLogic
{
List<InterestViewModel>? ReadList(InterestSearchModel? model);
InterestViewModel? ReadElement(InterestSearchModel model);
bool Create(InterestBindingModel model);
bool Update(InterestBindingModel model);
bool Delete(InterestBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface ILessonLogic
{
List<LessonViewModel>? ReadList(LessonSearchModel? model);
LessonViewModel? ReadElement(LessonSearchModel model);
bool Create(LessonBindingModel model);
bool Update(LessonBindingModel model);
bool Delete(LessonBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IMaterialLogic
{
List<MaterialViewModel>? ReadList(MaterialSearchModel? model);
MaterialViewModel? ReadElement(MaterialSearchModel model);
bool Create(MaterialBindingModel model);
bool Update(MaterialBindingModel model);
bool Delete(MaterialBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IProductLogic
{
List<ProductViewModel>? ReadList(ProductSearchModel? model);
ProductViewModel? ReadElement(ProductSearchModel model);
bool Create(ProductBindingModel model);
bool Update(ProductBindingModel model);
bool Delete(ProductBindingModel model);
}
}

View File

@@ -0,0 +1,39 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IReportLogic
{
List<ReportInterestLessonViewModel> GetInterestLesson();
List<ReportInterestViewModel> GetOrders(ReportBindingModel model);
List<ReportDiyMaterialViewModel> GetDiyMaterial();
List<ReportLessonTaskViewModel> GetLessonTask(ReportBindingModel model);
void SaveInterestLessonToWordFile(ReportBindingModel model);
void SaveInterestLessonToExcelFile(ReportBindingModel model);
void SaveInterestsToPdfFile(ReportBindingModel model);
void SaveDiyMaterialToWordFile(ReportBindingModel model);
void SaveDiyMaterialToExcelFile(ReportBindingModel model);
void SaveLessonTaskToPdfFile(ReportBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface IStudentLogic
{
List<StudentViewModel>? ReadList(StudentSearchModel? model);
StudentViewModel? ReadElement(StudentSearchModel model);
bool Create(StudentBindingModel model);
bool Update(StudentBindingModel model);
bool Delete(StudentBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface ITaskLogic
{
List<TaskViewModel>? ReadList(TaskSearchModel? model);
TaskViewModel? ReadElement(TaskSearchModel model);
bool Create(TaskBindingModel model);
bool Update(TaskBindingModel model);
bool Delete(TaskBindingModel model);
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.BusinessLogicContracts
{
public interface ITeacherLogic
{
List<TeacherViewModel>? ReadList(TeacherSearchModel? model);
TeacherViewModel? ReadElement(TeacherSearchModel model);
bool Create(TeacherBindingModel model);
bool Update(TeacherBindingModel model);
bool Delete(TeacherBindingModel model);
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class DiySearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class InterestSearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class LessonSearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class MaterialSearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class ProductSearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class StudentSearchModel
{
public int? Id { get; set; }
public string? Login { get; set; }
public string? Name { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class TaskSearchModel
{
public int? Id { get; set; }
public string? Title { get; set; }
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.SearchModel
{
public class TeacherSearchModel
{
public int? Id { get; set; }
public string? Login { get; set; }
public string? Name { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface IDiyStorage
{
List<DiyViewModel> GetFullList();
List<DiyViewModel> GetFilteredList(DiySearchModel model);
DiyViewModel? GetElement(DiySearchModel model);
DiyViewModel? Insert(DiyBindingModel model);
DiyViewModel? Update(DiyBindingModel model);
DiyViewModel? Delete(DiyBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface IInterestStorage
{
List<InterestViewModel> GetFullList();
List<InterestViewModel> GetFilteredList(InterestSearchModel model);
InterestViewModel? GetElement(InterestSearchModel model);
InterestViewModel? Insert(InterestBindingModel model);
InterestViewModel? Update(InterestBindingModel model);
InterestViewModel? Delete(InterestBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface ILessonStorage
{
List<LessonViewModel> GetFullList();
List<LessonViewModel> GetFilteredList(LessonSearchModel model);
LessonViewModel? GetElement(LessonSearchModel model);
LessonViewModel? Insert(LessonBindingModel model);
LessonViewModel? Update(LessonBindingModel model);
LessonViewModel? Delete(LessonBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface IMaterialStorage
{
List<MaterialViewModel> GetFullList();
List<MaterialViewModel> GetFilteredList(MaterialSearchModel model);
MaterialViewModel? GetElement(MaterialSearchModel model);
MaterialViewModel? Insert(MaterialBindingModel model);
MaterialViewModel? Update(MaterialBindingModel model);
MaterialViewModel? Delete(MaterialBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface IProductStorage
{
List<ProductViewModel> GetFullList();
List<ProductViewModel> GetFilteredList(ProductSearchModel model);
ProductViewModel? GetElement(ProductSearchModel model);
ProductViewModel? Insert(ProductBindingModel model);
ProductViewModel? Update(ProductBindingModel model);
ProductViewModel? Delete(ProductBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface IStudentStorage
{
List<StudentViewModel> GetFullList();
List<StudentViewModel> GetFilteredList(StudentSearchModel model);
StudentViewModel? GetElement(StudentSearchModel model);
StudentViewModel? Insert(StudentBindingModel model);
StudentViewModel? Update(StudentBindingModel model);
StudentViewModel? Delete(StudentBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface ITaskStorage
{
List<TaskViewModel> GetFullList();
List<TaskViewModel> GetFilteredList(TaskSearchModel model);
TaskViewModel? GetElement(TaskSearchModel model);
TaskViewModel? Insert(TaskBindingModel model);
TaskViewModel? Update(TaskBindingModel model);
TaskViewModel? Delete(TaskBindingModel model);
}
}

View File

@@ -0,0 +1,21 @@
using SchoolAgainStudyContracts.BindingModel;
using SchoolAgainStudyContracts.SearchModel;
using SchoolAgainStudyContracts.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.StorageContracts
{
public interface ITeacherStorage
{
List<TeacherViewModel> GetFullList();
List<TeacherViewModel> GetFilteredList(TeacherSearchModel model);
TeacherViewModel? GetElement(TeacherSearchModel model);
TeacherViewModel? Insert(TeacherBindingModel model);
TeacherViewModel? Update(TeacherBindingModel model);
TeacherViewModel? Delete(TeacherBindingModel model);
}
}

View File

@@ -0,0 +1,28 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class DiyViewModel : IDiy
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Описание")]
public string Description { get; set; } = string.Empty;
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
public int TaskId { get; set; }
public int StudentId { get; set; }
public Dictionary<int, IInterest> DiyInterests { get; set; } = new();
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class InterestViewModel : IInterest
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Описание")]
public string Description { get; set; } = string.Empty;
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class LessonViewModel : ILesson
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Дата проведения")]
public DateTime DateEvent { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
public int ProductId { get; set; }
public int TeacherId { get; set; }
public Dictionary<int, IMaterial> LessonMaterials { get; set; } = new();
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class MaterialViewModel : IMaterial
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Сфера использования")]
public string SphereUse { get; set; } = string.Empty;
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class ProductViewModel : IProduct
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Описание")]
public string Description { get; set; } = string.Empty;
[DisplayName("Дата создания")]
public DateTime DateCreate { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
public int StudentId { get; set; }
public Dictionary<int, IInterest> ProductInterests { get; set; } = new();
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class ReportDiyMaterialViewModel
{
public string Title { get; set; } = string.Empty;
public List<string> Diys { get; set; } = new();
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class ReportInterestLessonViewModel
{
public string Title { get; set; } = string.Empty;
public List<string> Lessons { get; set; } = new();
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class ReportInterestViewModel
{
public int Id { get; set; }
public string InterestTitle { get; set; } = string.Empty;
public string InterestDesc { get; set; } = string.Empty;
public string WorkType { get; set; } = string.Empty;
public string WorkTitle { get; set; } = string.Empty;
public string WorkDesc { get; set; } = string.Empty;
public DateTime DateCreate { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class ReportLessonTaskViewModel
{
public int Id { get; set; }
public string TitleLesson { get; set; } = string.Empty;
public string TitleTask { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SchoolAgainStudyDataModels.Models;
namespace SchoolAgainStudyContracts.ViewModel
{
public class StudentViewModel : IStudent
{
[DisplayName("ФИО")]
public string Name { get; set; } = string.Empty;
[DisplayName("Класс")]
public int Class { get; set; }
[DisplayName("Почта")]
public string Email { get; set; } = string.Empty;
[DisplayName("Логин")]
public string Login { get; set; } = string.Empty;
[DisplayName("Пароль")]
public string Password { get; set; } = string.Empty;
public Dictionary<int, IInterest> StudentInterests { get; set; } = new() ;
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class TaskViewModel : ITask
{
[DisplayName("Название")]
public string Title { get; set; } = string.Empty;
[DisplayName("Дата выдачи")]
public DateTime DateIssue { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
[DisplayName("Дата сдачи")]
public DateTime DateDelivery { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
public int TeacherID { get; set; }
public Dictionary<int, IMaterial> TaskMaterials { get; set; } = new();
[DisplayName("Номер")]
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
using SchoolAgainStudyDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolAgainStudyContracts.ViewModel
{
public class TeacherViewModel : ITeacher
{
[DisplayName("ФИО")]
public string Name { get; set; } = string.Empty;
[DisplayName("Должность")]
public string Post { get; set; } = string.Empty;
[DisplayName("Телефон")]
public string Phone { get; set; } = string.Empty;
[DisplayName("Логин")]
public string Login { get; set; } = string.Empty;
[DisplayName("Пароль")]
public string Password { get; set; } = string.Empty;
public Dictionary<int, IMaterial> TeacherMaterials { get; set; } = new();
[DisplayName("Номер")]
public int Id { get; set; }
}
}