Ejemplo n.º 1
0
        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 });
            }
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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 });
            }
        }
Ejemplo n.º 4
0
 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());
 }
Ejemplo n.º 5
0
        public async Task <ActionResult <List <TbUserRegistration> > > GetUserRegistration(TbUserRegistration urIn)
        {
            var userRegistrations = await _userIjoinsService.GetUserRegistration(urIn);

            if (userRegistrations == null)
            {
                return(NotFound());
            }

            return(userRegistrations);
        }