public async Task <IActionResult> PutContestStatus([FromRoute] int id, [FromBody] ContestStatus contestStatus) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != contestStatus.ContestStatusId) { return(BadRequest("Užklausos būsenos ID nesutampa su formoje esančiu būsenos ID")); } _context.Entry(contestStatus).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContestStatusExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public ContestBriefModel() { ContestId = 0; Title = string.Empty; StartTime = DateTime.Now; EndTime = DateTime.Now; AuthorizationMode = ContestAuthorizationMode.Private; ParticipationMode = ContestParticipationMode.Both; Status = ContestStatus.Pending; Creator = string.Empty; }
public async Task <IActionResult> PostContestStatus([FromBody] ContestStatus contestStatus) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.ContestStatuses.Add(contestStatus); await _context.SaveChangesAsync(); return(CreatedAtAction("GetContestStatus", new { id = contestStatus.ContestStatusId }, contestStatus)); }
/// <summary> /// 将给定的 ContestStatus 枚举值转换为与其对应的字符串表示。 /// </summary> /// <param name="value">ContestStatus 枚举值。</param> /// <returns>对应 ContestStatus 枚举值的字符串表示。</returns> /// <exception cref="ArgumentException"/> public static string ConvertToString(ContestStatus value) { switch (value) { case ContestStatus.Pending: return(PendingString); case ContestStatus.Running: return(RunningString); case ContestStatus.Ended: return(EndedString); default: throw new ArgumentException("传入的 ContestStatus 枚举值不合法。"); } }
/// <summary> /// Finishes the contest, no need to save /// </summary> public void Finish() { try { this.Status = ContestStatus.Finished; //Pick up the winners //var AllParticipants = TableHelper.SelectRows<ContestParticipant> // (TableHelper.MakeDictionary("ContestId", this.Id)); var AllParticipants = GetAllMembersParticipating(); AllContestLatestWinners HistoryContestData = new AllContestLatestWinners(); HistoryContestData.ContestId = this.Id; HistoryContestData.NumberOfParticipants = AllParticipants.Count; AllParticipants.Sort(Comparison); string winner1 = "-"; string winner2 = "-"; string winner3 = "-"; if (AllParticipants.Count > 0) { winner1 = "OK"; } if (AllParticipants.Count > 1) { winner2 = "OK"; } if (AllParticipants.Count > 2) { winner3 = "OK"; } Money ZeroMoney = new Money(0); if (winner1 == "OK") { if (AllParticipants[0].Points == ZeroMoney) { winner1 = "-"; } else { Member Winner1 = new Member(AllParticipants[0].Username); ContestManager.AwardMember(Winner1, this.RewardType, this.Prize1Value, 1); winner1 = Winner1.Name + ": " + ContestManager.GetPrizeProperObject(this.RewardType, this.Prize1Value).ToString() + " [%" + (int)this.RewardType + "%]"; } } if (winner2 == "OK") { if (AllParticipants[1].Points == ZeroMoney) { winner2 = "-"; } else { Member Winner2 = new Member(AllParticipants[1].Username); ContestManager.AwardMember(Winner2, this.RewardType, this.Prize2Value, 2); winner2 = Winner2.Name + ": " + ContestManager.GetPrizeProperObject(this.RewardType, this.Prize2Value).ToString() + " [%" + (int)this.RewardType + "%]"; } } if (winner3 == "OK") { if (AllParticipants[2].Points == ZeroMoney) { winner3 = "-"; } else { Member Winner3 = new Member(AllParticipants[2].Username); ContestManager.AwardMember(Winner3, this.RewardType, this.Prize3Value, 3); winner3 = Winner3.Name + ": " + ContestManager.GetPrizeProperObject(this.RewardType, this.Prize3Value).ToString() + " [%" + (int)this.RewardType + "%]"; } } //Save contest history data foreach (var elem in AllParticipants) { HistoryContestData.Participants += elem.Username + "(" + elem.Points.GetRealTotals().ToString() + "), "; } HistoryContestData.Winner1 = winner1; HistoryContestData.Winner2 = winner2; HistoryContestData.Winner3 = winner3; HistoryContestData.Save(); ContestLatestWinners.AddAndClean(this.Type, winner1, winner2, winner3); this.Save(); //Clean the contest data (ContestParticipants) TableHelper.DeleteRows <ContestParticipant>(TableHelper.MakeDictionary("ContestId", this.Id)); } catch (Exception ex) { ErrorLogger.Log(ex); } }