public async Task <object> CheckOut(TbUserRegistration urIn) { try { string responseMsg = ""; bool isAlert = false; if (urIn.StartDateQr != Utility.GetStryyyyMMddNow()) { isAlert = true; responseMsg = "Wrong date of QR Code!"; return(new { isScanSuccess = !isAlert, isAlert, scanResponseMsg = responseMsg }); } var userregistration = await _usercontext.TbUserRegistrations.Where( ur => ur.SessionId == urIn.SessionId && ur.UserId == urIn.UserId && ur.CheckInDate == Utility.GetStryyyyMMddNow() ).FirstOrDefaultAsync(); if (userregistration == null) { isAlert = true; responseMsg = "Please checked in before check out!"; } else { userregistration.CheckOutDatetime = DateTime.Now; userregistration.CheckOutDate = Utility.GetStryyyyMMddNow(); userregistration.CheckOutTime = int.Parse(Utility.GetStrHHmmNow()); userregistration.IsCheckOut = '1'; userregistration.CheckOutBy = urIn.CheckOutBy; _usercontext.Entry(userregistration).State = EntityState.Modified; await _usercontext.SaveChangesAsync(); //await _userregistrations.ReplaceOneAsync( // ur => ur.SessionId == urIn.SessionId // && ur.UserId == urIn.UserId // && ur.CheckInDate == Utility.GetStryyyyMMddNow() // , userregistration); var session = await _usercontext.TbmUserSessions.Where(w => w.SessionId == userregistration.SessionId).FirstOrDefaultAsync(); if (session != null && session.EndDateTime > Utility.GetEndDay()) { responseMsg = "Don't forget to join the remaining days."; } } return(new { isScanSuccess = !isAlert, isAlert, scanResponseMsg = responseMsg }); } catch (Exception ex) { return(new { isScanSuccess = false, scanResponseMsg = ex.Message }); } }
public async Task <ActionResult> CheckOut(TbUserRegistration urIn) { urIn.CheckOutDatetime = DateTime.Now; urIn.CheckOutDate = Utility.GetStryyyyMMddNow(); urIn.CheckOutTime = int.Parse(Utility.GetStrHHmmNow()); urIn.IsCheckOut = '1'; return(Ok(await _userIjoinsService.CheckOut(urIn))); }
public async Task <object> CheckIn(TbUserRegistration urIn) { try { string responseMsg = ""; bool isLate = false; bool isAlert = false; if (urIn.StartDateQr != Utility.GetStryyyyMMddNow()) { isAlert = true; responseMsg = "Wrong date of QR Code!"; return(new { isScanSuccess = !isAlert, isAlert, isLate, scanResponseMsg = responseMsg }); } var segment = await _usercontext.TbmUserSegments.Where( w => w.SessionId == urIn.SessionId && w.StartDate == Utility.GetStryyyyMMddNow() && w.EndDate == Utility.GetStryyyyMMddNow() ).FirstOrDefaultAsync(); if (segment != null) { if (int.Parse(Utility.GetStrHHmmNow()) > int.Parse(segment.StartDateTime.AddMinutes(1).ToString("HHmm"))) { responseMsg = "Your session has already started!"; isLate = true; } } var userregistration = await _usercontext.TbUserRegistrations.Where( ur => ur.SessionId == urIn.SessionId && ur.UserId == urIn.UserId && ur.CheckInDate == Utility.GetStryyyyMMddNow() ).FirstOrDefaultAsync(); if (userregistration == null) { //await _userregistrations.InsertOneAsync(urIn); _usercontext.TbUserRegistrations.Add(urIn); await _usercontext.SaveChangesAsync(); } else { isAlert = true; responseMsg = "You already checked in."; } return(new { isScanSuccess = !isAlert, isAlert, isLate, scanResponseMsg = responseMsg }); } catch (Exception ex) { return(new { isScanSuccess = false, scanResponseMsg = ex.Message }); } }
public async Task <List <TbUserRegistration> > GetUserRegistration(TbUserRegistration urIn) { return(await _usercontext.TbUserRegistrations.Where ( w => w.SessionId == urIn.SessionId && w.UserId.Contains(urIn.UserId) && ( w.CheckInDate == Utility.GetStryyyyMMddNow() || w.CheckOutDate == Utility.GetStryyyyMMddNow() ) ).ToListAsync()); }
public async Task <ActionResult <List <TbUserRegistration> > > GetUserRegistration(TbUserRegistration urIn) { var userRegistrations = await _userIjoinsService.GetUserRegistration(urIn); if (userRegistrations == null) { return(NotFound()); } return(userRegistrations); }