private static void insertTrafficCitation(TrafficCitation citation)
        {
            var citationDoc = new TrafficCitationDoc
            {
                Id = citation.id,
                CitationTimeDate = citation.CitationTimeDate.ToString(Function.DateFormatForPart(DateOutputPart.ISO)),
                FirstName        = citation.FirstName,
                LastName         = citation.LastName,
                DOB                   = citation.DOB,
                HomeAddress           = citation.HomeAddress,
                CitationStreetAddress = citation.CitationStreetAddress,
                CitationCity          = citation.CitationCity,
                CitationPosX          = (float)citation.CitationPosX,
                CitationPosY          = (float)citation.CitationPosY,
                CitationPosZ          = (float)citation.CitationPosZ,
                VehicleType           = citation.VehicleType,
                VehicleModel          = citation.VehicleModel,
                VehicleTag            = citation.VehicleTag,
                VehicleColor          = citation.VehicleColor,
                CitationReason        = citation.CitationReason,
                CitationAmount        = citation.CitationAmount,
                Details               = citation.Details,
                IsArrestable          = citation.IsArrestable
            };

            Globals.Store.citationCollection.Insert(citationDoc);
        }
        public static void ShowTrafficCitationCreate(TrafficCitation citation, ComputerPlusEntity entity = null, TrafficCitationView.TrafficCitationActionEvent callbackDelegate = null)
        {
            TrafficCitation mCitation = null;

            if (citation == null && entity == null)
            {
                mCitation = Globals.PendingTrafficCitation != null ? Globals.PendingTrafficCitation : new TrafficCitation();
            }
            else if (citation == null && entity.Validate())
            {
                Function.Log("Creating Traffic Citation for ped in vehicle");
                mCitation = TrafficCitation.CreateForPedInVehicle(entity);
                Globals.PendingTrafficCitation = mCitation;
                Function.Log("Created Traffic Citation for ped  " + mCitation.FirstName);
            }
            else if (citation != null && citation == Globals.PendingTrafficCitation && !citation.FullName.Equals(entity.FullName))
            {
                if (entity.Validate())
                {
                    mCitation = TrafficCitation.CreateForPedInVehicle(entity);
                }
                else
                {
                    mCitation = new TrafficCitation();
                }
                Globals.PendingTrafficCitation = mCitation;
            }
            else
            {
                mCitation = citation;
            }
            Globals.Navigation.Push(new TrafficCitationCreateContainer(mCitation, TrafficCitationView.ViewTypes.CREATE, callbackDelegate));
        }
        private void RenderTrafficCitationListBoxRow(TrafficCitation citation, ListBoxRow row)
        {
            var dateString = citation.CitationTimeDate.ToLocalTimeString(DateOutputPart.DATE);

            row.Text = String.Format("{0}: {1}", dateString, citation.CitationReason);
            row.SetToolTipText(String.Format("Fine {0}", citation.CitationAmount));
        }
 private void ChangeTrafficCitationDetailView(object sender, TrafficCitation citation)
 {
     if (trafficCitationView != null && citation != null)
     {
         trafficCitationView.ChangeCitation(citation);
     }
 }
        private static TrafficCitation convertCitationDoc(TrafficCitationDoc citationDoc)
        {
            var citation = new TrafficCitation();

            citation.id = citationDoc.Id;
            citation.CitationTimeDate = DateTime.ParseExact(citationDoc.CitationTimeDate, Function.DateFormatForPart(DateOutputPart.ISO), CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal);
            citation.FirstName        = citationDoc.FirstName;
            citation.LastName         = citationDoc.LastName;
            citation.DOB                   = citationDoc.DOB;
            citation.HomeAddress           = citationDoc.HomeAddress;
            citation.CitationStreetAddress = citationDoc.CitationStreetAddress;
            citation.CitationCity          = citationDoc.CitationCity;
            var posX = citationDoc.CitationPosX;
            var posY = citationDoc.CitationPosY;
            var posZ = citationDoc.CitationPosZ;

            citation.CitationPos    = new Vector3(posX, posY, posZ);
            citation.VehicleType    = citationDoc.VehicleType == null ? String.Empty : citationDoc.VehicleType;
            citation.VehicleModel   = citationDoc.VehicleModel == null ? String.Empty : citationDoc.VehicleModel;
            citation.VehicleTag     = citationDoc.VehicleTag == null ? String.Empty : citationDoc.VehicleTag;
            citation.VehicleColor   = citationDoc.VehicleColor == null ? String.Empty : citationDoc.VehicleColor;
            citation.CitationReason = citationDoc.CitationReason;
            citation.CitationAmount = citationDoc.CitationAmount;
            citation.Details        = citationDoc.Details == null ? String.Empty : citationDoc.Details;
            citation.IsArrestable   = citationDoc.IsArrestable;

            return(citation);
        }
Example #6
0
 public static async Task <TrafficCitation> SaveTrafficCitationAsync(TrafficCitation citation)
 {
     try
     {
         if (citation.IsNew)
         {
             citation.id = Guid.NewGuid();
             await Globals.Store.Connection().InsertWithChildrenAsync(citation, true);
         }
         else
         {
             await Globals.Store.Connection().UpdateWithChildrenAsync(citation);
         }
         if (Globals.PendingTrafficCitation != null && Globals.PendingTrafficCitation == citation)
         {
             Globals.PendingTrafficCitation = null;
         }
         return(citation);
     }
     catch (Exception e)
     {
         Function.LogCatch(e.ToString());
         throw e;
     }
 }
        private static void updateTrafficCitation(TrafficCitation citation)
        {
            var citationDoc = Globals.Store.citationCollection.FindOne(x => x.Id == citation.id);

            citationDoc.CitationTimeDate = citation.CitationTimeDate.ToString(Function.DateFormatForPart(DateOutputPart.ISO));
            citationDoc.FirstName        = citation.FirstName;
            citationDoc.LastName         = citation.LastName;
            citationDoc.DOB                   = citation.DOB;
            citationDoc.HomeAddress           = citation.HomeAddress;
            citationDoc.CitationStreetAddress = citation.CitationStreetAddress;
            citationDoc.CitationCity          = citation.CitationCity;
            citationDoc.CitationPosX          = (float)citation.CitationPosX;
            citationDoc.CitationPosY          = (float)citation.CitationPosY;
            citationDoc.CitationPosZ          = (float)citation.CitationPosZ;
            citationDoc.VehicleType           = citation.VehicleType;
            citationDoc.VehicleModel          = citation.VehicleModel;
            citationDoc.VehicleTag            = citation.VehicleTag;
            citationDoc.VehicleColor          = citation.VehicleColor;
            citationDoc.CitationReason        = citation.CitationReason;
            citationDoc.CitationAmount        = citation.CitationAmount;
            citationDoc.Details               = citation.Details;
            citationDoc.IsArrestable          = citation.IsArrestable;

            Globals.Store.citationCollection.Update(citationDoc);
        }
        private static void updateTrafficCitation(TrafficCitation citation)
        {
            string pedHash = citation.FirstName + citation.LastName + citation.DOB;
            List <TrafficCitationDoc> citationDocs;

            if (Globals.Store.trafficCitationDict.TryGetValue(pedHash, out citationDocs))
            {
                TrafficCitationDoc citationDoc = citationDocs.Find(x => x.Id == citation.id);
                if (citationDoc != null)
                {
                    citationDoc.CitationTimeDate = citation.CitationTimeDate.ToString(Function.DateFormatForPart(DateOutputPart.ISO));
                    citationDoc.FirstName        = citation.FirstName;
                    citationDoc.LastName         = citation.LastName;
                    citationDoc.DOB                   = citation.DOB;
                    citationDoc.HomeAddress           = citation.HomeAddress;
                    citationDoc.CitationStreetAddress = citation.CitationStreetAddress;
                    citationDoc.CitationCity          = citation.CitationCity;
                    citationDoc.CitationPosX          = (float)citation.CitationPosX;
                    citationDoc.CitationPosY          = (float)citation.CitationPosY;
                    citationDoc.CitationPosZ          = (float)citation.CitationPosZ;
                    citationDoc.VehicleType           = citation.VehicleType;
                    citationDoc.VehicleModel          = citation.VehicleModel;
                    citationDoc.VehicleTag            = citation.VehicleTag;
                    citationDoc.VehicleColor          = citation.VehicleColor;
                    citationDoc.CitationReason        = citation.CitationReason;
                    citationDoc.CitationAmount        = citation.CitationAmount;
                    citationDoc.Details               = citation.Details;
                    citationDoc.IsArrestable          = citation.IsArrestable;
                }
            }
        }
Example #9
0
        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");
                    }
                }
            }
        }
Example #10
0
 public void ChangeCitation(TrafficCitation citation, bool readOnly = false)
 {
     Function.LogDebug("ChangeCitation from " + Citation.Id() + " to " + citation.Id());
     Citation   = citation;
     BindNeeded = true;
     if (!citation.IsNew)
     {
         PopulateCitationCategories(null);
     }
     labeled_available_citation_reasons.Component.UnselectAll();
     BindDataFromCitation();
 }
        private static TrafficCitation generateRandomCitation(ComputerPlusEntity entity)
        {
            TrafficCitation newCitation = TrafficCitation.CreateForPedInVehicle(entity);

            newCitation.VehicleType = "N/A";
            int randomSeconds = Globals.Random.Next(SECONDS_IN_A_DAY * 7, SECONDS_IN_A_DAY * 1200) * -1;

            newCitation.CitationTimeDate      = DateTime.Now.ToUniversalTime().AddSeconds(randomSeconds);
            newCitation.CitationPos           = Rage.World.GetRandomPositionOnStreet();
            newCitation.CitationStreetAddress = Rage.World.GetStreetName(newCitation.CitationPos);
            newCitation.CitationCity          = Functions.GetZoneAtPosition(newCitation.CitationPos).RealAreaName;
            newCitation.Citation = ComputerPedController.GetRandomCitation();
            return(SaveTrafficCitation(newCitation));
        }
Example #12
0
 private void OpenReport(object sender, TrafficCitation citation)
 {
     if (citation != null)
     {
         if (OnTrafficCitationSelected == null)
         {
             ComputerReportsController.ShowTrafficCitationView(citation);
         }
         else
         {
             OnTrafficCitationSelected(this, citation);
         }
     }
 }
Example #13
0
 internal static void AddTrafficCitationsInHandForPed(Rage.Ped ped, TrafficCitation citation)
 {
     if (ped)
     {
         if (TicketsInPosession.ContainsKey(ped))
         {
             TicketsInPosession[ped].Add(citation);
         }
         else
         {
             TicketsInPosession.Add(ped, new List <TrafficCitation>()
             {
                 citation
             });
         }
     }
 }
 public TrafficCitationView(Base parent, TrafficCitation citation, ViewTypes viewType = ViewTypes.CREATE, TrafficCitationActionEvent actionCallback = null) : base(parent)
 {
     Citation = citation;
     ViewType = viewType;
     ReadOnly = ViewType != ViewTypes.CREATE;
     if (actionCallback != null)
     {
         OnTrafficCitationAction += actionCallback;
     }
     if (ViewType == ViewTypes.CREATE && (citation.CitationTimeDate == null || citation.CitationTimeDate == DateTime.MinValue))
     {
         citation.CitationTimeDate = DateTime.Now;
     }
     else
     {
         Function.Log(String.Format("Citation time is {0}", citation.CitationTimeDate.ToString()));
     }
     BindNeeded = true;
     InitializeLayout();
 }
 public static TrafficCitation SaveTrafficCitation(TrafficCitation citation)
 {
     try
     {
         if (citation.IsNew)
         {
             citation.id = Guid.NewGuid();
             insertTrafficCitation(citation);
         }
         else
         {
             updateTrafficCitation(citation);
         }
     }
     catch (Exception e)
     {
         Function.LogCatch(e.ToString());
     }
     if (Globals.PendingTrafficCitation != null && Globals.PendingTrafficCitation == citation)
     {
         Globals.PendingTrafficCitation = null;
     }
     return(citation);
 }
        private static void insertTrafficCitation(TrafficCitation citation)
        {
            var citationDoc = new TrafficCitationDoc
            {
                Id = citation.id,
                CitationTimeDate = citation.CitationTimeDate.ToString(Function.DateFormatForPart(DateOutputPart.ISO)),
                FirstName        = citation.FirstName,
                LastName         = citation.LastName,
                DOB                   = citation.DOB,
                HomeAddress           = citation.HomeAddress,
                CitationStreetAddress = citation.CitationStreetAddress,
                CitationCity          = citation.CitationCity,
                CitationPosX          = (float)citation.CitationPosX,
                CitationPosY          = (float)citation.CitationPosY,
                CitationPosZ          = (float)citation.CitationPosZ,
                VehicleType           = citation.VehicleType,
                VehicleModel          = citation.VehicleModel,
                VehicleTag            = citation.VehicleTag,
                VehicleColor          = citation.VehicleColor,
                CitationReason        = citation.CitationReason,
                CitationAmount        = citation.CitationAmount,
                Details               = citation.Details,
                IsArrestable          = citation.IsArrestable
            };

            string pedHash = citation.FirstName + citation.LastName + citation.DOB;
            List <TrafficCitationDoc> citationDocs;

            if (!Globals.Store.trafficCitationDict.TryGetValue(pedHash, out citationDocs))
            {
                citationDocs = new List <TrafficCitationDoc>();
                Globals.Store.trafficCitationDict.Add(pedHash, citationDocs);
                Function.Log("Adding Citation for ped hash=" + pedHash);
            }
            citationDocs.Add(citationDoc);
        }
Example #17
0
 internal static void DefaultRowRender(TrafficCitation citation, ListBoxRow row)
 {
     row.Text = String.Format("{0} {1} {2} {3}", citation.ShortId(), citation.CitationDate, citation.CitationTime, citation.FullName);
 }
Example #18
0
 internal TrafficCitationCreateContainer(TrafficCitation citation, TrafficCitationView.ViewTypes viewType = TrafficCitationView.ViewTypes.CREATE, TrafficCitationView.TrafficCitationActionEvent actionCallback = null) : base("Traffic Citation", TrafficCitationView.DefaultWidth, TrafficCitationView.DefaultHeight)
 {
     Citation = citation;
     ViewType = viewType;
     Callback = actionCallback;
 }
Example #19
0
 public void DefaultOnRowSelect(object sender, TrafficCitation selected)
 {
 }
Example #20
0
 public void ChangeCitation(TrafficCitation citation)
 {
     Citation = citation;
     trafficCitationCreate.ChangeCitation(Citation);
 }
Example #21
0
 public TrafficCitationView(Base parent, TrafficCitation citation, ViewTypes viewType = ViewTypes.CREATE, TrafficCitationActionEvent actionCallback = null) : this(null, parent, citation, viewType, actionCallback)
 {
 }
 private void PedCreateTrafficCitationActions(object sender, TrafficCitationView.TrafficCitationSaveResult action, TrafficCitation citation)
 {
     if (action != TrafficCitationView.TrafficCitationSaveResult.SAVE)
     {
         return;
     }
     Globals.AddTrafficCitationsInHandForPed(DetailedEntity.Entity.Ped, citation);
     if (!DetailedEntity.TrafficCitations.Contains(citation))
     {
         DetailedEntity.TrafficCitations.Add(citation);
     }
     AddTrafficCitationsTab();
 }
 public static void ShowTrafficCitationView(TrafficCitation citation)
 {
     Globals.Navigation.Push(new TrafficCitationCreateContainer(citation, TrafficCitationView.ViewTypes.VIEW)); //Switch to view
 }