public async Task <Unit> Handle(JudgingFinishedRequest request, CancellationToken cancellationToken) { // 此处两个请求大概率命中缓存,对性能影响不严重 request.Contest = await Contests.FindAsync(request.ContestId); if (request.Contest.RankingStrategy == 1) { var probs = await Problems.ListAsync(request.ContestId); var prob = probs.SingleOrDefault(cp => cp.ProblemId == request.ProblemId); if (prob == null) { return(Unit.Value); } request.CfScore = prob.Score; } var strategy = IRankingStrategy.SC[request.Contest.RankingStrategy]; if (request.SubmitTime < (request.Contest.EndTime ?? DateTimeOffset.Now)) { await(request.Judging.Status switch { Verdict.Accepted => strategy.Accept(Context, request), Verdict.CompileError => strategy.CompileError(Context, request), _ => strategy.Reject(Context, request) });
public async Task <IActionResult> CreateContest([Bind("ContestTitle,ContestText,ContestStartDate,ContestEndDate,Email")] Contests contest, IFormFile file) { //check if image is valid ValidImageUpload(file, "Contest"); if (ModelState.IsValid) { //give new contest a unique id contest.ContestId = Guid.NewGuid(); //add image to image folder if employee uploaded one if (file != null) { //Add to Database Images image = await TTLAddImage(file); _context.Add(image); await _context.SaveChangesAsync(); contest.ContestImageId = image.ImageId; } //set contest upload date contest.ContestUploadDate = DateTime.Now; contest.ContestEditDate = DateTime.Now; _context.Add(contest); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(AllContests))); } return(View(contest)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,UrlVideo,Name,Describle,LinkRegis,role")] Contests contests) { if (id != contests.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(contests); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContestsExists(contests.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(contests)); }
public ActionResult Contests() { BootBaronLib.AppSpec.DasKlub.BOL.VideoContest.Contests contests = new Contests(); contests.GetAll(); return View(contests); }
/// <summary> /// 从数据库中移除给定的比赛数据实体。 /// </summary> /// <param name="entity">要移除的比赛实体对象。</param> /// <exception cref="ArgumentNullException"/> public void RemoveContest(ContestEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } Contests.Remove(entity); }
public ActionResult Contests() { var contests = new Contests(); contests.GetAll(); contests.Sort((p1, p2) => p2.BeginDate.CompareTo(p1.BeginDate)); return View(contests); }
/// <summary> /// 将给定的比赛实体数据添加至数据库中。 /// </summary> /// <param name="entity">要添加的比赛实体。</param> /// <exception cref="ArgumentNullException"/> public void AddContest(ContestEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } Contests.Add(entity); SaveChanges(); }
public async Task <IActionResult> Create([Bind("Id,UrlVideo,Name,Describle,LinkRegis,role")] Contests contests) { if (ModelState.IsValid) { _context.Add(contests); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(contests)); }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> public void Dispose() { Contests.Dispose(); ContestParticipants.Dispose(); Horses.Dispose(); HorseOwners.Dispose(); Racecourses.Dispose(); HorseFactories.Dispose(); Jockeys.Dispose(); Trainers.Dispose(); }
public ActionResult GetManagedContests(string Token, int?Page) { var user = CheckUser(Token); if (user == null) { return(Json(new Contests { List = null, Code = 500, IsSuccess = false, PageCount = -1, Info = "AccessToken不正确" })); } if (Page == null) { Page = 0; } IQueryable <Entity.Contest> contests = (from c in DbContext.Contests orderby c.End descending select c); if (user.Role < Entity.UserRole.Master) { contests.Where(x => (from cm in x.Managers select cm.UserID).Contains(user.ID)); } contests.Skip(10 * Page.Value).Take(10).ToList(); var ret = new Contests() { Code = 0, IsSuccess = true, Info = "", PageCount = Convert.ToInt32(Math.Ceiling(DbContext.Contests.Count() / 10f)), List = new List <Contest>() }; foreach (var contest in contests) { ret.List.Add(new Contest { ContestID = contest.ID, Begin = contest.Begin, End = contest.End, Format = contest.Format.ToString(), FormatAsInt = contest.FormatAsInt, RestBegin = contest.RestBegin, RestEnd = contest.RestEnd, Title = contest.Title }); } return(Json(ret)); }
public ActionResult GetContests(string Token, int?Page) { var user = CheckUser(Token); if (user == null) { return(Json(new Contests { List = null, Code = 500, IsSuccess = false, Info = "AccessToken不正确" })); } if (Page == null) { Page = 0; } var HistroyTime = Convert.ToDateTime("2014-8-1 0:00"); var contests = (from c in DbContext.Contests where c.End >= HistroyTime orderby c.End descending select c).Skip(10 * Page.Value).Take(10).ToList(); var ret = new Contests { Code = 0, IsSuccess = true, Info = "", PageCount = DbContext.Contests.Count() / 10 + 1, List = new List <Contest>() }; foreach (var contest in contests) { ret.List.Add(new Contest { ContestID = contest.ID, Begin = contest.Begin, End = contest.End, Format = contest.Format.ToString(), FormatAsInt = contest.FormatAsInt, RestBegin = contest.RestBegin, RestEnd = contest.RestEnd, Title = contest.Title }); } return(Json(ret)); }
private static void VideoCount() { var vids = new Videos(); var conts = new Contests(); conts.GetAll(); int count = 0; int totalVids = 0; foreach (Contest c1 in conts) { var cv = new ContestVideo(); var cvs = new ContestVideos(); cvs.GetContestVideosForContest(c1.ContestID); totalVids += cvs.Count; count += (from cv2 in cvs select new Video(cv2.VideoID) into v1 let doc = new XmlDocument() select Utilities.GETRequest( new Uri("http://gdata.youtube.com/feeds/api/videos/" + v1.ProviderKey + @"?v=2&alt=json")) into s where !string.IsNullOrWhiteSpace(s) select (JObject) JsonConvert.DeserializeObject(s) into JObj select JObj["entry"] into entry from thumbnail in entry["yt$statistics"] where !thumbnail.ToString().Contains("fav") select Convert.ToInt32(thumbnail.ToString() .Replace(@"""viewCount"": """, string.Empty) .Replace(@"""", string.Empty))).Sum(); } }
public void AddContest(Contest contest) { Contests.Add(contest); }
public async Task <IActionResult> EditContest(Guid id, [Bind("ContestId,ContestTitle,ContestText,ContestStartDate,ContestEndDate,Email,ContestUploadDate,ContestImageId")] Contests contest, IFormFile file, string contestStatus) { if (id != contest.ContestId) { return(NotFound()); } if (contestStatus == "EditContest") { //check if image is valid ValidImageUpload(file, "Contest"); if (ModelState.IsValid) { Images oldImage = await _context.Images.Where(i => i.ImageId.Equals(contest.ContestImageId)).FirstOrDefaultAsync(); contest.ContestImageId = null; //add image to image folder if employee uploaded one if (file != null) { //Add to Database Images image = await TTLAddImage(file); _context.Add(image); await _context.SaveChangesAsync(); contest.ContestImageId = image.ImageId; } //set contest edit date contest.ContestEditDate = DateTime.Now; try { _context.Update(contest); if (oldImage != null) { TTLRemoveUnusedImage(contest.ContestImageId, oldImage); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContestExists(contest.ContestId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(AllContests))); } } //Remove Image from Contest else { contest.ContestImageId = null; } return(View(contest)); }
private void LoadContests() { // var contests = new Contests(); contests.GetAll(); ddlContest.DataSource = contests; ddlContest.DataTextField = "name"; ddlContest.DataValueField = "contestID"; ddlContest.DataBind(); ddlContest.Items.Add(new ListItem(unknownValue)); ddlContest.SelectedValue = unknownValue; }
/// <summary> /// 按比赛 ID 查询比赛实体对象。 /// </summary> /// <param name="contestId">要查询的比赛 ID 。</param> /// <returns> /// 具有给定比赛 ID 值得比赛实体对象。若未在数据库中找到对应的比赛实体对象,返回 null 。 /// </returns> public ContestEntity QueryContestById(int contestId) { return(Contests.Find(contestId)); }