public void Consume(TestInfoRequest msg) { var testInfoFromDb = new TestInfoById { Id = msg.TestInfoId }.Load(session); var testInfo = testInfoFromDb == null ? null: new TestInfo { Checker = testInfoFromDb.Checker, CheckerArguments = testInfoFromDb.CheckerArguments, TestVerifier = testInfoFromDb.TestVerifier, Id = testInfoFromDb.Id, Tests = testInfoFromDb.Tests.Select(x => new Test { Description = x.Description, Input = x.Input, Output = x.Output, IsValid = x.IsValid, Points = x.Points }).ToArray() }; bus.Reply(new TestInfoEnvelope { TestInfo = testInfo }); }
public void Consume(PackTestInfo msg) { var testInfo = new TestInfoById { Id = msg.TestInfoId }.Load(session); var zipArchive = zipper.ZipTests(testInfo.Tests); var archiveUrl = archivedTestInfoRepository.StoreTestInfoArchive(msg.TestInfoId, zipArchive); bus.Notify(new PackTestInfoCompleted { ArchiveUrl = archiveUrl, TestInfoId = msg.TestInfoId }); }
public void OnAuthorization(AuthorizationContext filterContext) { if (lookFor == LookFor.SmartAss) { lookFor = LookFor.Contest; foreach (var kvp in smartAssLookUp) { if (filterContext.Controller.ValueProvider.GetValue(kvp.Key) != null) { lookFor = kvp.Value; param = kvp.Key; break; } } } var rawValue = filterContext.Controller.ValueProvider.GetValue(param).AttemptedValue; object id = lookFor == LookFor.TestInfo ? Guid.Parse(rawValue) : (object)Convert.ToInt32(rawValue); Contest contest; switch (lookFor) { case LookFor.TestInfo: contest = new TestInfoById { Id = (Guid)id }.Load(Session).Problem.Contest; break; case LookFor.Contest: contest = Session.Get <Contest>(id); break; case LookFor.Problem: contest = Session.Get <Problem>(id).Contest; break; case LookFor.Test: contest = Session.Get <Test>(id).Problem.Contest; break; default: throw new InvalidOperationException("Другие LookFor не подходят"); } if (!AuthorizationService.IsAllowed(UserSession.CurrentUser, contest, op.ToOperation())) { var expl = AuthorizationService.GetAuthorizationInformation(UserSession.CurrentUser, contest, op.ToOperation()).ToString(); filterContext.Result = new UnauthorizedViewResult(op, expl); } }