Example #1
0
        public async Task <IActionResult> CheckIn([FromBody] CheckInDTO checkInDTO)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var loginDto = _mapper.Map <LoginDTO>(checkInDTO);
                var userInfo = await _azureBusiness.Login(loginDto).ConfigureAwait(false);

                if (userInfo == null)
                {
                    return(Unauthorized());
                }

                var checkInResult = await _trackerBusiness.CheckInAsync(checkInDTO, userInfo).ConfigureAwait(false);

                if (!checkInResult)
                {
                    return(BadRequest(new { Message = "Unable to checkin device." }));
                }

                return(Ok(userInfo));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message + ex.StackTrace);
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }
Example #2
0
        private async Task CheckIn()
        {
            // Arrange
            var client     = _factory.CreateClient();
            var checkInUrl = "/api/Tracker/CheckIn";

            // Act
            var checkIn = new CheckInDTO()
            {
                Id       = "123456789",
                Email    = Credential.UserName,
                Password = Credential.Password,
                Remarks  = "testing"
            };
            var json     = JsonConvert.SerializeObject(checkIn);
            var content  = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PostAsync(checkInUrl, content).ConfigureAwait(false);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            var userInfo = JsonConvert.DeserializeObject <UserInfo>(responseContent);

            userInfo.Should().NotBeNull();
        }
Example #3
0
      public async Task <IActionResult> AdPutCheckInModel([FromBody] CheckInDTO model)
      {
          var user = await _userManager.FindByNameAsync(model.UserName);

          string userId = user.Id;

          var checkIn = new CheckInModel
          {
              ID          = model.ID,
              Day         = model.Day,
              FirstEntry  = model.FirstEntry,
              SecondEntry = model.SecondEntry,
              OwnerId     = userId
          };

          _context.Entry(checkIn).State = EntityState.Modified;

          try
          {
              await _context.SaveChangesAsync();
          }
          catch (DbUpdateConcurrencyException)
          {
              if (!CheckInModelExists(model.ID))
              {
                  return(NotFound());
              }
              else
              {
                  throw;
              }
          }
          return(NoContent());
      }
Example #4
0
        public async Task <IHttpActionResult> AddNewCheckIn(long id, CheckInDTO checkInDto)
        {
            Patient patient = await db.Patients.FirstOrDefaultAsync(x => x.Id == id);

            CheckIn checkIn = new CheckIn();

            checkIn.IsAppointment = checkInDto.IsAppointment;
            checkIn.Arrival       = DateTime.Now;
            checkIn.AppointedTo   = checkInDto.AppointedTo ?? checkIn.Arrival;
            checkIn.Description   = checkInDto.Description;
            if (patient.CheckIns == null)
            {
                patient.CheckIns = new List <CheckIn>()
                {
                    checkIn
                }
            }
            ;
            else
            {
                patient.CheckIns.Add(checkIn);
            }
            await db.SaveChangesAsync();

            return(Ok(Mapper.Map <CheckInDTO>(checkIn)));
        }
Example #5
0
 public static void AddCheckIn(CheckInDTO checkIn)
 {
     using (var context = new HotelContext())
     {
         context.CheckIns.Add(Mapper.Map <CheckInDTO, CheckIn>(checkIn));
         context.SaveChanges();
     }
 }
Example #6
0
 public void Update(CheckInDTO checkInDTO, DateTime dateStamp)
 {
     if (checkInDTO == null)
     {
         throw new ArgumentNullException("CheckIn model is null.");
     }
     tblT_CheckIn checkIn = checkInFactory.CreateFromDbAndUpdateFromDTO(checkInDTO, dateStamp);
 }
Example #7
0
        public ActionResult CheckIn(string rawBarcode)
        {
            EventQuery       eq      = new EventQuery();
            ParticipantQuery pq      = new ParticipantQuery();
            ParticipantDTO   pDTO    = new ParticipantDTO();
            CheckInQuery     ciq     = new CheckInQuery();
            CheckInDTO       ciDTO   = new CheckInDTO();
            CheckInRules     ciRules = new CheckInRules();
            BarcodeQuery     bcq     = new BarcodeQuery();

            bool   isValidBarcode  = bcq.isValidBarcode(rawBarcode);
            int    CheckInTimeCode = 0;
            bool   isDuplicate     = false;
            string colorCode       = "";

            if (isValidBarcode)
            {
                pDTO            = pq.FindParticipantByBarcode(rawBarcode);
                CheckInTimeCode = ciRules.IsValidCheckInTime(eq.QueryEventTimes(pDTO.eventId));
                isDuplicate     = ciRules.IsDuplicateCheckIn(ciq.QueryCheckInTimes(rawBarcode));
            }

            if (ModelState.IsValid && CheckInTimeCode == 0 && isDuplicate == false && isValidBarcode)
            {
                ciDTO.BarcodeId = bcq.GetBarcodeId(rawBarcode);
                ciq.CreateCheckIn(ciDTO);
                colorCode = "green";
                return(Json(new { errorColor = colorCode, error = "Checkin is Successful!" }));
            }

            string errorMessage = "";

            if (CheckInTimeCode == -1)
            {
                errorMessage += "The checkin period has not started";
                colorCode     = "red";
            }
            else if (CheckInTimeCode == 1)
            {
                errorMessage += "The checkin period has ended";
                colorCode     = "red";
            }

            else if (isDuplicate == true)
            {
                errorMessage += "This participant has already checked in";
                colorCode     = "yellow";
            }

            else if (!isValidBarcode)
            {
                errorMessage += "This is not a valid barcode";
                colorCode     = "red";
            }

            return(Json(new { errorColor = colorCode, error = errorMessage }));
        }
        public tblT_CheckIn Insert(CheckInDTO checkInDTO, DateTime dateStamp)
        {
            if (checkInDTO == null)
            {
                throw new ArgumentNullException("CheckIn model is null.");
            }
            tblT_CheckIn checkIn = checkInFactory.CreateFromDTO(checkInDTO, dateStamp);

            return(Db.tblT_CheckIn.Add(checkIn));
        }
        /// <summary>
        /// Used to convert database checkin object to a DTO
        /// </summary>
        /// <param name="checkIn">The check in to be converted</param>
        /// <returns>The dto version of the check in</returns>
        public CheckInDTO DAO2DTO(Checkinhistory checkIn)
        {
            CheckInDTO dto = new CheckInDTO()
            {
                CheckInId = checkIn.CheckInId,
                Nickname  = checkIn.Student.NickName,
                UnitId    = checkIn.UnitId,
                StudentId = checkIn.StudentId.Value
            };

            return(dto);
        }
Example #10
0
        private CheckInEntryModel GetCreateStateModel()
        {
            CheckInEntryFormData formData     = new CheckInEntryFormData();
            List <Control>       formControls = CreateFormControls(0);
            CheckInDTO           checkInDTO   = new CheckInDTO();

            return(new CheckInEntryModel()
            {
                FormData = formData,
                FormControls = formControls,
                Model = checkInDTO,
            });
        }
Example #11
0
        private CheckInEntryModel GetUpdateStateModel(int checkInPK)
        {
            CheckInEntryFormData formData     = new CheckInEntryFormData();
            List <Control>       formControls = CreateFormControls(checkInPK);
            CheckInDTO           checkInDTO   = checkInQuery.GetByPrimaryKey(checkInPK);

            if (checkInDTO == null)
            {
                throw new KairosException($"Record with primary key '{checkInDTO.CheckIn_PK}' is not found.");
            }

            return(new CheckInEntryModel()
            {
                FormData = formData,
                FormControls = formControls,
                Model = checkInDTO,
            });
        }
Example #12
0
        public void CreateCheckIn(CheckInDTO checkInDTO)
        {
            string          userId = HttpContext.Current.User.Identity.GetUserId();
            ApplicationUser user   = db.Users.Find(userId);

            Barcodes barcode = db.Barcodes.Find(checkInDTO.BarcodeId);
            CheckIns ci      = new CheckIns();

            ci.CheckinTime = DateTime.Now;
            ci.CreatedDate = DateTime.Now;
            ci.CreatedBy   = user;
            ci.IsActive    = true;

            db.CheckIns.Add(ci);
            barcode.CheckIns = new List <CheckIns>();
            barcode.CheckIns.Add(ci);
            db.SaveChanges();
        }
Example #13
0
      public async Task <ActionResult <CheckInModel> > AdPostCheckInModel(CheckInDTO model)
      {
          var user = await _userManager.FindByNameAsync(model.UserName);

          string userId = user.Id;

          var checkIn = new CheckInModel
          {
              Day         = model.Day,
              FirstEntry  = model.FirstEntry,
              SecondEntry = model.SecondEntry,
              OwnerId     = userId
          };

          _context.CheckIn.Add(checkIn);
          await _context.SaveChangesAsync();

          return(CreatedAtAction("GetCheckInModel", new { id = checkIn.ID }, checkIn));
      }
Example #14
0
        public CheckInDTO GetByPrimaryKey(int checkInPrimaryKey)
        {
            CheckInDTO record = GetQuery().FirstOrDefault(checkIn => checkIn.CheckIn_PK == checkInPrimaryKey);

            if (record != null)
            {
                var sowResult = new SOWResultQuery(Db).GetByCheckinFK(checkInPrimaryKey);
                if (sowResult != null)
                {
                    record.SOWResult = sowResult;
                }

                var sowTrackResults = new SOWTrackResultQuery(Db).GetByCheckinFK(checkInPrimaryKey);
                if (sowTrackResults != null)
                {
                    record.SOWTrackResults = sowTrackResults;
                }
            }
            return(record);
        }
Example #15
0
        /// <summary>
        /// Checked in a device
        /// </summary>
        /// <param name="checkIn">Contains the check in information</param>
        /// <returns>Returns true if the device is succesfully checked in, otherwise false</returns>
        public async Task <bool> CheckInAsync(CheckInDTO checkIn, UserInfo userInfo)
        {
            var device = await unitOfWork.DeviceRepository.FindByIdAsync(checkIn.Id);

            if (device == null || device.IsDeleted)
            {
                return(false);
            }

            if (!string.IsNullOrWhiteSpace(device.CurrentUser)) //device is currently in use.
            {
                var logOut = new Log
                {
                    LogTime  = DateTime.Now,
                    LogType  = (int)LogType.CheckOut,
                    UserName = device.CurrentUser,
                    DeviceId = device.Id
                };
                await unitOfWork.LogRepository.AddAsync(logOut).ConfigureAwait(false);
            }

            device.CurrentUser = userInfo.Name;
            device.Remarks     = checkIn.Remarks;
            await unitOfWork.DeviceRepository.UpdateAsync(device.Id, device).ConfigureAwait(false);

            var log = new Log
            {
                LogTime  = DateTime.Now,
                LogType  = (int)LogType.CheckIn,
                UserName = userInfo.Name,
                DeviceId = device.Id
            };

            await unitOfWork.LogRepository.AddAsync(log).ConfigureAwait(false);

            await unitOfWork.CompleteAsync().ConfigureAwait(false);

            return(true);
        }
Example #16
0
        public SaveResult <CheckInEntryModel> Save(CheckInDTO checkInDTO, DateTime dateStamp)
        {
            ModelValidationResult validationResult = checkInValidator.Validate(checkInDTO);
            bool success            = false;
            CheckInEntryModel model = null;

            if (validationResult.IsValid)
            {
                success = true;
                Update(checkInDTO, dateStamp);
                Db.SaveChanges();
                model = checkInEntryDataProvider.Get(checkInDTO.CheckIn_PK);
            }

            return(new SaveResult <CheckInEntryModel>
            {
                Success = success,
                Message = validationResult.IsValid ? "Data successfully updated." : "Validation error occured.",
                Model = model,
                ValidationResult = validationResult
            });
        }
        public ActionResult SearchCheckIn(JQueryDataTableRequest jqueryTableRequest, string episodeId, string metricId, string teamId, string playerId)
        {
            if (jqueryTableRequest != null)
            {
                GetAllDTO all = new GetAllDTO();

                List <RunEngineDTO> runners = new List <RunEngineDTO>();

                if (playerId != "empty")
                {
                    RunEngineDTO runner = RunEngineService.Instance.GetByEpisodeIdAndPlayerId(episodeId, playerId);

                    runners.Add(runner);
                }
                else if (teamId != "empty")
                {
                    runners = GetRunsByTeamIdRecursive(teamId);
                }
                else
                {
                    all = TeamEngineService.Instance.FindByEpisodeId(episodeId);

                    all.List.team = all.List.team.OrderBy(x => x.Nick).ToList();

                    List <string> subTeamsNull = all.List.team.Where(x => x.SubOfTeamId == null).Select(x => x.Id).ToList();

                    List <TeamEngineDTO> teams = new List <TeamEngineDTO>();

                    foreach (string subTeamNull in subTeamsNull)
                    {
                        teams.AddRange(OrganizeHierarchy(all.List.team, subTeamNull));
                    }

                    foreach (TeamEngineDTO team in teams)
                    {
                        runners.AddRange(GetRunsByTeamIdRecursive(team.Id));
                    }
                }

                MetricEngineDTO metric = MetricEngineService.Instance.GetById(metricId);

                List <LocationDTO> locations = MetricEngineService.Instance.MapPointsByRunsAndMetric(runners, metric);

                List <CheckInDTO> checkIns = new List <CheckInDTO>();

                foreach (LocationDTO location in locations)
                {
                    CheckInDTO ci = new CheckInDTO();



                    DateTime date = new DateTime(((location.Date - 10800000) * 10000) + 621355968000000000l);
                    ci.Date = date.ToString("dd'/'MM'/'yyyy HH':'mm':'ss");

                    PlayerEngineDTO player = PlayerEngineService.Instance.GetById(location.PlayerId);
                    ci.PlayerName  = player.Nick;
                    ci.Description = location.Description ?? "Check-in";
                    ci.Place       = location.Place;
                    checkIns.Add(ci);
                }

                JQueryDataTableResponse response = new JQueryDataTableResponse()
                {
                    Draw            = jqueryTableRequest.Draw,
                    RecordsTotal    = locations.Count,
                    RecordsFiltered = locations.Count,
                    Data            = checkIns.OrderByDescending(r => DateTime.Parse(r.Date)).Select(r => new string[] { r.Date, r.PlayerName, r.Description, r.Place }).ToArray()
                };

                return(new DataContractResult()
                {
                    Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }

            return(Json(null, JsonRequestBehavior.AllowGet));
        }