private ArrestReportSaveResult SaveReport() { try { Dictionary <String, String> validationErrors; if (Report.Validate(out validationErrors)) { ComputerReportsController.SaveArrestRecord(Report); if (Report == Globals.PendingArrestReport) { Globals.PendingArrestReport = new ArrestReport(); } NotifyForEvent(ArrestReportSaveResult.SAVE); return(ArrestReportSaveResult.SAVE); } else { if (OnArrestReportValidationError != null) { OnArrestReportValidationError(this, validationErrors); } return(ArrestReportSaveResult.SAVE_ERROR); } } catch (Exception e) { Function.Log(e.ToString()); return(ArrestReportSaveResult.SAVE_FAILED); } }
internal async static void ShowPedView() { if (!LastSelected || !LastSelected.Validate()) { return; } try { var reports = await ComputerReportsController.GetArrestReportsForPedAsync(LastSelected); var trafficCitations = await ComputerReportsController.GetTrafficCitationsForPedAsync(LastSelected); if (trafficCitations != null) { Function.Log("Found citations for ped"); } else { Function.Log("Citations for ped are null"); } Globals.Navigation.Push(new ComputerPedViewExtended(new DetailedEntity(LastSelected, reports, trafficCitations))); } catch (Exception e) { Function.Log(e.ToString()); } }
public override void InitializeLayout() { base.InitializeLayout(); this.Position = this.GetLaunchPosition(); this.Window.DisableResizing(); Function.LogDebug("Populating ALPR list"); AlprDetectedVehicles.Clear(); PopulateAnprList(); list_collected_tags.AllowMultiSelect = false; list_manual_results.AllowMultiSelect = false; list_collected_tags.RowSelected += onListItemSelected; list_manual_results.RowSelected += onListItemSelected; text_manual_name.SubmitPressed += onSearchSubmit; Function.LogDebug("Checking currently pulled over"); var currentPullover = ComputerVehicleController.CurrentlyPulledOver; if (currentPullover != null && AlprDetectedVehicles.Find(x => x.Vehicle == currentPullover.Vehicle) == null) { AlprDetectedVehicles.Add(currentPullover); } foreach (var vehicle in AlprDetectedVehicles) { list_collected_tags.AddVehicle(vehicle); ComputerReportsController.generateRandomHistory(vehicle); } }
private void ButtonClicked(Base sender, ClickedEventArgs arguments) { if (sender == btn_finish.Component || sender == btn_finish_new.Component) { Function.LogDebug("ButtonClicked"); if (labeled_vehicle_type.Component.SelectedItem.UserData is String && String.IsNullOrEmpty(labeled_vehicle_type.Component.SelectedItem.UserData as String)) { OnValidationError(sender, new Dictionary <string, string>() { { "Vehicle Type", "Cannot be Select One" } }); NotifyForEvent(TrafficCitationSaveResult.SAVE_ERROR); return; } UpdateCitationFromFields(); Dictionary <String, String> failReasons; if (!Citation.Validate(out failReasons)) { OnValidationError(sender, failReasons); NotifyForEvent(TrafficCitationSaveResult.SAVE_ERROR); } else { try { Citation = ComputerReportsController.SaveTrafficCitation(Citation); //if (Globals.PendingTrafficCitation == Citation) Globals.PendingTrafficCitation = null; NotifyForEvent(TrafficCitationSaveResult.SAVE); if (sender == btn_finish_new.Component) { Globals.PendingTrafficCitation = TrafficCitation.CloneFromCitation(Citation); ChangeCitation(Globals.PendingTrafficCitation); new MessageBox(this, "Saved citation. Creating new"); BindNeeded = true; BindDataFromCitation(); } else { if (this.Container != null) { this.Container.Close(); } } } catch (Exception e) { NotifyForEvent(TrafficCitationSaveResult.SAVE_FAILED); new MessageBox(this, String.Format("Failed to save citation.. {0}", e.Message), "Failure saving"); } } } }
private void ReportsClickedHandler(Base sender, ClickedEventArgs e) { if (sender == btn_arrest_history) { ComputerReportsController.ShowArrestReportList(); } else if (sender == btn_citation_history) { ComputerReportsController.ShowTrafficCitationList(); } }
internal async static void ShowVehicleDetails() { if (!LastSelected || !LastSelected.Validate()) { return; } var reports = await ComputerReportsController.GetArrestReportsForPedAsync(LastSelected); var trafficCitations = await ComputerReportsController.GetTrafficCitationsForPedAsync(LastSelected); Globals.Navigation.Push(new ComputerVehicleViewExtendedContainer(new DetailedEntity(LastSelected, reports, trafficCitations))); }
private void OpenReport(object sender, TrafficCitation citation) { if (citation != null) { if (OnTrafficCitationSelected == null) { ComputerReportsController.ShowTrafficCitationView(citation); } else { OnTrafficCitationSelected(this, citation); } } }
private async void OpenReport(ArrestReport report) { if (report != null) { if (OnArrestReportSelected == null) { await ComputerReportsController.ShowArrestReportView(report); } else { OnArrestReportSelected(report); } } }
internal static void ShowVehicleDetails() { if (!LastSelected || !LastSelected.Validate()) { return; } var reports = ComputerReportsController.GetArrestReportsForPed(LastSelected); var trafficCitations = ComputerReportsController.GetTrafficCitationsForPed(LastSelected); if (LastSelected != null && LastSelected.Vehicle != null && LastSelected.Vehicle.IsValid() && LastSelected.Ped != null && LastSelected.Ped.IsValid()) { Globals.Navigation.Push(new ComputerVehicleViewExtendedContainer(new DetailedEntity(LastSelected, reports, trafficCitations))); } }
private void ReportsClickedHandler(Base sender, ClickedEventArgs e) { //if (sender == btn_browse_report) // ComputerReportsController.ShowTrafficCitationList(); //else if(sender == btn_arrest_report) //ComputerReportsController.ShowTrafficCitationCreate(null); if (sender == btn_browse_report) { ComputerReportsController.ShowArrestReportList(); } else if (sender == btn_arrest_report) { ComputerReportsController.ShowArrestReportCreate(null, null); } }
private void OnQuickAction(object sender, QuickActions action) { switch (action) { case QuickActions.CREATE_TRAFFIC_CITATION: { ComputerReportsController.ShowTrafficCitationCreate(null, DetailedEntity.Entity); return; } case QuickActions.CREATE_ARREST_REPORT: { ComputerReportsController.ShowArrestReportCreate(DetailedEntity.Entity, null); return; } } }
private void PedViewQuickActionSelected(object sender, ComputerPedView.QuickActions action) { switch (action) { case ComputerPedView.QuickActions.CREATE_ARREST_REPORT: { ComputerReportsController.ShowArrestReportCreate(DetailedEntity.Entity, PedCreateArrestReportActions); return; } case ComputerPedView.QuickActions.CREATE_TRAFFIC_CITATION: { ComputerReportsController.ShowTrafficCitationCreate(Globals.PendingTrafficCitation, DetailedEntity.Entity, PedCreateTrafficCitationActions); return; } } }
private void OnQuickAction(object sender, QuickActions action) { switch (action) { case QuickActions.BLIP_VEHICLE: Function.LogDebug("ActionSelected Blip Vehicle"); ComputerVehicleController.BlipVehicle(Vehicle, System.Drawing.Color.Yellow); break; case QuickActions.CREATE_TRAFFIC_CITATION: ComputerReportsController.ShowTrafficCitationCreate(null, DetailedEntity.Entity); break; case QuickActions.CREATE_ARREST_REPORT_FOR_DRIVER: ComputerReportsController.ShowArrestReportCreate(DetailedEntity.Entity, null); break; } }
public void PopulateStoppedPedsList() { try { ComputerPedController controller = ComputerPedController.Instance; var peds = controller.PedsCurrentlyStoppedByPlayer; list_collected_ids.Clear(); foreach (var entity in peds.Select(x => controller.LookupPersona(x))) { if (entity != null) { list_collected_ids.AddPed(entity); ComputerReportsController.generateRandomHistory(entity); } } } catch (Exception e) { Function.Log(e.ToString()); } }
internal static void ShowPedView() { if (!LastSelected || !LastSelected.Validate()) { return; } try { var arrestReports = ComputerReportsController.GetArrestReportsForPed(LastSelected); if (arrestReports != null && arrestReports.Count > 0) { Function.Log("Found arrest report for ped"); } else { Function.Log("Arrest report for ped are null"); } var trafficCitations = ComputerReportsController.GetTrafficCitationsForPed(LastSelected); if (trafficCitations != null && trafficCitations.Count > 0) { Function.Log("Found citations for ped"); } else { Function.Log("Citations for ped are null"); } if (LastSelected != null && LastSelected.FullName != null && LastSelected.Ped != null && LastSelected.Ped.IsValid()) { Function.LogDebug("Creating ComputerPedViewExtendedContainer"); Globals.Navigation.Push(new ComputerPedViewExtendedContainer(new DetailedEntity(LastSelected, arrestReports, trafficCitations))); } } catch (Exception e) { Function.Log(e.ToString()); } }
private void VehicleViewQuickActionSelected(object sender, ComputerVehicleDetails.QuickActions action) { switch (action) { case ComputerVehicleDetails.QuickActions.BLIP_VEHICLE: { ComputerVehicleController.BlipVehicle(DetailedEntity.Entity.Vehicle, System.Drawing.Color.Yellow); return; } case ComputerVehicleDetails.QuickActions.CREATE_TRAFFIC_CITATION: { ComputerReportsController.ShowTrafficCitationCreate(Globals.PendingTrafficCitation, DetailedEntity.Entity, PedCreateTrafficCitationActions); return; } case ComputerVehicleDetails.QuickActions.CREATE_ARREST_REPORT_FOR_DRIVER: { ComputerReportsController.ShowArrestReportCreate(DetailedEntity.Entity, PedCreateArrestReportActions); return; } } }
private void ActionComboBoxItemSelected(Base sender, ItemSelectedEventArgs arguments) { var action = (QuickActions)arguments.SelectedItem.UserData; if (OnQuickActionSelected != null) { OnQuickActionSelected(this, action); return; } switch (action) { case QuickActions.CREATE_ARREST_REPORT: { ComputerReportsController.ShowArrestReportCreate(this.Entity, null); return; } case QuickActions.CREATE_TRAFFIC_CITATION: { ComputerReportsController.ShowTrafficCitationCreate(null, this.Entity); return; } } }
private void CheckForDeliverTicketTrigger() { if (!Globals.HasTrafficTicketsInHand() && (ShouldEndPullover.HasValue && ShouldEndPullover.Value) && !Game.LocalPlayer.Character.HasScenario()) { ShouldEndPullover = null; GameFiber.StartNew(() => { if (Game.LocalPlayer.Character.LastVehicle && !Game.LocalPlayer.Character.LastVehicle.HasDriver) { Game.DisplayNotification("The driver will wait until you are back in your vehicle before taking off"); } while (Game.LocalPlayer.LastVehicle && !Game.LocalPlayer.LastVehicle.HasDriver) { GameFiber.Sleep(1000); //Wait for the player to enter their vehicle } Function.Log("Starting Ending pull over wait timer for ped to leave"); var stopAt = DateTime.Now.AddMilliseconds(4000); //have the sadPed drive off in 4 seconds if the traffic stop isnt over while (DateTime.Now < stopAt) { GameFiber.Sleep(500); } try { lock (mPromptedCitations) mPromptedCitations.Clear(); var handle = Functions.GetCurrentPullover(); if (handle != null) { Functions.ForceEndCurrentPullover(); } } catch (Exception e) { Function.LogCatch(e.Message); } }); } else if (Globals.HasTrafficTicketsInHand() && !Game.LocalPlayer.Character.HasScenario()) //only run when we have tickets and we're not already doing WORLD_HUMAN_CLIPBOARD { var stopped = World.GetEntities(Game.LocalPlayer.Character.Position, 2.5f, GetEntitiesFlags.ConsiderAllPeds); if (stopped != null && stopped.Count() > 0) { var pedsAboutToGetTheSmackDown = stopped.Select(x => x as Ped) .Where(x => x.DistanceTo(Game.LocalPlayer.Character.FrontPosition) < 2f && Globals.GetTrafficCitationsInHandForPed(x) != null); //may have to add ordering by distance foreach (var sadPed in pedsAboutToGetTheSmackDown) { if (Configs.GiveTicketsToPed.Any(x => x.IsPressed)) { //The user wants to give the sad ped the ticket now.. GameFiber.StartNew(() => { List <TrafficCitation> citations = Globals.GetTrafficCitationsInHandForPed(sadPed); Globals.RemoveTrafficCitationsInHandForPed(sadPed); //var item = new Rage.Object(new Model("prop_cs_documents_01"), Game.LocalPlayer.Character.Position); var item = new Rage.Object(new Model("prop_cs_pamphlet_01"), Game.LocalPlayer.Character.GetOffsetPositionUp(3f)); item.AttachTo(Game.LocalPlayer.Character, Game.LocalPlayer.Character.GetBoneIndex(PedBoneId.RightThumb1), new Vector3(0.11f, -0.015f, 0f), new Rotator(-195f, 90f, 0f)); GameFiber.StartNew(delegate { GameFiber.Sleep(1300); item.Detach(); item.Delete(); }); Game.LocalPlayer.Character.Tasks.PlayAnimation("mp_common", "givetake1_b", 3f, AnimationFlags.None).WaitForCompletion(); if (Functions.GetCurrentPullover() != null) { ShouldEndPullover = true; } if (sadPed != null && sadPed.IsValid() && citations != null && citations.Count > 0) { // mark ped has been given citation sadPed.Metadata.citedByComputerPlus = true; // create court case for citation ComputerReportsController.createCourtCaseForCitations(citations, sadPed); } }); break; } else { //Prompt the user that they can deliver the ticket OnFacingPedWithPendingTickets(null, sadPed, Globals.GetTrafficCitationsInHandForPed(sadPed)); } } } } else if (Functions.GetCurrentPullover() == null && Globals.HasTrafficTicketsInHand()) { Globals.ClearTrafficCitationsInHand(); return; } }