public async Task <IActionResult> OnGetAsync(int?rid) { if (rid == null) { return(NotFound()); } Record record = await _context.Record.FirstOrDefaultAsync(m => m.rid == rid); if (record == null) { return(NotFound()); } if (record.InterviewID != 0) { InterviewTime interview = await _context.Time.FirstOrDefaultAsync(r => r.ID == record.InterviewID); if (interview != null) { interview.Students.Remove(record.rid); interview.NowNum--; await _context.SaveChangesAsync(); } record.InterviewID = 0; record.InterviewTime = null; await _context.SaveChangesAsync(); } return(RedirectToPage("../Records/index")); }
public static int SendQueRenSms(Record record, InterviewTime interview) { Credential cred = new Credential { SecretId = "*******************", SecretKey = "**********************" }; ClientProfile clientProfile = new ClientProfile(); HttpProfile httpProfile = new HttpProfile(); httpProfile.Endpoint = ("sms.tencentcloudapi.com"); clientProfile.HttpProfile = httpProfile; SmsClient client = new SmsClient(cred, "ap-nanjing", clientProfile); SendSmsRequest req = new SendSmsRequest(); req.PhoneNumberSet = new String[] { "+86" + record.phone }; req.TemplateID = "724175"; req.SmsSdkAppid = "1400410910"; req.Sign = "EVA记录"; req.TemplateParamSet = new String[] { record.name, interview.Day + " " + interview.BeginTime, interview.Place + "室" }; SendSmsResponse resp = client.SendSmsSync(req); if (resp.SendStatusSet[0].Code == "Ok") { return(1); } else { return(0); } }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } InterviewTime = await _context.Time.FindAsync(id); if (InterviewTime != null) { if (InterviewTime.Students.Count() > 0) { foreach (var x in InterviewTime.Students) { Record record = await _context.Record.FirstOrDefaultAsync(r => r.rid == x); record.InterviewID = 0; record.InterviewTime = null; await _context.SaveChangesAsync(); } } _context.Time.Remove(InterviewTime); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } InterviewTime.Students = new List <int>(); if (CreateTwo) { string anotherPlace = InterviewTime.Place == "200" ? "204" : "200"; InterviewTime tmp = await _context.Time.FirstOrDefaultAsync(r => r.Place == anotherPlace && r.Day == InterviewTime.Day && InterviewTime.BeginTime == r.BeginTime); if (tmp == null) { InterviewTime interviewTimeSecond = new InterviewTime() { Day = InterviewTime.Day, BeginTime = InterviewTime.BeginTime, Place = anotherPlace, TakenNum = InterviewTime.TakenNum, Chief = InterviewTime.Chief, SendSMS = InterviewTime.SendSMS, NowNum = 0, Students = new List <int>() }; _context.Add(interviewTimeSecond); await _context.SaveChangesAsync(); } } _context.Time.Add(InterviewTime); await _context.SaveChangesAsync(); return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } Record = await _context.Record.FirstOrDefaultAsync(r => r.rid == id); IQueryable <Record> tmp = from r in _context.Record where r.id_student == Record.id_student orderby r.addedDate descending select r; Records = await tmp.ToListAsync(); if (Record.InterviewID > 0) { InterviewTime interview = await _context.Time.FirstOrDefaultAsync(r => r.ID == Record.InterviewID); Record.InterviewTime = $"{interview.Day} {interview.BeginTime}"; } else { Record.InterviewTime = $"暂无数据"; } if (Record == null) { return(NotFound()); } return(Page()); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } InterviewTime interview = await _context.Time.AsNoTracking().FirstOrDefaultAsync(r => r.ID == InterviewTime.ID); InterviewTime.Students = new List <int>(); foreach (var x in interview.Students) { InterviewTime.Students.Add(x); } _context.Attach(InterviewTime).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!InterviewTimeExists(InterviewTime.ID)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } InterviewTime = await _context.Time.FirstOrDefaultAsync(m => m.ID == id); if (InterviewTime == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } Record = await _context.Record.FindAsync(id); if (Record != null) { if (!DeleteAll) { if (Record.InterviewID != 0) { InterviewTime interviewTime = await _context.Time.FirstOrDefaultAsync(r => r.ID == Record.InterviewID); if (interviewTime.NowNum > 0) { interviewTime.NowNum -= 1; } interviewTime.Students.Remove(Record.rid); await _context.SaveChangesAsync(); } _context.Record.Remove(Record); await _context.SaveChangesAsync(); } else { foreach (var x in _context.Record) { if (x.name == Record.name && x.id_student == Record.id_student && x.sex == Record.sex && x.phone == Record.phone) { _context.Record.Remove(x); } } await _context.SaveChangesAsync(); } } return(RedirectToPage("./Index")); }
private string GetRecommendTime(int rid) { Record record = _context.Record.FirstOrDefault(r => r.rid == rid); if (record == null) { return("NOT FOUND"); } List <int> Times = new List <int>(record.Times); int remaining = -1; int TimeID = 0; foreach (int x in Times) { InterviewTime interview = _context.Time.FirstOrDefault(r => r.ID == x); if (interview == null) { continue; } if (interview.TakenNum - interview.NowNum > remaining) { remaining = interview.TakenNum - interview.NowNum; TimeID = x; } } if (remaining > 0) { //the most remaining interview place InterviewTime interview = _context.Time.FirstOrDefault(r => r.ID == TimeID); return(interview.Day + " " + interview.BeginTime + " " + interview.Place + " " + "剩余" + (interview.TakenNum - interview.NowNum).ToString() + "人"); } else { return("NOT FOUND"); } }
public async Task <IActionResult> OnGetAsync(int?id, string SelectDay) { if (id == null) { return(NotFound()); } TimeDtos = await _context.Time.OrderBy(r => r.Day).ThenBy(r => r.BeginTime).ThenBy(r => r.Place).Select(r => new TimeDto { ID = r.ID, Day = r.Day, BeginTime = r.BeginTime, Place = r.Place }).ToListAsync(); Oldid = (int)id; Record = await _context.Record.FirstOrDefaultAsync(m => m.rid == id); if (Record == null) { return(NotFound()); } foreach (var x in TimeDtos) { if (Record.Times == null) { break; } if (Record.Times.Contains(x.ID)) { x.IsChoose = true; } } if (Record.InterviewID > 0) { InterviewTime interview = await _context.Time.FirstOrDefaultAsync(r => r.ID == Record.InterviewID); this.SelectDay = interview.Day; this.SelectTime = interview.BeginTime + " " + interview.Place + " 剩余" + (interview.TakenNum - interview.NowNum).ToString(); } IQueryable <string> Day = from m in _context.Time select m.Day; DayList = new SelectList(await Day.Distinct().OrderBy(r => r).ToListAsync()); if (SelectDay != null) { //if user is not admin only show the user choosed time IEnumerable <InterviewTime> contains = _context.Time; if (User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value != "纳新系统管理员") { contains = contains.Where(r => Record.Times.Contains(r.ID)); } IEnumerable <string> onlyShowChoose = contains.Where(m => m.Day == SelectDay).Where(m => m.TakenNum != m.NowNum).Select(m => m.BeginTime + " " + m.Place + " 剩余" + (m.TakenNum - m.NowNum).ToString()); EtcList = new SelectList(onlyShowChoose.Distinct()); this.SelectDay = SelectDay; } //get recommendTime to choose RecommendTime = GetRecommendTime(Record.rid); return(Page()); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } //添加日期 if (SelectDay != null && SelectTime != null) { //注意剩余前面的那个空格! SelectTime = SelectTime.Substring(0, SelectTime.IndexOf(" 剩余")); InterviewTime interviewTime = await _context.Time.FirstOrDefaultAsync(r => r.Day == SelectDay && r.BeginTime + " " + r.Place == SelectTime); if (interviewTime != null) { if (interviewTime.NowNum == interviewTime.TakenNum) { return(RedirectToPage("../Error")); } InterviewTime oldTime = null; foreach (var x in _context.Time) { try { if (x.Students.Contains(Record.rid)) { oldTime = x; break; } } catch (NullReferenceException e) { throw e; } } if (oldTime != null) { if (oldTime.NowNum > 0) { oldTime.NowNum -= 1; } oldTime.Students.Remove(Record.rid); await _context.SaveChangesAsync(); } interviewTime.NowNum += 1; interviewTime.Students.Add(Record.rid); await _context.SaveChangesAsync(); Record.InterviewID = interviewTime.ID; Record.InterviewTime = $"{SelectDay} {interviewTime.BeginTime}"; } } //重新赋值 var record = _context.Record.AsNoTracking().Where(r => r.rid == Record.rid).FirstOrDefault(); Record.status = record.status; Record.addedDate = record.addedDate; Record.ip = record.ip; Record.strguid = record.strguid; Record.Times = new List <int>(); foreach (var x in TimeDtos) { if (x.IsChoose) { Record.Times.Add(x.ID); } } _context.Attach(Record).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RecordExists(Record.rid)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { int rid = Record.rid; Record record = await _context.Record.FirstOrDefaultAsync(r => r.rid == rid); if (PullResponse) { try { await GetSMSResponse(Record.id_student, Record.phone); } catch (Exception e) { throw (e); } return(RedirectToPage("./SMS", new { id = Record.rid })); } SMS sms = new SMS() { id_student = record.id_student, sendTime = DateTime.Now, OperatorName = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value }; if (yuyue) { int ans = TencentSMS.SendYuYueSMS(record); sms.Status = ans; sms.type = "预约时间"; _context.Sms.Add(sms); await _context.SaveChangesAsync(); } else if (queren) { InterviewTime interview = await _context.Time.FirstOrDefaultAsync(r => r.ID == record.InterviewID); if (interview == null) { sms.Status = 0; sms.type = "未选择面试时间"; } else { int ans = TencentSMS.SendQueRenSms(record, interview); sms.Status = ans; sms.type = "确认时间"; } _context.Sms.Add(sms); await _context.SaveChangesAsync(); } else if (zuizhong) { if (record.status == Status.Pending) { sms.Status = 0; sms.type = "面试结果还未确认"; } else if (record.status == Status.Fail) { int ans = TencentSMS.SendFailSMS(record); sms.Status = ans; sms.type = "发送失败短信"; } _context.Sms.Add(sms); await _context.SaveChangesAsync(); } return(await OnGetAsync(rid)); }
public async Task OnGetAsync(int?pageId) { PageId = pageId ?? 1; SearchString = SearchString ?? string.Empty; SearchString = SearchString.Trim(); IQueryable <Record> recordQuery; if (SearchString != string.Empty) { long _studentId = 0; long.TryParse(SearchString, out _studentId); if (_studentId > 0) { // means searchstring is student_id_number recordQuery = from r in _context.Record where r.id_student == SearchString orderby r.addedDate descending select r; } else { //means searchstring is name recordQuery = from r in _context.Record where r.name == SearchString orderby r.addedDate descending select r; } } else { recordQuery = from r in _context.Record orderby r.addedDate descending select r; } //筛选每个人最近的一次提交 if (SearchString == string.Empty) { recordQuery = recordQuery .Where(t1 => !_context.Record.Any(t2 => t2.id_student == t1.id_student && t2.addedDate > t1.addedDate)); } if (EtcId > 0) { recordQuery = from r in recordQuery where r.InterviewID == EtcId select r; } (Record, PageCount) = await PaginatedList <Record> .CreateAsync(recordQuery.AsNoTracking(), PageId, pageSize); foreach (var x in Record) { if (x.InterviewID > 0) { InterviewTime interviewTime = await _context.Time.FirstOrDefaultAsync(r => r.ID == x.InterviewID); if (interviewTime != null) { x.InterviewTime = $"{interviewTime.Day} {interviewTime.BeginTime} {interviewTime.Place}"; } else { x.InterviewTime = "暂无数据"; } } else { x.InterviewTime = "暂无数据"; } } }