public async Task <dynamic> CheckInVehicle(CheckInData checkIn) { var ticket = await _ticketRepository.Query().SingleOrDefaultAsync(c => c.TicketType == checkIn.TicketType); if (ticket == null) { return(null); } var lastLotNumber = await _lotRepository.Query().Where(l => l.Vehicle.Ticket == ticket) .Select(l => l.LotPosition).OrderByDescending(c => c).Take(1) .FirstOrDefaultAsync(); var lotRange = await _lotRangeRepository.Query().SingleOrDefaultAsync(lr => lr.TicketId == ticket.Id); if (!IsAvailableLot(ticket, lastLotNumber, lotRange?.MaxRange)) { return(null); } var dimensionData = checkIn.VehicleDimensionData; if (!VehicleDimensionValidator.Validate(dimensionData, ticket)) { var alternativeTickets = await _ticketRepository.Query().Where(t => (t.MaxHeight > dimensionData.Height && t.MaxWidth > dimensionData.Width && t.MaxLength > dimensionData.Length) || t.TicketType == TicketType.Vip).ToListAsync(); var result = new { ChosenTicket = ticket, alternativeTickets }; return(result); } var person = await _peopleRepository.Query() .SingleOrDefaultAsync(p => p.PersonTz == checkIn.PersonData.PersonId); if (person == null) { person = MapPersonEntity(checkIn.PersonData); await _peopleRepository.InsertAsync(person); } var vehicle = await MapVehicleEntity(checkIn); vehicle.PersonId = person.Id; await _vehicleRepository.InsertAsync(vehicle); int lotPosition = lastLotNumber == 0 && lotRange != null ? lotRange.MinRange : lastLotNumber + 1; Lot lot = new Lot { Vehicle = vehicle, CheckIn = DateTime.UtcNow, LotPosition = lotPosition }; await _lotRepository.InsertAsync(lot); return(StatusCodes.Status202Accepted); }
/// <summary> /// 簽到 /// </summary> /// <param name="actId">活動id</param> /// <param name="userId">使用者id</param> /// <param name="today">時間</param> /// <returns></returns> internal void CheckIn(string actId, string userId, string today) { var data = new CheckInData(); data.userId = userId; data.checkIn_data = today; data.check_or_not = true; _db.GetCollection <CheckInData>($"CheckIn_{actId}").InsertOne(data); }
public IHttpActionResult GetCheckInsRealizados(int PeriodoId, int UsuarioId) { try { return(Json(new { Status = 1, Datos = CheckInData.GetCheckInsRealizados(PeriodoId, UsuarioId), Error = "", StackTrace = "" })); } catch (HttpResponseException ex) { return(Json(new { Status = 0, Datos = "", Error = ex.Message, StackTrace = ex.StackTrace })); } }
public IHttpActionResult PostCheckIns(Object checks) { try { var list = JsonConvert.DeserializeObject <List <LecturaCertificado> >(checks.ToString()); return(Json(new { Status = 1, Datos = CheckInData.PostCheckIns(list), Error = "", StackTrace = "" })); } catch (HttpResponseException ex) { return(Json(new { Status = 0, Datos = "", Error = ex.Message, StackTrace = ex.StackTrace })); } }
/// <summary> /// /// </summary> /// <param name="checkInData"></param> /// <returns></returns> private async Task <Vehicle> MapVehicleEntity(CheckInData checkInData) { var resultVehicle = new Vehicle { Ticket = await _ticketRepository.Query().SingleOrDefaultAsync(c => c.Name == checkInData.TicketType.ToString()), VehicleHeight = checkInData.VehicleDimensionData.Height.GetValueOrDefault(), VehicleWidth = checkInData.VehicleDimensionData.Width.GetValueOrDefault(), VehicleLength = checkInData.VehicleDimensionData.Length.GetValueOrDefault(), VehicleType = await _vehicleTypeRepository.Query() .SingleOrDefaultAsync(vt => vt.Name == checkInData.VehicleType.ToString()) }; return(resultVehicle); }
public CheckInResult CheckIn(CheckInData data) { try { if (!data.Authenticate()) { return new CheckInResult() { Status = CheckInStatus.InvalidCredentials } } ; return(data.Verify()); } catch (Exception error) { Error.Write(error); throw; } }
public async Task <IActionResult> CheckInVehicle([FromBody] CheckInData checkIn) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = await _parkingService.CheckInVehicle(checkIn); if (result != null) { return(Ok(result)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } return(BadRequest()); }
public async Task ExecuteRefreshCommand() { if (IsBusy) { return; } IsBusy = true; try { CheckInData.Clear(); var dataPoints = new List <DataPoint>(); var newMembers = await dataService.GetNewMembersForGroup(groupId); var rsvps = await dataService.GetRSVPsForGroup(groupId); foreach (var member in newMembers) { var data = dataPoints.FirstOrDefault(d => d.Time == member.EventDate); if (data == null) { data = new DataPoint { Time = member.EventDate, Date = FromUnixTime(member.EventDate).ToString("MM/dd/yy") }; dataPoints.Add(data); } data.Guests++; } foreach (var member in rsvps) { var data = dataPoints.FirstOrDefault(d => d.Time == member.EventDate); if (data == null) { data = new DataPoint { Time = member.EventDate, Date = FromUnixTime(member.EventDate).ToString("MM/dd/yy") }; dataPoints.Add(data); } data.CheckIns++; } foreach (var item in dataPoints.OrderBy(s => s.Time)) { CheckInData.Add(item); } if (ShowPopUps) { if (CheckInData.Count == 0) { messageDialog .SendMessage("There is no data for this group, please check-in a few members first to a meetup.", "No Statistics"); } } } catch (Exception ex) { if (Settings.Insights) { Xamarin.Insights.Report(ex); } } finally { IsBusy = false; } }
public void Delete(int id) { CheckInData data = new CheckInData(); data.DeleteCheckIn(id); }
public void Put(int id, CheckInModel checkIn) { CheckInData data = new CheckInData(); data.UpdateCheckIn(checkIn); }
public void Post(CheckInModel checkIn) { CheckInData data = new CheckInData(); data.SaveCheckIn(checkIn); }
public int PostForCheckInID(CheckInModel checkIn) { CheckInData data = new CheckInData(); return(data.GetCheckInID(checkIn)); }
public CheckInModel PostForCheckIn(ClientInfo cInfo) { CheckInData data = new CheckInData(); return(data.GetCheckIn(cInfo)); }
public List <CheckInModel> Get() { CheckInData data = new CheckInData(); return(data.GetCheckIns()); }