Диплом: Автоматизация процесса контроля знаний учащихся ГОУ СОШ №31

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
108
return await kcsContext.UserTests.FromSqlRaw($@"select ut.*
from KCS.UserTest ut
inner join KCS.Test t on t.ID = ut.ID_Test
where t.ID_User = {idUser} and ut.EndDate is
not null
").ToListAsync();
}
public async Task<List<UserTestAdvanced>> GetUserTestAdvanced()
{
var query = await (from ut in kcsContext.UserTests
join u in kcsContext.Users on ut.IdUser equals u.Id
join ui in kcsContext.UsersInfo on u.Id equals ui.IdUser
join t in kcsContext.Tests on ut.IdTest equals t.Id
select new UserTestAdvanced
{
Id = ut.Id,
IdUser = ut.IdUser,
IdTest = ut.IdTest,
StartDate = ut.StartDate,
EndDate = ut.EndDate,
AttemptNumber = ut.AttemptNumber,
PointsСount = ut.PointsСount,
TestName = t.Name,
UserFIO = $"{ui.Surname} {ui.Name} {ui.Patronymic}"
}).ToListAsync();
return query;
}
public async Task<List<Question>> GetExistQuestionByIdTest(int idTest)
{
var query = await (from t in kcsContext.Tests
join q in kcsContext.Questions on t.Id equals q.IdTest
where t.Id == idTest && q.IsDeleted == false
select q).ToListAsync();
return query;
}
}
}
using Microsoft.EntityFrameworkCore.Storage;
109
using KCS.DataAccess.Context;
using KCS.DataAccess.Interfaces;
using KCS.DataAccess.Repositories;
using System;
using System.Collections.Generic;
namespace KCS.DataAccess
{
/// <summary>
/// Реализует интерфейс хранилища объединяющий в себе репозитории для
работы с данными.
/// </summary>
public class Storage : IStorage
{
public Storage(KCSContext kcsContext) => this.kcsContext = kcsContext;
private readonly KCSContext kcsContext;
private Dictionary<string, object> repositories;
private MixedRepository mixedRepository;
public GenericRepository<TEntity> GetRepository<TEntity>() where TEntity :
class
{
if (repositories == null)
repositories = new Dictionary<string, object>();
string type = typeof(TEntity).Name;
if (!repositories.ContainsKey(type))
{
Type repositoryType = typeof(GenericRepository<>);
object repositoryInstance =
Activator.CreateInstance(repositoryType.MakeGenericType(typeof(TEntity)),
kcsContext);
repositories.Add(type, repositoryInstance);
}
return (GenericRepository<TEntity>)repositories[type];
}
public MixedRepository MixedRepository
{
get
{
110
if (mixedRepository == null)
mixedRepository = new MixedRepository(kcsContext);
return mixedRepository;
}
}
public IDbContextTransaction BeginTransaction() =>
kcsContext.Database.BeginTransaction();
private bool disposed = false;
public virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing) kcsContext.Dispose();
disposed = true;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)