public JsonResult UpdateLocationMap_Async(int?geoPointID, int cersID, decimal latitude, decimal longitude, decimal?accuracyMeasure, int referenceDatumID, int collectionMethodID, int referencePointID, DateTime collectionDate)
        {
            bool success = false;

            try
            {
                if (geoPointID != null && geoPointID != 0)
                {
                    CERSFacilityGeoPoint geoPoint = Repository.CERSFacilityGeoPoints.GetByID(Convert.ToInt32(geoPointID));
                    if (geoPoint != null)
                    {
                        geoPoint.LatitudeMeasure              = latitude;
                        geoPoint.LongitudeMeasure             = longitude;
                        geoPoint.HorizontalAccuracyMeasure    = accuracyMeasure != null ? accuracyMeasure.Value : 100;
                        geoPoint.HorizontalReferenceDatumID   = referenceDatumID;
                        geoPoint.HorizontalCollectionMethodID = collectionMethodID;
                        geoPoint.GeographicReferencePointID   = referencePointID;
                        //geoPoint.DataCollectionDate = DateTime.Now;
                        geoPoint.DataCollectionDate = collectionDate;
                        Repository.CERSFacilityGeoPoints.Update(geoPoint);
                    }
                }
                else
                {
                    CERSFacilityGeoPoint geoPoint = new CERSFacilityGeoPoint();
                    geoPoint.CERSID                       = cersID;
                    geoPoint.LatitudeMeasure              = latitude;
                    geoPoint.LongitudeMeasure             = longitude;
                    geoPoint.HorizontalAccuracyMeasure    = accuracyMeasure != null ? accuracyMeasure.Value : 100;
                    geoPoint.HorizontalReferenceDatumID   = referenceDatumID;
                    geoPoint.HorizontalCollectionMethodID = collectionMethodID;
                    geoPoint.GeographicReferencePointID   = referencePointID;
                    //geoPoint.DataCollectionDate = DateTime.Now;
                    geoPoint.DataCollectionDate = collectionDate;
                    Repository.CERSFacilityGeoPoints.Create(geoPoint);
                }
                success = true;
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }

            var result = new
            {
                Success = success
            };

            return(Json(result));
        }
        protected virtual ActionResult Handle_BusinessActivitiesGet(int organizationId, int CERSID, int?fseID = null)
        {
            var viewModel = GetSingleEntityViewModel <BPActivity>(organizationId, CERSID, SubmittalElementType.FacilityInformation, ResourceType.BusinessActivities, fseID);

            //See if BusinessName or address is null/empty.  If yes, get them from dbo.Facility.
            var bpActivities = viewModel.Entity;

            //Get the facility.
            var facility = Repository.Facilities.GetByID(CERSID);

            FeedGuidanceMessagesIntoModelState(viewModel.FacilitySubmittalElementResource);

            Services.BusinessLogic.SubmittalElements.FacilityInformation.InitializeDraftActivitiesForm(viewModel);

            //var siteAddress = (!string.IsNullOrWhiteSpace(bpActivities.SiteAddress)) ? bpActivities.SiteAddress : facility.WashedStreet;
            //var city = (!string.IsNullOrWhiteSpace(bpActivities.City)) ? bpActivities.City : facility.WashedCity;
            //var zipCode = (!string.IsNullOrWhiteSpace(bpActivities.ZipCode)) ? bpActivities.ZipCode : facility.WashedZipCode;

            viewModel.AddressInformation = new AddressInformation();
            viewModel.Facility           = facility;

            CERSFacilityGeoPoint geoPoint = facility.CERSFacilityGeoPoint;

            //if geopoint is null create a generic one using the county centroid
            if (geoPoint == null)
            {
                if (facility.CountyID != null)
                {
                    CountyGISCentroid countyCentroid = Repository.DataModel.CountyGISCentroids.SingleOrDefault(p => p.CountyID == facility.CountyID);

                    if (countyCentroid != null)
                    {
                        geoPoint = new CERSFacilityGeoPoint();
                        geoPoint.LatitudeMeasure = countyCentroid.LatCentroid != null?Convert.ToDecimal(countyCentroid.LatCentroid) : 0;

                        geoPoint.LongitudeMeasure = countyCentroid.LonCentroid != null?Convert.ToDecimal(countyCentroid.LonCentroid) : 0;

                        geoPoint.HorizontalAccuracyMeasure    = 100000;
                        geoPoint.HorizontalCollectionMethodID = 104;
                        geoPoint.HorizontalReferenceDatumID   = 3;
                        geoPoint.GeographicReferencePointID   = 102;
                        geoPoint.DataCollectionDate           = DateTime.Now;
                    }
                }
            }

            //if geopoint is still null setup a generic geopoint
            if (geoPoint == null)
            {
                geoPoint = new CERSFacilityGeoPoint();
                geoPoint.LatitudeMeasure              = 0;
                geoPoint.LongitudeMeasure             = 0;
                geoPoint.HorizontalAccuracyMeasure    = 100000;
                geoPoint.HorizontalCollectionMethodID = 104;
                geoPoint.HorizontalReferenceDatumID   = 3;
                geoPoint.GeographicReferencePointID   = 102;
                geoPoint.DataCollectionDate           = DateTime.Now;
            }

            viewModel.CERSFacilityGeoPoint = geoPoint;

            return(View(viewModel));
        }
        protected virtual ActionResult Handle_BusinessActivitiesPost(int organizationId, int CERSID, int?fseID = null, FormCollection fc = null)
        {
            var viewModel = GetSingleEntityViewModel <BPActivity>(organizationId, CERSID, SubmittalElementType.FacilityInformation, ResourceType.BusinessActivities, fseID);
            var facility  = Repository.Facilities.GetByID(CERSID);

            viewModel.AddressInformation = new AddressInformation();
            viewModel.Facility           = facility;

            CERSFacilityGeoPoint geoPoint = facility.CERSFacilityGeoPoint;

            //if geopoint is null create a generic one using the county centroid
            if (geoPoint == null)
            {
                CountyGISCentroid countyCentroid = Repository.DataModel.CountyGISCentroids.SingleOrDefault(p => p.CountyID == facility.CountyID);

                if (countyCentroid != null)
                {
                    geoPoint = new CERSFacilityGeoPoint();
                    geoPoint.LatitudeMeasure = countyCentroid.LatCentroid != null?Convert.ToDecimal(countyCentroid.LatCentroid) : 0;

                    geoPoint.LongitudeMeasure = countyCentroid.LonCentroid != null?Convert.ToDecimal(countyCentroid.LonCentroid) : 0;

                    geoPoint.HorizontalAccuracyMeasure    = 100000;
                    geoPoint.HorizontalCollectionMethodID = 104;
                    geoPoint.HorizontalReferenceDatumID   = 3;
                    geoPoint.GeographicReferencePointID   = 102;
                    geoPoint.DataCollectionDate           = DateTime.Now;
                }
            }

            //if geopoint is still null setup a generic geopoint
            if (geoPoint == null)
            {
                geoPoint = new CERSFacilityGeoPoint();
                geoPoint.LatitudeMeasure              = 0;
                geoPoint.LongitudeMeasure             = 0;
                geoPoint.HorizontalAccuracyMeasure    = 100000;
                geoPoint.HorizontalCollectionMethodID = 104;
                geoPoint.HorizontalReferenceDatumID   = 3;
                geoPoint.GeographicReferencePointID   = 102;
                geoPoint.DataCollectionDate           = DateTime.Now;
            }

            viewModel.CERSFacilityGeoPoint = geoPoint;

            var entity = viewModel.Entity;

            if (TryUpdateModel(entity, "Entity"))
            {
                if (ModelState.IsValid)
                {
                    //Call the Business Logic Layer that will handle the validation/flag setting
                    //and all the other junk that needs to occur to persist a form.
                    Services.BusinessLogic.SubmittalElements.FacilityInformation.SaveActivitiesForm(viewModel);

                    string routeName = GetDraftEditRouteName(SubmittalElementType.FacilityInformation, ResourceType.BusinessOwnerOperatorIdentification);
                    return(RedirectToRoute(routeName, new { organizationID = organizationId, CERSID = CERSID, FSEID = viewModel.FacilitySubmittalElement.ID }));
                }
            }
            return(View(viewModel));
        }
Example #4
0
        private static void Main(string[] args)
        {
            Console.WriteLine("CERS2 Address Washing Utility, v0.01");
            Console.WriteLine("Initializing Data Registry...");
            DataRegistry.Initialize();
            int successCount              = 0;
            int failureCount              = 0;
            int lengthViolationsCount     = 0;
            int skippedDueToMissingStreet = 0;

            bool lengthViolation = false;

            using (ICERSRepositoryManager repo = ServiceLocator.GetRepositoryManager())
            {
                ICERSSystemServiceManager services = ServiceLocator.GetSystemServiceManager(repo);
                Console.WriteLine("Gathering Facilities...");

                //DateTime washDate = DateTime.Now.Date.AddDays( -3 );
                //DateTime washDate = Convert.ToDateTime( "12/31/2013" );
                DateTime washDate = Convert.ToDateTime("6/30/2014");

                //var facilities = repo.Facilities.Search(washDate: washDate).ToList();

                var facilities = (from fac in repo.DataModel.Facilities where !fac.Voided && !fac.IsAddressWashed && fac.WashDate > washDate select fac).ToList();

                //var facilities = ( from facil in repo.DataModel.Facilities where facil.Voided == false select facil ).ToList();

                Console.WriteLine("Found " + facilities.Count() + " Facilities...");
                foreach (var facility in facilities)
                {
                    lengthViolation = false;
                    Console.WriteLine("CERSID: " + facility.CERSID);
                    Console.WriteLine("Facility Name: " + facility.Name);
                    Console.Write("\tSource Address: ");
                    Console.WriteLine(GetSourceAddress(facility));
                    if (!string.IsNullOrWhiteSpace(facility.Street))
                    {
                        Console.Write("\tWashed Address:");
                        AddressInformation result = services.Geo.GetAddressInformation(facility.Street, facility.City, facility.ZipCode, facility.State);
                        if (result != null)
                        {
                            CheckLength("WashedStreet", result.Street, 100, ref lengthViolation);
                            CheckLength("WashedCity", result.City, 100, ref lengthViolation);
                            CheckLength("WashedState", result.State, 2, ref lengthViolation);
                            CheckLength("WashedZipCode", result.ZipCode, 10, ref lengthViolation);

                            if (!lengthViolation)
                            {
                                int washConfidence;
                                if (int.TryParse(result.MelissaAddressWashConfidence, out washConfidence) == false)
                                {
                                    washConfidence = 0;
                                }

                                if (result.MelissaAddressWashSucceeded && Convert.ToInt32(washConfidence) > 0)
                                {
                                    facility.IsAddressWashed           = true;
                                    facility.WashDate                  = DateTime.Now;
                                    facility.WashedStreet              = result.Street;
                                    facility.WashedStreetWithoutSuite  = result.StreetWithoutSuiteNumber;
                                    facility.WashedSuite               = result.Suite;
                                    facility.WashedCity                = result.City;
                                    facility.WashedState               = result.State;
                                    facility.WashedZipCode             = result.ZipCode;
                                    facility.WashedStreetName          = result.StreetName;
                                    facility.WashedStreetPostDirection = result.PostDirection;
                                    facility.WashedStreetPreDirection  = result.PreDirection;
                                    facility.WashedStreetRange         = result.Range;
                                    facility.WashedStreetSuffix        = result.Suffix;
                                    facility.WashConfidence            = washConfidence;
                                    facility.WashSourceID              = (int)WashSource.Melissa;
                                    if (facility.CountyID == null)
                                    {
                                        facility.CountyID = result.CountyID;
                                    }

                                    CERSFacilityGeoPoint geoPoint = facility.CERSFacilityGeoPoint;

                                    if (geoPoint == null)
                                    {
                                        geoPoint = new CERSFacilityGeoPoint();
                                    }

                                    //make sure the result coordinates are in range before saving them
                                    if ((result.Latitude >= 32 && result.Latitude < 43) && (result.Longitude >= -114 && result.Longitude < 125))
                                    {
                                        geoPoint.CERSID                       = facility.CERSID;
                                        geoPoint.LatitudeMeasure              = result.Latitude;
                                        geoPoint.LongitudeMeasure             = result.Longitude;
                                        geoPoint.HorizontalAccuracyMeasure    = result.HorizontalAccuracyMeasure;
                                        geoPoint.HorizontalCollectionMethodID = result.HorizontalCollectionMethodID;
                                        geoPoint.HorizontalReferenceDatumID   = result.HorizontalReferenceDatumID;
                                        geoPoint.GeographicReferencePointID   = result.GeographicReferencePointID;
                                        geoPoint.SetCommonFields();
                                        repo.CERSFacilityGeoPoints.Save(geoPoint);
                                    }
                                }
                                else if (result.MelissaAddressWashSucceeded)
                                {
                                    //Use the parsed street values to get a standardized address

                                    facility.IsAddressWashed           = false;
                                    facility.WashDate                  = DateTime.Now;
                                    facility.WashSourceID              = (int)WashSource.Melissa;
                                    facility.WashedStreet              = result.Street;
                                    facility.WashedStreetWithoutSuite  = result.StreetWithoutSuiteNumber;
                                    facility.WashedSuite               = result.Suite;
                                    facility.WashedCity                = result.City;
                                    facility.WashedState               = result.State;
                                    facility.WashedZipCode             = result.ZipCode;
                                    facility.WashedStreetName          = result.StreetName;
                                    facility.WashedStreetPostDirection = null;
                                    facility.WashedStreetPreDirection  = null;
                                    facility.WashedStreetRange         = result.Range;
                                    facility.WashedStreetSuffix        = result.Suffix;
                                }

                                Console.WriteLine(GetWashedAddress(result));
                                Console.WriteLine("\tUpdating Facility...");
                                repo.Facilities.Save(facility);
                                Console.WriteLine("\tFacility Updated");
                                successCount++;
                            }
                            else
                            {
                                Console.WriteLine("\tFacility NOT Updated");
                                lengthViolationsCount++;
                            }
                        }
                        else
                        {
                            Console.WriteLine("Unable to obtain washed address.");
                            failureCount++;
                        }
                    }
                    else
                    {
                        skippedDueToMissingStreet++;
                        Console.WriteLine("\tSkipped Due to Missing Street!");
                    }
                }

                Console.WriteLine("Process Completed.");
                Console.WriteLine("Successfully Washed: " + successCount);
                Console.WriteLine("Failed To Wash: " + failureCount);
                Console.WriteLine("Length Violations (NOT Washed): " + lengthViolationsCount);
                Console.WriteLine("Skipped Due to Missing Street: " + skippedDueToMissingStreet);
            }
            Console.Write("Press enter to quit.");
            Console.ReadLine();
        }