Esempio n. 1
0
        public static Safe_Citations NewCitation(string theBadgeNumber)
        {
            Safe_Citations result;

            using (var context = new SafeEntities())
            {
                result = new Safe_Citations();
                result.CitationNumber = "";

                // clean up badge number
                string[] separators = { " " };
                string[] badgeParts = theBadgeNumber.Split(separators, StringSplitOptions.RemoveEmptyEntries);
                theBadgeNumber = badgeParts[0];

                var badge   = context.Person_Badges.Where(b => b.BadgeNumber == theBadgeNumber).Single();
                var perXref = badge.PersonDivisionXrefID;
                var divXref = context.Person_PersonDivisionXref
                              .Include("Person_FullName")
                              .Include("Division_Divisions")
                              .Include("Division_Divisions.Company_Companies")
                              .Where(d => d.PersonDivisionXrefID == perXref).Single();

                result.Person_PersonDivisionXref = divXref;
                result.BadgeID = badge.BadgeID;
                result.PersonDivisionXrefID = divXref.PersonDivisionXrefID;
                //result.WhenCreated = DateTime.Now;
                //result.WhenDue = DateTime.Now.AddDays(15);
                result.Cancelled = "z";
                result.FollowUp  = "z";

                result.Documents = new List <Documents>();
            }

            return(result);
        }
Esempio n. 2
0
        public static bool UpdateOrInsert(int safeCitationID, int violationID, Safe_CitationViolations data)
        {
            bool result;

            try
            {
                using (var context = new SafeEntities())
                {
                    var dbRecord = (from r in context.Safe_CitationViolations
                                    where r.SafeCitationID == safeCitationID &&
                                    r.ViolationID == violationID
                                    select r).Single() ?? new Safe_CitationViolations();

                    PropertyInfo[] props = data.GetType().GetProperties();

                    Array.ForEach(props, prop =>
                    {
                        var val = prop.GetType().GetProperty(prop.Name).GetValue(data, null);
                        prop.SetValue(dbRecord, val, null);
                    });

                    context.SaveChanges();
                }
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }

            return(result);
        }
Esempio n. 3
0
        public static Safe_Citations GetCitation(int citationID)
        {
            var context = new SafeEntities();

            var citations = context.Safe_Citations
                            .Include("Safe_Hearings")
                            .Include("Safe_Hearings.Safe_HearingPoliceOfficers")
                            .Include("Safe_Hearings.Safe_HearingPoliceOfficers.LEO_OfficerBadges")
                            .Include("Safe_Hearings.Safe_HearingPoliceOfficers.LEO_OfficerBadges.Person_FullName")
                            .Include("Safe_Hearings.Safe_Officers")
                            .Include("Safe_VehicleMakes")
                            .Include("Safe_VehicleBodyTypes")
                            .Include("Safe_CitationViolations")
                            .Include("Safe_CitationViolations.Safe_Violations")
                            .Include("Safe_CitationViolations.Safe_ViolationTypes")
                            .Include("Safe_CitationPoliceOfficers")
                            .Include("Safe_CitationPoliceOfficers.LEO_OfficerBadges")
                            .Include("Safe_CitationPoliceOfficers.LEO_OfficerBadges.Person_FullName")
                            .Include("Person_PersonDivisionXref")
                            .Include("Person_PersonDivisionXref.Person_FullName")
                            .Include("Person_PersonDivisionXref.Division_Divisions")
                            .Include("Person_PersonDivisionXref.Division_Divisions.Company_Companies")
                            //.Include("Documents")
                            .Where(c => c.SafeCitationID == citationID);

            string identificationNumber = "CITATION:" + citationID.ToString();
            var    documents            = context.Documents.Where(d => d.IdentificationNumber == identificationNumber).ToList();

            var citation = citations.FirstOrDefault();

            citation.Documents = documents.ToList();

            return(citation);
        }
Esempio n. 4
0
        public static bool Save(ICollection <Safe_HearingPoliceOfficers> safeHearingPoliceOfficers, int safeHearingId)
        {
            bool result;

            try
            {
                using (var context = new SafeEntities())
                {
                    #region Remove

                    if (safeHearingPoliceOfficers.Count() < 1)                     // no change or all deleted
                    {
                        var delOfficers = from delOfficer in context.Safe_HearingPoliceOfficers
                                          where delOfficer.SafeHearingID == safeHearingId
                                          select delOfficer;

                        foreach (var item in delOfficers)
                        {
                            context.Safe_HearingPoliceOfficers.Remove(item);
                        }
                    }
                    else                     // posable delete
                    {
                        var officerBadgeIds = (from officerBadgeId in safeHearingPoliceOfficers
                                               where officerBadgeId.SafeHearingID == safeHearingId
                                               select officerBadgeId.OfficerBadgeID).ToList();

                        var delOfficers = from delOfficer in context.Safe_HearingPoliceOfficers
                                          where officerBadgeIds.Contains(delOfficer.OfficerBadgeID) == false &&
                                          delOfficer.SafeHearingID == safeHearingId
                                          select delOfficer;

                        foreach (var item in delOfficers)
                        {
                            context.Safe_HearingPoliceOfficers.Remove(item);
                        }
                    }
                    #endregion Remove

                    #region Add

                    var newOfficerBadgeIds = (from newOfficerBadgeId in context.Safe_HearingPoliceOfficers
                                              where newOfficerBadgeId.SafeHearingID == safeHearingId
                                              select newOfficerBadgeId.OfficerBadgeID).ToList();


                    var addOfficers = from addOfficer in safeHearingPoliceOfficers
                                      where newOfficerBadgeIds.Contains(addOfficer.OfficerBadgeID) == false
                                      select addOfficer;

                    foreach (var item in addOfficers)
                    {
                        Safe_HearingPoliceOfficers newOfficer = new Safe_HearingPoliceOfficers();

                        PropertyInfo[] props = item.GetType().GetProperties();

                        Array.ForEach(props, prop =>
                        {
                            if (!prop.GetGetMethod().IsVirtual)
                            {
                                var source = prop.GetValue(item, null);
                                prop.SetValue(newOfficer, source, null);
                            }
                        });
                        context.Safe_HearingPoliceOfficers.Add(newOfficer);
                    }

                    #endregion Add

                    #region Save

                    context.SaveChanges();

                    #endregion Save
                }
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }

            return(result);
        }
Esempio n. 5
0
        public static bool Save(ICollection <Safe_CitationViolations> citationViolations, int safeCitationID)
        {
            bool result = false;

            try
            {
                using (var context = new SafeEntities())
                {
                    #region Get SafeCitationID

                    var tmp = from c in citationViolations
                              select c;
                    var citationId = safeCitationID;

                    #endregion

                    #region Get List of items to delete

                    var ids = from id in citationViolations
                              select new { id.ViolationID };
                    var idList = ids.Select(item => item.ViolationID).ToList();


                    var deleteList = from d in context.Safe_CitationViolations
                                     where d.SafeCitationID == citationId &&
                                     !idList.Contains(d.ViolationID)
                                     select d;
                    #endregion


                    #region Remove deleted items

                    foreach (var item in deleteList)
                    {
                        context.Safe_CitationViolations.Remove(item);
                    }

                    #endregion

                    #region Update changes

                    var updateList = from d in context.Safe_CitationViolations
                                     where d.SafeCitationID == citationId &&
                                     idList.Contains(d.ViolationID)
                                     select d;


                    foreach (var item in updateList)
                    {
                        var theItem = item;
                        // find matching record from param

                        var records = from record in citationViolations
                                      where record.ViolationID == theItem.ViolationID
                                      select record;

                        Safe_CitationViolations sourceRecord = records.FirstOrDefault();

                        PropertyInfo[] props = theItem.GetType().GetProperties();
                        Array.ForEach(props, prop =>
                        {
                            if (!prop.GetGetMethod().IsVirtual)
                            {
                                var value = prop.GetValue(sourceRecord, null);
                                prop.SetValue(theItem, value, null);
                            }
                        });

                        theItem.SafeCitationID = citationId;
                    }

                    #endregion

                    #region Add new items

                    var adds = from d in context.Safe_CitationViolations
                               where d.SafeCitationID == citationId
                               select d;

                    var addIds = adds.Select(item => item.ViolationID).ToList();

                    var addRecords = from addRecord in citationViolations
                                     where !addIds.Contains(addRecord.ViolationID)
                                     select addRecord;

                    foreach (var item in addRecords)
                    {
                        var theItem   = item;
                        var newRecord = new Safe_CitationViolations();

                        PropertyInfo[] props = theItem.GetType().GetProperties();
                        Array.ForEach(props, prop =>
                        {
                            if (!prop.GetGetMethod().IsVirtual)
                            {
                                var value = prop.GetValue(theItem, null);
                                prop.SetValue(newRecord, value, null);
                            }
                        });
                        newRecord.SafeCitationID = citationId;
                        newRecord.Conditions     = string.Empty;
                        context.Safe_CitationViolations.Add(newRecord);
                    }


                    #endregion

                    #region Save changes
                    try
                    {
                        context.SaveChanges();
                    }
                    catch (DbEntityValidationException dbEx)
                    {
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                string message = string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                                Trace.TraceInformation(message);
                            }
                        }
                    }


                    #endregion
                }


                result = true;
            }
            catch (Exception ex)
            {
                Exception theException = ex;
                while (theException.InnerException != null)
                {
                    theException = theException.InnerException;
                }
                throw theException;
            }

            return(result);
        }
Esempio n. 6
0
        public string Save()
        {
            string result = "true";

            try
            {
                var safeCitationID = this.SafeCitationID;
                using (var context = new SafeEntities())
                {
                    Safe_Citations safeCitation;
                    if (this.SafeCitationID == 0)
                    {
                        safeCitation = new Safe_Citations();
                    }
                    else
                    {
                        safeCitation = (from c in context.Safe_Citations
                                        where c.SafeCitationID == safeCitationID
                                        select c).Single();
                    }

                    PropertyInfo[] props = safeCitation.GetType().GetProperties();

                    foreach (PropertyInfo prop in props)
                    {
                        if (prop.GetGetMethod().IsVirtual)
                        {
                            //if (prop.PropertyType.Name.Contains("ICollection"))
                            //{
                            //  // get static save method
                            //  MethodInfo saveMethod = prop.GetType().GetMethod("Save", BindingFlags.Static | BindingFlags.Public);
                            //  // call save method and pass it the collection
                            //  saveMethod.Invoke(null, new object[] {(object) prop.GetValue(this, null)});
                            //}
                            //else
                            //{
                            //  continue;
                            //}
                            continue;
                        }

                        var val = this.GetType().GetProperty(prop.Name).GetValue(this, null);
                        prop.SetValue(safeCitation, val, null);
                    }

                    if (SafeCitationID == 0)
                    {
                        context.Safe_Citations.Add(safeCitation);
                    }

                    try
                    {
                        var saveFlag = true;

                        #region Validate
                        string errorMessage = string.Empty;

                        var validationErrors = context.GetValidationErrors()
                                               .Where(vr => !vr.IsValid)
                                               .SelectMany(vr => vr.ValidationErrors).ToList();

                        // Check for duplicate citation number.
                        if (SafeCitationID == 0)
                        {
                            var citationNumberAlreadyExists = (from c in context.Safe_Citations
                                                               where c.CitationNumber == safeCitation.CitationNumber
                                                               select c).Any();

                            if (citationNumberAlreadyExists)
                            {
                                validationErrors.Add(new DbValidationError("CitationNumber", "You entered a duplicate citation number. Either modify the citation number or edit the existing citation."));
                            }
                        }

                        if (Safe_CitationViolations.Count() < 1)
                        {
                            validationErrors.Add(new DbValidationError("Safe_CitationViolations", "At least one violation is required."));
                        }

                        if (Safe_CitationPoliceOfficers.Count() < 1 && safeCitation.Superintendent == "")
                        {
                            validationErrors.Add(new DbValidationError("Safe_CitationPoliceOfficers", "At least one officer or a superintendent is required."));
                        }

                        foreach (var error in validationErrors)
                        {
                            saveFlag      = false;
                            errorMessage += error.ErrorMessage + "</br>";
                        }
                        #endregion

                        // Save Collections
                        if (saveFlag)
                        {
                            context.SaveChanges();

                            if (this.WhenDue != null)
                            {
                                foreach (Safe_CitationViolations violation in Safe_CitationViolations)
                                {
                                    if (violation.Safe_ViolationTypes.ViolationTypeDescription == "Equipment")
                                    {
                                        violation.ViolationPoints = 0;
                                        violation.Safe_Violations.ViolationPoints = 0;
                                    }
                                }
                            }

                            SAFE.Safe_CitationViolations.Save(Safe_CitationViolations, safeCitation.SafeCitationID);

                            SAFE.Safe_CitationPoliceOfficers.Save(Safe_CitationPoliceOfficers, safeCitation.SafeCitationID);
                            SAFE.Documents.Save(this.Documents, safeCitation.SafeCitationID);
                            SAFE.Safe_Hearings.Save(Safe_Hearings, safeCitation.SafeCitationID);
                            context.SaveChanges();

                            if (this.SafeCitationID == 0)
                            {
                                this.SafeCitationID = safeCitation.SafeCitationID;
                            }

                            return("true");
                        }
                        else
                        {
                            return(errorMessage);
                        }
                    }
                    catch (Exception ex)
                    {
                        result = ((ex.InnerException).InnerException).Message;
                    }
                }
            }
            catch (Exception ex)
            {
                result = "ERROR:\n\r\n\r" + ex.Message + " INNER EXCEPTION: " + ((ex.InnerException).InnerException).Message;
            }

            return(result);
        }
Esempio n. 7
0
        public static bool Save(ICollection <Safe_Hearings> safeHearings, int safeCitationID)
        {
            bool result;

            try
            {
                using (var context = new SafeEntities())
                {
                    #region Deletes
                    // get citationID
                    int theCitationID = safeCitationID;

                    // get list of ids from param: safeHearings
                    IEnumerable <int> ids = safeHearings.Select(x => x.SafeHearingID).Distinct();

                    // get list of hearings to delete
                    var toDeletes = from toDelete in context.Safe_Hearings
                                    where ids.Contains(toDelete.SafeHearingID) == false &&
                                    toDelete.SafeCitationID == theCitationID
                                    select toDelete;

                    // delete hearings
                    foreach (var item in toDeletes)
                    {
                        context.Safe_Hearings.Remove(item);
                    }

                    context.SaveChanges();

                    #endregion

                    Safe_Hearings theSafeHearing;
                    foreach (var hearing in safeHearings)
                    {
                        if (hearing.SafeHearingID < 1)
                        {                         // new record
                            hearing.SafeCitationID = theCitationID;
                            theSafeHearing         = new Safe_Hearings();
                        }
                        else
                        {                         // get record
                            var theSafeHearings = from safeHearing in context.Safe_Hearings
                                                  where safeHearing.SafeHearingID == hearing.SafeHearingID
                                                  select safeHearing;

                            if (!theSafeHearings.Any())
                            {
                                continue;
                            }
                            theSafeHearing = theSafeHearings.FirstOrDefault();
                        }

                        PropertyInfo[] props = theSafeHearing.GetType().GetProperties();

                        Array.ForEach(props, prop =>
                        {
                            if (!prop.GetGetMethod().IsVirtual)
                            {
                                var source = prop.GetValue(hearing, null);
                                prop.SetValue(theSafeHearing, source, null);
                            }
                        });

                        var leoOfficer = (from officer in context.LEO_OfficerBadges.Include("Person_FullName")
                                          where officer.SerialNumber == hearing.OfficerSerialNumber
                                          select officer).FirstOrDefault();

                        if (leoOfficer != null)
                        {
                            var safeOfficer = (from officer in context.Safe_Officers
                                               where officer.OfficerBadgeNumber == leoOfficer.SerialNumber
                                               select officer).FirstOrDefault();

                            if (safeOfficer == null)
                            {
                                var newSafeOfficer = new Safe_Officers
                                {
                                    SafeDivisionID     = -1,
                                    OfficerName        = leoOfficer.Person_FullName.FullName,
                                    OfficerBadgeNumber = leoOfficer.SerialNumber,
                                    IsActive           = true
                                };

                                context.Safe_Officers.Add(newSafeOfficer);
                                context.SaveChanges();

                                theSafeHearing.SafeOfficerID_Hearing = newSafeOfficer.SafeOfficerID;
                            }
                            else
                            {
                                theSafeHearing.SafeOfficerID_Hearing = safeOfficer.SafeOfficerID;
                            }
                        }

                        if (theSafeHearing.SafeHearingID == 0)
                        {
                            context.Safe_Hearings.Add(theSafeHearing);
                        }

                        context.SaveChanges();
                        //SAFE.Safe_HearingPoliceOfficers.Save(hearing.Safe_HearingPoliceOfficers, theSafeHearing.SafeHearingID);

                        theCitationID = hearing.SafeCitationID;
                    }

                    result = true;
                }
            }
            catch (Exception ex)
            {
                result = false;
            }

            return(result);
        }
Esempio n. 8
0
        public static bool Save(ICollection <Documents> documents, int citationId)
        {
            bool result = false;

            try
            {
                using (var context = new SafeEntities())
                {
                    //var tmp = from c in citationPoliceOfficers
                    //          select c;

                    #region Deletes

                    var ids = from id in documents
                              select new { id.DocumentID };

                    var idList = ids.Select(item => item.DocumentID).ToList();

                    var identificationNumber = "CITATION:" + citationId;

                    var deleteList = from d in context.Documents
                                     where d.DocumentTypeNumber == (short)133 &&
                                     d.IdentificationNumber == identificationNumber &&
                                     !idList.Contains(d.DocumentID)
                                     select d;

                    foreach (var item in deleteList)
                    {
                        context.Documents.Remove(item);
                    }

                    #endregion

                    #region Updates

                    var updateList = from d in context.Documents
                                     where d.DocumentTypeNumber == (short)133 &&
                                     d.IdentificationNumber == "CITATION:0" &&
                                     idList.Contains(d.DocumentID)
                                     select d;

                    foreach (var item in updateList)
                    {
                        var theItem = item;

                        theItem.IdentificationNumber = "CITATION:" + citationId;
                    }

                    #endregion

                    #region Adds

                    //var adds = from d in context.Documents
                    //           where d.DocumentTypeNumber == (short)133
                    //                && d.IdentificationNumber == "CITATION:0"
                    //           select d;

                    //var addIds = adds.Select(item => item.DocumentID).ToList();

                    //var addRecords = from addRecord in documents
                    //                 where !addIds.Contains(addRecord.DocumentID)
                    //                 select addRecord;

                    //foreach (var item in addRecords)
                    //{
                    //    var theItem = item;
                    //    var newRecord = new Documents();

                    //    PropertyInfo[] props = theItem.GetType().GetProperties();
                    //    Array.ForEach(props, prop =>
                    //    {
                    //        if (!prop.GetGetMethod().IsVirtual)
                    //        {
                    //            var value = prop.GetValue(theItem, null);
                    //            prop.SetValue(newRecord, value, null);
                    //        }
                    //    });

                    //    context.Documents.Add(newRecord);
                    //}

                    #endregion

                    try
                    {
                        context.SaveChanges();
                    }
                    catch (DbEntityValidationException dbEx)
                    {
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                string message = string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                                Trace.TraceInformation(message);
                            }
                        }
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                Exception theException = ex;
                while (theException.InnerException != null)
                {
                    theException = theException.InnerException;
                }
                throw theException;
            }

            return(result);
        }