Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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;
            }
        }