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)); } }
public static byte[] EncodeAddressPayload(AddressPayload addressPayload) { using (var stream = new MemoryStream()) { EncodeAddressPayload(stream, addressPayload); return(stream.ToArray()); } }
public static byte[] EncodeAddressPayload(AddressPayload addressPayload) { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { EncodeAddressPayload(writer, addressPayload); return stream.ToArray(); } }
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; }
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)); } }
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)); } }
public static void EncodeAddressPayload(BinaryWriter writer, AddressPayload addressPayload) { writer.WriteList(addressPayload.NetworkAddresses, networkAddress => EncodeNetworkAddressWithTime(writer, networkAddress)); }