public ActionResult ValidateRealId(Guid?id) { var pendingList = this.manager.People.PendingRealIdValid().OrderBy(p => p.WhenRealIdCommited); Person forValid; if (id.HasValue) { forValid = pendingList.FirstOrDefault(p => p.Id == id.Value); if (forValid == null) { return(HttpNotFound()); } } else { var count = pendingList.Count(); if (count == 0) { return(View("PendingValidNotFound")); } if (count > 10) { count = 10; } forValid = pendingList.Skip(new Random().Next(count)).FirstOrDefault(); } if (forValid == null) { return(View("PendingValidNotFound")); } var model = new ValidateRealIdViewModel { PersonId = forValid.Id, }; return(View(model)); }
public async Task <ActionResult> ValidateRealId(Guid?id, ValidateRealIdViewModel model) { if (!this.ModelState.IsValid) { return(View(model)); } var person = await this.manager.FindByIdAsync(model.PersonId); if (person == null) { return(HttpNotFound()); } try { await this.manager.ValidateRealId(person, model.Accepted, this.DomainUser().DisplayName, model.ValidationMessage); //如果审核未通过,退回给用户。 if (!model.Accepted) { if (model.ReturnBackIfRefused) { await this.manager.ReturnBackAsync(person); } } if (model.Next) { return(RedirectToAction("ValidateRealId", routeValues: null)); } return(View("ValidateRealIdComplete")); } catch (Exception ex) { throw ex; } }