/// <summary> Создать контекст </summary> public IOperationContext <IGraphLabsContext> Create() { var ctx = new GraphLabsContext(); ctx.Database.Log = s => Debug.WriteLine(s); return(new OperationContextImpl(new GraphLabsContextImpl(ctx), new ChangesTracker(ctx))); }
public TestInfo(GraphLabsContext ctx, int resultId) { var result = ctx.Results.FirstOrDefault(e => e.Id == resultId); if (result == null) { throw new Exception("Результат не найден!"); } var testResults = result .AbstractResultEntries .OfType <TestResult>() .ToArray(); if (!testResults.Any()) { throw new Exception("В тестпуле не оказалось заданий!"); } var testPool = testResults.First().TestPoolEntry.TestPool; TestPoolName = testPool.Name; TestEntries = new TestResultInfo[testResults.Length]; for (int i = 0; i < testResults.Length; i++) { TestEntries.SetValue(new TestResultInfo { QuestionName = testResults.ElementAt(i).TestPoolEntry.TestQuestion.Question, Score = testResults.ElementAt(i).TestPoolEntry.Score, Mark = testResults.ElementAt(i).Score }, i); } }
private static async Task InitializeDb(GraphLabsContext context, InitialData initialData) { await context.Database.MigrateAsync(); if (!context.TaskModules.Any()) { foreach (var module in initialData.GetTaskModules()) { context.TaskModules.Add(module); } await context.SaveChangesAsync(); } if (!context.TaskVariants.Any()) { foreach (var variant in initialData.GetTaskVariants(context.TaskModules)) { context.TaskVariants.Add(variant); } await context.SaveChangesAsync(); } if (!context.Users.Any()) { foreach (var user in initialData.GetUsers()) { context.Users.Add(user); } await context.SaveChangesAsync(); } }
private string[] GetProblems(GraphLabsContext ctx, int id) { string[] result; var problems = ctx.AbstractStudentActions.OfType <StudentAction>().Where(tr => tr.TaskResult.Result.Id == id && tr.Penalty != 0) .ToArray(); if (problems.Length == 0) { result = new string[1]; result[0] = "У вас нет проблемных зон."; } else { result = new string[0]; for (int i = 0; i < problems.Length; i++) { bool flag = true; for (int j = 0; j < problems.Length && j != i; j++) { if (problems[i].Description == problems[j].Description) { flag = false; } } if (flag) { result = InsertDescription(problems[i].Description, result); } } } return(result); }
/// <summary> Фабрика репозиториев </summary> public RepositoryFactory(GraphLabsContext context, ISystemDateService systemDateService, ITasksContext tasksContext) { Contract.Requires(context != null); _context = context; _systemDateService = systemDateService; _tasksContext = tasksContext; }
/// <summary> Базовый репозиторий </summary> protected RepositoryBase(GraphLabsContext context) { Contract.Requires(context != null); _disposed = false; Context = context; }
public void TestUserLoginIsUnique() { const string EMAIL = "*****@*****.**"; RemoveByCriteria <User>(u => u.Email == EMAIL); var user1 = GraphLabsContext.Users.Create(); user1.Name = TEST_NAME; user1.Email = EMAIL; user1.FatherName = "FatherName"; user1.PasswordHash = "PasswordHash"; user1.Surname = "Surname"; GraphLabsContext.Users.Add(user1); GraphLabsContext.SaveChanges(); var user2 = GraphLabsContext.Users.Create(); user2.Name = TEST_NAME; user2.Email = EMAIL; user2.FatherName = "FatherName"; user2.PasswordHash = "PasswordHash"; user2.Surname = "Surname"; GraphLabsContext.Users.Add(user2); Assert.Throws <SqlException>(() => GraphLabsContext.SaveChanges()); }
public TaskModulesController(GraphLabsContext context, IHostingEnvironment hostingEnvironment, IContentTypeProvider contentTypeProvider) { _db = context; _hostingEnvironment = hostingEnvironment; _contentTypeProvider = contentTypeProvider; }
public JSONTaskResultInfo(GraphLabsContext ctx, int id) { var taskResult = ctx.AbstractResultEntries.OfType <TaskResult>().Single(task => task.Id == id); Id = id; TaskName = taskResult.TaskVariant.Task.Name; Actions = GetStudentActionsInfo(ctx, id); Result = 0; }
private StudentActionInfo[] GetStudentActionsInfo(GraphLabsContext ctx, int id) { var actions = ctx.AbstractStudentActions.OfType <StudentAction>().Where(action => action.TaskResult.Id == id).ToArray(); var studentActions = new StudentActionInfo[actions.Length]; for (int i = 0; i < actions.Length; i++) { studentActions[i] = new StudentActionInfo(actions[i]); } return(studentActions); }
private TaskInfo[] GetTaskInfo(GraphLabsContext ctx, int id, long studentId) { var tasks = ctx.AbstractResultEntries.OfType <TaskResult>().Where(task => task.Result.Student.Id == studentId && task.Result.Id == id).ToArray(); var result = new TaskInfo[tasks.Length]; for (int i = 0; i < result.Length; i++) { result[i] = new TaskInfo(tasks, i); } return(result); }
private void RemoveByCriteria <T>(Expression <Func <T, bool> > predicate) where T : class { var set = GraphLabsContext.Set <T>(); var entities = set.Where(predicate); foreach (var entity in entities) { set.Remove(entity); } GraphLabsContext.SaveChanges(); }
public TaskModulesController(GraphLabsContext context, InMemoryInitialData initialData) { _db = context; if (!context.TaskModules.Any()) { foreach (var module in initialData.GetTaskModules()) { context.TaskModules.Add(module); } context.SaveChanges(); } }
public JSONResultLabResultInfo(GraphLabsContext ctx, int id, long studentId) { //var labVar = ctx.LabVariants.Single(labvar => labvar.Id == id); var result = ctx.Results.Single(res => res.Id == id); var labVar = result.LabVariant.Id; var labName = result.LabVariant.LabWork.Name; var resultStudent = ctx.Results.Where(tr => tr.Student.Id == studentId).ToArray(); var groupId = resultStudent[0].Student.Group.Id; Result = result.Id; LabName = labName; StudentsNumber = ctx.Groups.Count(tr => tr.Id == groupId); Place = GetPlace(ctx, labVar, studentId); Tasks = GetTaskInfo(ctx, id, studentId); Problems = GetProblems(ctx, id); HasTestPool = result.LabVariant?.Id; }
private int GetPlace(GraphLabsContext ctx, long id, long studentId) { var students = ctx.Results.Where(tr => tr.LabVariant.Id == id).OrderBy(td => td.Score).ToArray(); var place = 1; for (int i = 0; i < students.Length; i++) { if (students[i].Student.Id != studentId) { place++; } else { return(place); } } return(place); }
public void TestDoSmth() { RemoveByCriteria <User>(u => u.Name == TEST_NAME); Assert.AreEqual(0, GraphLabsContext.Users.Count(u => u.Name == TEST_NAME)); var user = GraphLabsContext.Users.Create(); user.Name = TEST_NAME; user.Email = "*****@*****.**"; user.FatherName = "FatherName"; user.PasswordHash = "PasswordHash"; user.Surname = "Surname"; GraphLabsContext.Users.Add(user); GraphLabsContext.SaveChanges(); Assert.AreEqual(1, GraphLabsContext.Users.Count(u => u.Name == TEST_NAME)); }
/// <summary> Менеджер изменений </summary> public ChangesTracker(GraphLabsContext context) { Contract.Requires(context != null); _context = context; }
/// <summary> Репозиторий с тестпулами </summary> public TestPoolRepository(GraphLabsContext context) : base(context) { }
/// <summary> Репозиторий с лабораторными работами </summary> public LabRepository(GraphLabsContext context, ITasksContext taskRepository) : base(context) { _taskRepository = taskRepository; }
/// <summary> Репозиторий с группами </summary> public CategoryRepository(GraphLabsContext context) : base(context) { }
public SystemDateService(GraphLabsContext context) { _context = context; }
/// <summary> Репозиторий с пользователями </summary> public UserRepository(GraphLabsContext context) : base(context) { }
public virtual void TestSetUp() { ExecuteOnConnection(c => ExecuteScript(GetSchemaInitializationScript(), c)); GraphLabsContext = CreateDbContext(); }
public UserService(IOptions <AuthSettings> appSettings, GraphLabsContext ctx, PasswordHashCalculator hashCalculator) { _ctx = ctx; _hashCalculator = hashCalculator; _appSettings = appSettings.Value; }
/// <summary> Репозиторий с вопросами </summary> public SurveyRepository(GraphLabsContext context) : base(context) { }
/// <summary> Репозиторий с группами </summary> public GroupRepository(GraphLabsContext context) : base(context) { }
public UsersController(GraphLabsContext context) { _db = context; }
public TaskVariantLogsController(GraphLabsContext context, IHttpContextAccessor contextAccessor) { _db = context; _contextAccessor = contextAccessor; }
/// <summary> Множество сущностей определённого типа - реализация EF </summary> public EntitySet(GraphLabsContext ctx) { _ctx = ctx; }
/// <summary> Репозиторий с сессиями </summary> public SessionRepository(GraphLabsContext context, ISystemDateService systemDateService) : base(context) { _systemDateService = systemDateService; }