コード例 #1
0
ファイル: Ncoa.cs プロジェクト: kra3889/rockrms
        /// <summary>
        /// Adds the new home location.
        /// </summary>
        /// <param name="ncoaHistory">The NCOA history.</param>
        /// <param name="locationService">The location service.</param>
        /// <param name="groupLocationService">The group location service.</param>
        /// <param name="homeValueId">The home value identifier.</param>
        /// <param name="changes">The changes.</param>
        /// <param name="isMailingLocation">Is the location a mailing location.</param>
        /// <param name="isMappedLocation">Is the location a mapped location.</param>
        /// <returns></returns>
        private bool AddNewHomeLocation(NcoaHistory ncoaHistory, LocationService locationService, GroupLocationService groupLocationService, int?homeValueId, History.HistoryChangeList changes, bool isMailingLocation, bool isMappedLocation)
        {
            if (homeValueId.HasValue)
            {
                var location = locationService.Get(
                    ncoaHistory.UpdatedStreet1,
                    ncoaHistory.UpdatedStreet2,
                    ncoaHistory.UpdatedCity,
                    ncoaHistory.UpdatedState,
                    ncoaHistory.UpdatedPostalCode,
                    ncoaHistory.UpdatedCountry);

                var groupLocation = new GroupLocation();
                groupLocation.Location                 = location;
                groupLocation.IsMailingLocation        = isMailingLocation;
                groupLocation.IsMappedLocation         = isMappedLocation;
                groupLocation.GroupId                  = ncoaHistory.FamilyId;
                groupLocation.GroupLocationTypeValueId = homeValueId.Value;
                groupLocation.IsMailingLocation        = true;
                groupLocationService.Add(groupLocation);

                changes.AddChange(History.HistoryVerb.Add, History.HistoryChangeType.Property, "Location").SetNewValue(groupLocation.Location.ToString()).SourceOfChange = "NCOA Request";

                return(true);
            }

            return(false);
        }
コード例 #2
0
ファイル: Ncoa.cs プロジェクト: kra3889/rockrms
        /// <summary>
        /// Marks an address as previous location.
        /// </summary>
        /// <param name="ncoaHistory">The NCOA history.</param>
        /// <param name="groupLocationService">The group location service.</param>
        /// <param name="previousValueId">The previous value identifier.</param>
        /// <param name="changes">The changes.</param>
        /// <returns></returns>
        public GroupLocation MarkAsPreviousLocation(NcoaHistory ncoaHistory, GroupLocationService groupLocationService, int?previousValueId, History.HistoryChangeList changes)
        {
            if (ncoaHistory.LocationId.HasValue && previousValueId.HasValue)
            {
                var groupLocation = groupLocationService.Queryable()
                                    .Where(gl =>
                                           gl.GroupId == ncoaHistory.FamilyId &&
                                           gl.LocationId == ncoaHistory.LocationId &&
                                           gl.Location.Street1 == ncoaHistory.OriginalStreet1)
                                    .FirstOrDefault();
                if (groupLocation != null)
                {
                    if (groupLocation.GroupLocationTypeValueId != previousValueId.Value)
                    {
                        changes.AddChange(History.HistoryVerb.Modify, History.HistoryChangeType.Property, $"Location Type for {groupLocation.Location} ").SetNewValue("Previous").SourceOfChange = "NCOA Request";

                        groupLocation.GroupLocationTypeValueId = previousValueId.Value;
                    }

                    return(groupLocation);
                }
            }

            return(null);
        }
コード例 #3
0
ファイル: NcoaReturnRecord.cs プロジェクト: garyholeman/Rock
        /// <summary>
        /// Convert NCOA return record to NcoaHistory.
        /// </summary>
        /// <returns>NcoaHistory</returns>
        public NcoaHistory ToNcoaHistory()
        {
            var ids         = InputIndividualId?.Split('_');
            var ncoaHistory = new NcoaHistory()
            {
                //PersonId = ( ids?[0] ).AsInteger(),
                PersonAliasId      = (ids?[1]).AsInteger(),
                FamilyId           = (ids?[2]).AsInteger(),
                LocationId         = (ids?[3]).AsInteger(),
                AddressStatus      = AddressStatus == "V" ? Model.AddressStatus.Valid : Model.AddressStatus.Invalid,
                MoveDate           = NcoaDateToDateTime(MoveDate),
                MoveDistance       = (decimal?)MoveDistance,
                NcoaNote           = DeliveryPointVerificationNotes,
                NcoaRunDateTime    = NcoaRunDateTime,
                OriginalCity       = InputAddressCity,
                OriginalPostalCode = InputAddressPostalCode,
                OriginalState      = InputAddressStateCode,
                OriginalStreet1    = InputAddressLine1,
                OriginalStreet2    = InputAddressLine2,
                Processed          = Processed.NotProcessed,
                UpdatedBarcode     = Barcode,
                UpdatedCity        = CityName,
                UpdatedCountry     = CountryCode,
                UpdatedPostalCode  = PostalCode,
                UpdatedState       = StateCode,
                UpdatedStreet1     = AddressLine1,
                UpdatedStreet2     = AddressLine2
            };

            switch (ResidentialDeliveryIndicator)
            {
            case "Y":
                ncoaHistory.UpdatedAddressType = UpdatedAddressType.Residential;
                break;

            case "N":
                ncoaHistory.UpdatedAddressType = UpdatedAddressType.Business;
                break;

            default:
                ncoaHistory.UpdatedAddressType = UpdatedAddressType.None;
                break;
            }
            ;

            if (ANK == "48")
            {
                ncoaHistory.NcoaType = NcoaType.Month48Move;
            }
            else if (MatchFlag.IsNotNullOrWhiteSpace() && RecordType == "C")
            {
                ncoaHistory.NcoaType = NcoaType.Move;
            }
            else
            {
                ncoaHistory.NcoaType = NcoaType.NoMove;

                if (AddressStatus == "V")
                {
                    ncoaHistory.Processed = Processed.Complete;
                }
            }

            if (AddressStatus != "V")
            {
                ncoaHistory.AddressInvalidReason = AddressInvalidReason.NotFound;
                ncoaHistory.AddressStatus        = Model.AddressStatus.Invalid;
            }
            else if (Vacant == "Y")
            {
                ncoaHistory.AddressInvalidReason = AddressInvalidReason.Vacant;
            }
            else
            {
                ncoaHistory.AddressInvalidReason = AddressInvalidReason.None;
            }

            switch (MatchFlag)
            {
            case "M":
                ncoaHistory.MatchFlag = Model.MatchFlag.Moved;
                break;

            case "G":
                ncoaHistory.MatchFlag = Model.MatchFlag.POBoxClosed;
                break;

            case "K":
                ncoaHistory.MatchFlag = Model.MatchFlag.MovedNoForwarding;
                break;

            case "F":
                ncoaHistory.MatchFlag = Model.MatchFlag.MovedToForeignCountry;
                break;

            default:
                ncoaHistory.MatchFlag = Model.MatchFlag.None;
                break;
            }

            switch (MoveType)
            {
            case "I":
                ncoaHistory.MoveType = Model.MoveType.Individual;
                break;

            case "F":
                ncoaHistory.MoveType = Model.MoveType.Family;
                break;

            case "B":
                ncoaHistory.MoveType = Model.MoveType.Business;
                break;

            default:
                ncoaHistory.MoveType = Model.MoveType.None;
                break;
            }

            return(ncoaHistory);
        }