Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private SubmitRegistrationResponse SendToSAP(EnrollUser enrollUser)
- {
- SubmitRegistrationResponse output = null;
- try
- {
- var company = enrollUser.SelectedCompany;
- using (var sapService = new Customer_Contact_OutClient())
- {
- sapService.Endpoint.Address = new EndpointAddress(GetSetting(DataProviderSetting.SapEndpoint));
- if (sapService.ClientCredentials == null) throw new Exception("Could not communicate with SAP");
- sapService.ClientCredentials.UserName.UserName = GetSetting(DataProviderSetting.SapUsername);
- sapService.ClientCredentials.UserName.Password = GetSetting(DataProviderSetting.SapPassword);
- var sapContactRow = new Customer_ContactRow
- {
- KUNNR = company.Id,
- KUNNR2 = enrollUser.Id,
- ADDRESS_ID = company.SelectedLocation.Id,
- ADDRESS1 = company.SelectedLocation.Line1,
- ADDRESS2 = company.SelectedLocation.Line2,
- CITY = company.SelectedLocation.City,
- REGION = company.SelectedLocation.State,
- ZIP = company.SelectedLocation.PostalCode,
- COUNTRY = company.SelectedLocation.Country,
- FIRST_NAME = enrollUser.FirstName,
- MIDDLE_NAME = enrollUser.MiddleName,
- LAST_NAME = enrollUser.LastName,
- EMAIL = enrollUser.Email,
- USER_ID = enrollUser.UserName,
- MAIL_STOP = enrollUser.MailStop,
- TITLE = enrollUser.Title,
- SALUTATION = enrollUser.Salutation
- };
- if (enrollUser.PhoneNumber != null)
- {
- var number = "";
- if (!String.IsNullOrEmpty(enrollUser.PhoneNumber.CountryCode)) number = "+" + enrollUser.PhoneNumber.CountryCode + " ";
- number += enrollUser.PhoneNumber.Number;
- //sapContactRow.PHONE_CNTRY_CODE = enrollUser.PhoneNumber.CountryCode;
- //sapContactRow.PHONE = enrollUser.PhoneNumber.Number;
- sapContactRow.PHONE = number;
- sapContactRow.PHONE_EXT = enrollUser.PhoneNumber.Extension;
- }
- if (enrollUser.FaxNumber != null)
- {
- var number = "";
- if (!String.IsNullOrEmpty(enrollUser.FaxNumber.CountryCode)) number = "+" + enrollUser.FaxNumber.CountryCode + " ";
- number += enrollUser.FaxNumber.Number;
- //sapContactRow.FAX_CNTRY_CODE = enrollUser.FaxNumber.CountryCode;
- //sapContactRow.FAX = enrollUser.FaxNumber.Number;
- sapContactRow.FAX= number;
- sapContactRow.FAX_EXT = enrollUser.FaxNumber.Extension;
- }
- sapContactRow.KNA1 = enrollUser.OptIn ? "01" : "02";
- var sapContact = new Customer_Contact { Record = new Customer_ContactRow[1] };
- sapContact.Record[0] = sapContactRow;
- LogManager.WriteDebug("SendToSAP", "Sending to SAP: " + Serialize(sapContact));
- var response = sapService.Customer_Contact_Out(sapContact);
- LogManager.WriteDebug("SendToSAP", "SAP Response: " + Serialize(response));
- var sapContactId = response.Record.Contact_ID[0].SAP_Contact_ID;
- var sapAddressId = "";
- if (response.Record.ShipTo_ID != null && response.Record.ShipTo_ID.Any())
- {
- sapAddressId = response.Record.ShipTo_ID[0].SAP_ShipTo_ID;
- }
- var sapErrorMessage = response.Record.Contact_ID[0].Error_Desc;
- var sapStatus = response.Record.Contact_ID[0].Status;
- var userSuppliedContactdId = enrollUser.Id != null;
- if (!String.IsNullOrEmpty(sapContactId))
- {
- enrollUser.Id = sapContactId;
- if (String.IsNullOrEmpty(enrollUser.SelectedCompany.SelectedLocation.Id))
- {
- enrollUser.SelectedCompany.SelectedLocation.Id = sapAddressId;
- }
- output = new SubmitRegistrationResponse(enrollUser);
- if (!userSuppliedContactdId) output.SapGeneratedContactdId = true;
- }
- else
- {
- output = new SubmitRegistrationResponse(ErrorType.CouldNotCommunicateWithExternalServices);
- }
- }
- }
- catch (Exception ex)
- {
- LogManager.WriteError("SendToSAP", ex);
- output = new SubmitRegistrationResponse(ErrorType.CouldNotCommunicateWithExternalServices);
- }
- return output;
- }
Add Comment
Please, Sign In to add comment