public async Task <ActionResult> EntryPoint(Guid id) { var stateOfImport = await mediator.SendAsync(new GetStateOfImportData(id)); var entryPoints = await mediator.SendAsync(new GetEntryOrExitPointsByCountry(stateOfImport.Country.Id)); var model = new EntryPointViewModel(stateOfImport, entryPoints); return(View(model)); }
public async Task <ActionResult> EntryPoint(Guid id, EntryPointViewModel model) { if (!ModelState.IsValid) { return(await EntryPoint(id)); } await mediator.SendAsync(new SetEntryPoint(id, model.SelectedEntryPoint.Value)); return(RedirectToAction("EntryPointChanged")); }
public async Task <ActionResult> EntryPoint(Guid id, EntryPointViewModel model) { if (!ModelState.IsValid) { return(await EntryPoint(id)); } await mediator.SendAsync(new SetEntryPoint(id, model.SelectedEntryPoint.Value)); await this.auditService.AddAuditEntry(this.mediator, id, User.GetUserId(), NotificationAuditType.Updated, NotificationAuditScreenType.ImportRoute); return(RedirectToAction("EntryPointChanged")); }
/// <summary> /// 匿名用户提供ticket通过当前方法进入问卷 /// </summary> /// <param name="ticket"></param> /// <param name="questionnaireGuid"></param> /// <returns>MercuryHtmlRenderedView</returns> public IActionResult StartByTicket(Guid ticketID) { lock (ticketsBook) { //查找所有签发超过15分钟的(过期)门票 IEnumerable <Ticket> expiredTickets = from ticket in ticketsBook where ticket.TicketingTime + TimeSpan.FromMinutes(15d) < DateTime.Now select ticket; //如果存在过期门票,全部移除 if (expiredTickets.Any()) { foreach (Ticket expiredTicket in expiredTickets) { ticketsBook.Remove(expiredTicket); } } var currentTicket = ticketsBook.FirstOrDefault(x => x.TicketID == ticketID); if (currentTicket != default) { ticketsBook.Remove(currentTicket); EntryPointViewModel vm = new EntryPointViewModel { Guid = currentTicket.QuestionnaireGuid, Authorization = currentTicket.BearerToken }; return(Ok(vm)); } else { return(NotFound("无效的TicketID")); } } }
/// <summary> /// 匿名用户提供ticket通过当前方法进入问卷 /// </summary> /// <param name="ticket"></param> /// <param name="questionnaireGuid"></param> /// <returns>MercuryHtmlRenderedView</returns> public IActionResult StartByTicket(Guid ticketID) { lock (ticketsBook) { //查找所有签发超过15分钟的(过期)门票 IEnumerable <Ticket> expiredTickets = from ticket in ticketsBook where ticket.TicketingTime + TimeSpan.FromMinutes(15d) < DateTime.Now select ticket; //如果存在过期门票,全部移除 if (expiredTickets.Any()) { foreach (Ticket expiredTicket in expiredTickets) { ticketsBook.Remove(expiredTicket); } } var currentTicket = ticketsBook.FirstOrDefault(x => x.TicketID == ticketID); if (currentTicket != default) { ticketsBook.Remove(currentTicket); EntryPointViewModel vm = new EntryPointViewModel { Guid = currentTicket.QuestionnaireGuid, Authorization = currentTicket.BearerToken }; #region //兼容可以重复测试的问题 //获取所有题目的Guid Guid questionnaireGuid = Guid.Parse("b546b709-2b2b-4f6e-9f1f-64f281de8d5b"); Questionnaire qn = (from questionnaire in noteContext.Questionnaire where questionnaire.Version != Guid.Empty where questionnaire.QuestionnaireGuid == questionnaireGuid orderby questionnaire.Ctime select questionnaire).First(); List <Guid> questionList = JsonConvert.DeserializeObject <List <Guid> >(qn.Question); DateTime today = DateTime.Now; //针对之前的回答做处理 IQueryable <Answer> answeredQuestions = from answer in noteContext.Answer where answer.Userid == currentTicket.UserGuid && answer.Ctime.Date == today.Date && questionList.Contains(answer.QuestionGuid) select answer; if (answeredQuestions.Any()) { foreach (Answer answerdQuestion in answeredQuestions) { if (answerdQuestion.Mtime == DateTime.MinValue) { //所有Mtime为最小的值,说明此问题没有回答 noteContext.Answer.Remove(answerdQuestion); } else { //所有剩余的回答,修改他们的时间为当前时间 answerdQuestion.Ctime = today; answerdQuestion.Mtime = today; noteContext.Update(answerdQuestion); } } } noteContext.SaveChanges(); #endregion //兼容可以重复测试的问题 return(Ok(vm)); } else { return(NotFound("无效的TicketID")); } } }