示例#1
0
 public static void EncodeAddressPayload(Stream stream, AddressPayload addressPayload)
 {
     using (var writer = new BinaryWriter(stream, Encoding.ASCII, leaveOpen: true))
     {
         writer.WriteList(addressPayload.NetworkAddresses, networkAddress => EncodeNetworkAddressWithTime(stream, networkAddress));
     }
 }
示例#2
0
 public static byte[] EncodeAddressPayload(AddressPayload addressPayload)
 {
     using (var stream = new MemoryStream())
     {
         EncodeAddressPayload(stream, addressPayload);
         return(stream.ToArray());
     }
 }
示例#3
0
 public static byte[] EncodeAddressPayload(AddressPayload addressPayload)
 {
     using (var stream = new MemoryStream())
     using (var writer = new BinaryWriter(stream))
     {
         EncodeAddressPayload(writer, addressPayload);
         return stream.ToArray();
     }
 }
示例#4
0
        public Address(AddressPayload payloadParent, Guid addressTypeGuid, Guid countyGuid, Guid ownershipGuid)
        {
            CustomerGuid      = payloadParent._PayloadHeader.CmcCustomerGuidC;
            SFAddressRecordID = payloadParent._PayloadHeader.RecordIdC;
            CountyGuid        = countyGuid;
            AddressTypeGuid   = addressTypeGuid;
            OwnershipGuid     = ownershipGuid;

            StreetAddress1  = payloadParent._PayloadBody.StreetC;
            Country         = payloadParent._PayloadBody.CountryC;
            City            = payloadParent._PayloadBody.CityC;
            State           = payloadParent._PayloadBody.StateC;
            Zip             = payloadParent._PayloadBody.ZipCodeC;
            Latitude        = payloadParent._PayloadBody.LatitudeLongitudeLatitudeS;
            Longitude       = payloadParent._PayloadBody.LatitudeLongitudeLongitudeS;
            LastServiceDate = payloadParent._PayloadBody.LastServiceDateC;
            AddressSource   = payloadParent._PayloadBody.Address_SourceC;
        }
示例#5
0
        public async Task <GenericServiceResponse> CdcEventAddressCreate(PayloadParent cdcPayload, LogCommand logCommand)
        {
            const string method           = "CdcEventAddressCreate";
            var          UpdateEventState = string.Empty;

            try
            {
                logCommand.LogMessage = $"{Service}.{method} Starting input parameter cdcPayload = {cdcPayload}";
                _logHandler.HandleLog(logCommand);

                var addressPayload = new AddressPayload(cdcPayload);

                logCommand.LogMessage = $"{Service}.{method} Starting input parameter addressPayload = {addressPayload}";
                _logHandler.HandleLog(logCommand);
                var recordsAffected = 0;

                var response = new GenericServiceResponse
                {
                    Success            = true,
                    RestResponseStatus = GenericServiceResponse.RestStatus.Empty
                };

                Guid programGuid;
                Guid subprogramGuid;
                Guid addressTypeGuid;
                Guid countyGuid;
                Guid ownershipGuid;

                string ownershipTypeName = "Rented";

                //Customer Guid Check
                UpdateEventState = "Attempting to check CustomerGuid" + Environment.NewLine;
                if (addressPayload._PayloadHeader.CmcCustomerGuidC == null ||
                    addressPayload._PayloadHeader.CmcCustomerGuidC == Guid.Empty)
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing Customer Guid ");
                }

                //Address Record ID
                UpdateEventState = "Attempting To check Address Record ID Guid" + Environment.NewLine;
                if (string.IsNullOrEmpty(addressPayload._PayloadHeader.RecordIdC))
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing Record ID, Required for Update ");
                }

                //ProgramGuid
                UpdateEventState = "Attempting To Get Program Guid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadHeader.SalesforceProgramIDC))
                {
                    var program = await _programRepository.GetProgramFromSFID(addressPayload._PayloadHeader.SalesforceProgramIDC, logCommand);

                    programGuid = program.ProgramGuid;
                }
                else
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing SalesforceProgramID ");
                }

                //SubprogramGuid
                UpdateEventState = "Attempting To Get SubProgram Guid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadHeader.SalesforceSubProgramIDC))
                {
                    var subprogram = await _programRepository.GetSubProgramSFID(addressPayload._PayloadHeader.SalesforceSubProgramIDC, logCommand);

                    subprogramGuid = subprogram.SubProgramGuid;
                }
                else
                {
                    subprogramGuid = Guid.Parse("FB02657F-3985-4F06-84C3-1669BE2F2991");
                }

                //addressTypeGuid setting it to default for now.
                UpdateEventState = "Attempting To Get addressTypeGuid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadBody.AddressTypeC))
                {
                    var lkpAccountType = await _addressRepository.GetLKPAddressTypeFromAddressTypeName(addressPayload._PayloadBody.AddressTypeC, logCommand);

                    addressTypeGuid = lkpAccountType.AddressTypeGuid;
                }
                else
                {
                    logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing addressTypeGuid ");
                    _logHandler.HandleLog(logCommand);

                    response.Entity = "Empty Address Type";
                    return(response);
                }

                //CountyGuid setting it to default for now.
                UpdateEventState = "Attempting To Get CountyGuid" + Environment.NewLine;
                if (addressPayload._PayloadBody.AddressTypeC.ToLower() == "service")
                {
                    if (!string.IsNullOrEmpty(addressPayload._PayloadBody.CountyC))
                    {
                        var lkpCounties = await _addressRepository.GetLkpCountyFromCountyDescription(addressPayload._PayloadBody.CountyC, logCommand);

                        countyGuid = lkpCounties.CountyGuid;
                    }

                    else
                    {
                        logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing CountyGuid ");
                        _logHandler.HandleLog(logCommand);

                        response.Entity = "Empty County";
                        return(response);
                    }
                }
                else
                {
                    countyGuid = Guid.Parse("24C3CDAC-2BB8-46A9-AF92-70E36D0B37F7");
                }

                //OwnershipGuid setting it to default for now.
                UpdateEventState = "Attempting To Get OwnershipGuid" + Environment.NewLine;
                if (ownershipTypeName == "Rented")
                {
                    var lkpOwnership = await _addressRepository.GetLkpOwnershipFromOwnershipType("Rented", logCommand);

                    ownershipGuid = lkpOwnership.OwnershipGuid;
                }
                else
                {
                    logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing OwnershipGuid ");
                    _logHandler.HandleLog(logCommand);
                }

                UpdateEventState = "Attempting To Build Object" + Environment.NewLine;
                var address = new Address(addressPayload, addressTypeGuid, countyGuid, ownershipGuid);

                //Update Phone
                UpdateEventState = "Attempting To Insert/Update" + Environment.NewLine;
                if (addressPayload._PayloadBody.Address_SourceC.ToLower() == "program")
                {
                    recordsAffected += await _addressRepository.UpdateProgramServiceAddress(address, logCommand);

                    if (recordsAffected > 0)
                    {
                        response = new GenericServiceResponse
                        {
                            Entity             = $"Update Address Complete. Rows updated = {recordsAffected}",
                            Success            = true,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Success
                        };
                    }
                    else
                    {
                        response = new GenericServiceResponse
                        {
                            Entity = $"Failure - Could not find Record for update, {recordsAffected}. " +
                                     $"Records Affected with required fields: " +
                                     $"-- Customer Guid: {addressPayload._PayloadBody.CmcCustomerGuidC} " +
                                     $"-- Address Source: {addressPayload._PayloadBody.Address_SourceC} " +
                                     $"-- Address Type: {addressPayload._PayloadBody.AddressTypeC} " +
                                     $"-- AddressTypeGuid: {addressTypeGuid} ",
                            Success            = false,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Success
                        };
                    }
                }
                else
                {
                    recordsAffected += await _addressRepository.InsertAddress(address, logCommand);

                    if (recordsAffected > 0)
                    {
                        response = new GenericServiceResponse
                        {
                            Entity             = $"Insert Address Related Tables Successful, rows added/updated = {recordsAffected}",
                            Success            = true,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Error
                        };
                    }
                    else
                    {
                        response = new GenericServiceResponse
                        {
                            Entity             = $"Failure - Could not insert into Address Table",
                            Success            = false,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Error
                        };
                    }
                }

                logCommand.LogMessage = string.Format($"{Service}.{method} completed");
                _logHandler.HandleLog(logCommand);

                return(response);
            }
            catch (Exception ex)
            {
                ex.Data.Add("Point of Failure", UpdateEventState);
                AppLogger.LogException(_loggingInstance, ex.Message, ex);
                return(ServiceHelper.SetErrorGenericServiceResponse(ex));
            }
        }
示例#6
0
        public async Task <GenericServiceResponse> CdcEventAddressUpdate(PayloadParent PayloadResponse, LogCommand logCommand)
        {
            const string method           = "UpdateLeadFromUpdateEvent";
            var          UpdateEventState = string.Empty;

            try
            {
                logCommand.LogMessage = $"{Service}.{method} Starting input parameter PayloadResponse = {PayloadResponse}";
                _logHandler.HandleLog(logCommand);

                var addressPayload = new AddressPayload(PayloadResponse);

                logCommand.LogMessage = $"{Service}.{method} Starting input parameter addressPayload = {addressPayload}";
                _logHandler.HandleLog(logCommand);
                var recordsAffected = 0;

                var response = new GenericServiceResponse
                {
                    Success            = true,
                    RestResponseStatus = GenericServiceResponse.RestStatus.Empty
                };

                Guid programGuid;
                Guid subprogramGuid;
                Guid addressTypeGuid;
                Guid countyGuid;
                Guid ownershipGuid;

                string ownershipTypeName = "Rented";
                //Customer Guid Check
                UpdateEventState = "Attempting to check CustomerGuid" + Environment.NewLine;
                if (addressPayload._PayloadHeader.CmcCustomerGuidC == null ||
                    addressPayload._PayloadHeader.CmcCustomerGuidC == Guid.Empty)
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing Customer Guid ");
                }

                //Address Record ID
                UpdateEventState = "Attempting To check Address Record ID Guid" + Environment.NewLine;
                if (string.IsNullOrEmpty(addressPayload._PayloadHeader.RecordIdC))
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing Record ID, Required for Update ");
                }

                //ProgramGuid
                UpdateEventState = "Attempting To Get Program Guid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadHeader.SalesforceProgramIDC))
                {
                    var program = await _programRepository.GetProgramFromSFID(addressPayload._PayloadHeader.SalesforceProgramIDC, logCommand);

                    programGuid = program.ProgramGuid;
                }
                else
                {
                    throw new Exception($"Error: {Service}.{method} -- Missing SalesforceProgramID ");
                }

                //SubprogramGuid
                UpdateEventState = "Attempting To Get SubProgram Guid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadHeader.SalesforceSubProgramIDC))
                {
                    var subprogram = await _programRepository.GetSubProgramSFID(addressPayload._PayloadHeader.SalesforceSubProgramIDC, logCommand);

                    subprogramGuid = subprogram.SubProgramGuid;
                }
                else
                {
                    subprogramGuid = Guid.Parse("FB02657F-3985-4F06-84C3-1669BE2F2991");
                }

                //addressTypeGuid setting it to default for now.
                UpdateEventState = "Attempting To Get addressTypeGuid" + Environment.NewLine;
                if (!string.IsNullOrEmpty(addressPayload._PayloadBody.AddressTypeC))
                {
                    var lkpAccountType = await _addressRepository.GetLKPAddressTypeFromAddressTypeName(addressPayload._PayloadBody.AddressTypeC, logCommand);

                    addressTypeGuid = lkpAccountType.AddressTypeGuid;
                }
                else
                {
                    logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing addressTypeGuid ");
                    _logHandler.HandleLog(logCommand);

                    return(response);
                }

                //CountyGuid setting it to default for now.
                UpdateEventState = "Attempting To Get CountyGuid" + Environment.NewLine;
                if (addressPayload._PayloadBody.AddressTypeC.ToLower() == "service")
                {
                    if (!string.IsNullOrEmpty(addressPayload._PayloadBody.CountyC))
                    {
                        var lkpCounties = await _addressRepository.GetLkpCountyFromCountyDescription(addressPayload._PayloadBody.CountyC, logCommand);

                        countyGuid = lkpCounties.CountyGuid;
                    }

                    else
                    {
                        logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing CountyGuid ");
                        _logHandler.HandleLog(logCommand);
                        return(response);
                    }
                }
                else
                {
                    countyGuid = Guid.Parse("24C3CDAC-2BB8-46A9-AF92-70E36D0B37F7");
                }

                //CountyGuid setting it to default for now.
                UpdateEventState = "Attempting To Get OwnershipGuid" + Environment.NewLine;
                if (ownershipTypeName == "Rented")
                {
                    var lkpOwnership = await _addressRepository.GetLkpOwnershipFromOwnershipType("Rented", logCommand);

                    ownershipGuid = lkpOwnership.OwnershipGuid;
                }
                else
                {
                    logCommand.LogMessage = string.Format($"Error: {Service}.{method} -- Missing OwnershipGuid ");
                    _logHandler.HandleLog(logCommand);
                }

                var address = new Address(addressPayload, addressTypeGuid, countyGuid, ownershipGuid);

                //Even though this is an address update PE message, it may be the initial insert of a landlord mailing address
                if (addressTypeGuid == Guid.Parse("431407C6-C889-48BF-9DFC-7CD879F85847")) //Landlord Mailing
                {
                    var existingLlAddress = await _addressRepository.GetAddressBySfIdAndAddressType(address, logCommand);

                    if (!existingLlAddress.Any())
                    {
                        recordsAffected += await _addressRepository.InsertAddress(address, logCommand);
                    }
                    else
                    {
                        //Update Address
                        recordsAffected += await _addressRepository.UpdateAddress(address, logCommand);
                    }

                    if (recordsAffected > 0)
                    {
                        response = new GenericServiceResponse
                        {
                            Entity             = $"Update Address Related Tables Successful, rows added/updated = {recordsAffected}",
                            Success            = true,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Success
                        };
                    }
                    else
                    {
                        response = new GenericServiceResponse
                        {
                            Entity             = $"Address Does not Exist. Records Changed: {recordsAffected}. Could not update. ",
                            Success            = false,
                            RestResponseStatus = GenericServiceResponse.RestStatus.Success
                        };
                    }
                }

                logCommand.LogMessage = string.Format($"{Service}.{method} completed");
                _logHandler.HandleLog(logCommand);

                return(response);
            }
            catch (Exception ex)
            {
                ex.Data.Add("Point of Failure", UpdateEventState);
                AppLogger.LogException(_loggingInstance, ex.Message, ex);
                return(ServiceHelper.SetErrorGenericServiceResponse(ex));
            }
        }
示例#7
0
 public static void EncodeAddressPayload(BinaryWriter writer, AddressPayload addressPayload)
 {
     writer.WriteList(addressPayload.NetworkAddresses, networkAddress => EncodeNetworkAddressWithTime(writer, networkAddress));
 }