using ODCWeb.DataAccess.Data; using ODCWeb.DataAccess.Repository.IRepository; using ODCWeb.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ODCWeb.DataAccess.Repository { public class UnitOfWork : IUnitOfWork { private ApplicationDbContext _db; public IProjectRepository ODCProject { get; private set; } public IFloorRepository Floor { get; private set; } public IActionRepository Action { get; private set; } public ITaskRepository Task { get; private set; } public IMaterialRepository Material { get; private set; } public IPropertyRepository Property { get; private set; } public IDataActionRepository DataAction { get; private set; } public IDataTaskRepository DataTask { get; private set; } public IDataPropertyRepository DataProperty { get; private set; } public IDataMaterialRepository DataMaterial { get; private set; } public IDataFloorRepository DataFloor { get; private set; } public IConstantsRepository Constants { get; private set; } public ITPropertyRepository TemplateProperty { get; private set; } public ITMaterialRepository TemplateMaterial { get; private set; } public ITTaskRepository TemplateTask { get; private set; } public ITActionRepository TemplateAction { get; private set; } public IDataTempRepository DataTemp { get; private set; } public ITemplateFormulaRepository TemplateFormula { get; private set; } public ITemplateFormulaPRepository TemplateFormulaP { get; private set; } public ISTaskRepository ScheduleTask { get; private set; } public ISubtaskRepository Subtask { get; private set; } public IExcelTemplateRepository ExcelTemplate { get; private set; } public IMappingBQPropertyRepository MappingBQProperty { get; private set; } public IBQTemplateRepository BQTemplate { get; private set; } public IBQSectionRepository BQSection { get; private set; } public IBQItemRepository BQItem { get; private set; } public IBQPropertyMappingRepository BQPropertyMapping { get; private set; } public IProjectBQRepository ProjectBQ { get; private set; } public IProjectBQItemRepository ProjectBQItem { get; private set; } public IBQTaskMappingRepository BQTaskMapping { get; private set; } public IBQTaskVariantRepository BQTaskVariant { get; private set; } public IStandaloneBQTemplateRepository StandaloneBQTemplate { get; private set; } public IStandaloneBQSectionRepository StandaloneBQSection { get; private set; } public IStandaloneBQItemRepository StandaloneBQItem { get; private set; } public IStandaloneBQOutputRepository StandaloneBQOutput { get; private set; } public UnitOfWork(ApplicationDbContext db) { _db = db; ODCProject = new ProjectRepository(_db); Floor = new FloorRepository(_db); Action = new ActionRepository(_db); Task = new TaskRepository(_db); Material = new MaterialRepository(_db); Property = new PropertyRepository(_db); DataAction = new DataActionRepository(_db); DataTask = new DataTaskRepository(_db); DataProperty = new DataPropertyRepository(_db); DataMaterial = new DataMaterialRepository(_db); DataFloor = new DataFloorRepository(_db); Constants = new ConstantsRepository(_db); TemplateMaterial = new TMaterialRepository(_db); TemplateProperty = new TPropertyRepository(_db); TemplateTask = new TTaskRepository(_db); TemplateAction = new TActionRepository(_db); DataTemp = new DataTempRepository(_db); TemplateFormula = new TemplateFormulaRepository(_db); TemplateFormulaP = new TemplateFormulaPRepository(_db); ScheduleTask = new STaskRepository(_db); Subtask = new SubtaskRepository(_db); ExcelTemplate = new ExcelTemplateRepository(_db); MappingBQProperty = new MappingBQPropertyRepository(_db); BQTaskVariant = new BQTaskVariantRepository(_db); BQTemplate = new BQTemplateRepository(_db); BQSection = new BQSectionRepository(_db); BQItem = new BQItemRepository(_db); BQPropertyMapping = new BQPropertyMappingRepository(_db); BQTaskMapping = new BQTaskMappingRepository(_db); ProjectBQ = new ProjectBQRepository(_db); ProjectBQItem = new ProjectBQItemRepository(_db); StandaloneBQTemplate = new StandaloneBQTemplateRepository(_db); StandaloneBQSection = new StandaloneBQSectionRepository(_db); StandaloneBQItem = new StandaloneBQItemRepository(_db); StandaloneBQOutput = new StandaloneBQOutputRepository(_db); } public void save() { _db.SaveChanges(); } } }