private SalesforceRefundEmailRequestDto GetSalesforceParam(CrmNotifierDto parameter) { return(new SalesforceRefundEmailRequestDto() { CarrierCode = parameter.CarrierCode, ContactEmail = parameter.Email, ContactFirstname = parameter.ContactFirstname, ContactLastname = parameter.ContactLastname, ContactLocale = parameter.CultureCode, TemplateCode = _configuration.SalesforceTemplateCode, Attributes = new Dictionary <string, string>() { { "BookingId", parameter.BookingId }, { "BookingPnr", parameter.RecordLocator }, { "RefundType", "CREDIT_SHELL" }, { "RefundCode", parameter.RecordLocator }, { "RefundAmount", parameter.Amount.ToString("0.##", CultureInfo.InvariantCulture) }, { "RefundExpirationDate", parameter.ExpirationDate.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture) }, { "InventoryLegId", parameter.InventoryLegId.ToString() }, { "FlightCarrier", parameter.CarrierCode }, { "FlightDateLT", parameter.FlightDateLT.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture) }, { "FlightDepartureIATA", parameter.FlightDepartureIATA }, { "FlightArrivalIATA", parameter.FlightArrivalIATA }, { "RefundCurrencyCode", parameter.Currency }, { "FlightNumber", parameter.FlightNumber }, { "RefundIncrementType", parameter.RefundType }, { "RefundValue", parameter.RefundValue.ToString("0.##", CultureInfo.InvariantCulture) }, { "RefundCurrencyCode", parameter.RefundCurrencyCode }, { "RefundOriginalAmount", parameter.RefundOriginalAmount.ToString("0.##", CultureInfo.InvariantCulture) } } }); }
public void Notify(CrmNotifierDto parameter) { try { _notifierStrategyContext.SetStrategy(parameter.ProcessType); _notifierStrategyContext.Notify(parameter); } catch (Exception ex) { var errorMessage = $@"Error in: {GetType().Name}, method : Notify, RecordLocator: {parameter.RecordLocator}, innerExceptionType: {ex.GetType()}, innerExceptionMessage: {ex.Message}"; throw new CrmNotifierException(errorMessage); } }
private SalesforceRefundEmailRequestDto GetSalesforceParam(CrmNotifierDto parameter) { return(new SalesforceRefundEmailRequestDto() { CarrierCode = "VY", ContactEmail = parameter.Email, ContactFirstname = parameter.ContactFirstname, ContactLastname = parameter.ContactLastname, ContactLocale = parameter.CultureCode, TemplateCode = _configuration.SalesforceVoluntaryRefundTemplateCode, Attributes = new Dictionary <string, string>() { { "BookingId", parameter.BookingId }, { "BookingPnr", parameter.RecordLocator }, { "RefundType", "VOLUNTARY_CREDIT_SHELL" }, { "RefundCode", parameter.RecordLocator }, { "RefundOriginalAmount", parameter.RefundOriginalAmount.ToString("0.##", CultureInfo.InvariantCulture) }, { "RefundCurrencyCode", parameter.RefundCurrencyCode }, { "RefundExpirationDate", parameter.ExpirationDate.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture) }, { "RefundIncrementType", parameter.RefundType }, { "RefundValue", parameter.RefundValue.ToString("0.##", CultureInfo.InvariantCulture) }, { "RefundCurrencyCode", parameter.RefundCurrencyCode }, { "RefundAmount", parameter.Amount.ToString("0.##", CultureInfo.InvariantCulture) }, { "ExtraProces", Newtonsoft.Json.JsonConvert.SerializeObject(new NotificationDetailsRoot() { NotificationDetails = new FlightToProcess() { Flight = parameter.FlightProcessedList } }, new JsonSerializerSettings() { DateFormatString = "yyyy-MM-dd" }) } } }); }
public void Notify(CrmNotifierDto parameter) { try { var salesforceResponse = _salesforceService.SendRequestPut <List <SalesforceNotifyResponseDto> >(GetSalesforceParam(parameter), _configuration.SalesforceNotifyAgencyUrl); if (!string.IsNullOrEmpty(salesforceResponse.FirstOrDefault()?.Error)) { throw new AgencyRefundNotifierException($"Salesforce Internal Error. Error: {salesforceResponse.FirstOrDefault()?.Error}."); } } catch (System.Exception ex) { var errorMessage = $@"Error in: {GetType().Name}, method : Notify, booking: {parameter.RecordLocator}, innerExceptionType: {ex.GetType()}, innerExceptionMessage: {ex.Message}"; throw new AgencyRefundNotifierException(errorMessage); } }
public void Notify(CrmNotifierDto parameter) { try { var salesforceResponse = _salesforceService.SendRequestPost <SalesforceResponseDto>(GetSalesforceParam(parameter), _configuration.SalesforceSendEmailUrl); if (!salesforceResponse.Result) { throw new ProcliNotifierException($"Salesforce Internal Error. ErrorCode: {salesforceResponse.ErrorCode}. ErrorMessage: {salesforceResponse.ErrorMessage}."); } } catch (System.Exception ex) { var errorMessage = $@"Error in: {GetType().Name}, method : SendEmail, RecordLocator: {parameter.RecordLocator}, innerExceptionType: {ex.GetType()}, innerExceptionMessage: {ex.Message}"; throw new ProcliNotifierException(errorMessage); } }
private static List <FlightDto> GetFlights(CrmNotifierDto parameter) { var flightProcessedList = new List <FlightDto>(); parameter.FlightProcessedList.ForEach(flightProcessed => { flightProcessedList.Add(new FlightDto() { InventoryLegId = flightProcessed.InventoryLegId, Carrier = flightProcessed.Carrier, FlightNumber = flightProcessed.FlightNumber, FlightDateLT = flightProcessed.FlightDateLT, DepartureIATA = flightProcessed.DepartureIATA, ArrivalIATA = flightProcessed.ArrivalIATA }); }); return(flightProcessedList); }
public void Notify(CrmNotifierDto parameter) { NotifierStrategy.Notify(parameter); }
private static SalesforceNotifyListRequestDto GetSalesforceNotifyListRequestDtoWithoutError(CrmNotifierDto parameter) { return(new SalesforceNotifyListRequestDto() { SalesforceNotifyList = new List <SalesforceNotifyRequestDto>() { new SalesforceNotifyRequestDto() { ExternalId = parameter.ExternalId, Result = parameter.Result, RefundType = "AGENCY_REFUND", RefundCode = parameter.RecordLocator, RefundAmount = parameter.Amount.ToString("0.##", CultureInfo.InvariantCulture), RefundOriginalAmount = parameter.RefundOriginalAmount.ToString("0.##", CultureInfo.InvariantCulture), RefundCurrencyCode = parameter.Currency, RefundIncrementType = parameter.RefundType, RefundIncrementValue = parameter.RefundValue, RefundIncrementCurrencyCode = parameter.RefundCurrencyCode, RefundExpirationDate = parameter.ExpirationDate, Flights = GetFlights(parameter) } } }); }
private static SalesforceNotifyListRequestDto GetSalesforceNotifyListRequestDtoWithError(CrmNotifierDto parameter) { return(new SalesforceNotifyListRequestDto() { SalesforceNotifyList = new List <SalesforceNotifyRequestDto>() { new SalesforceNotifyRequestDto() { ExternalId = parameter.ExternalId, Result = parameter.Result, ErrorCode = parameter.ErrorCode, ErrorMessage = parameter.ErrorMessage, RefundType = "AGENCY_REFUND" } } }); }
private SalesforceNotifyListRequestDto GetSalesforceParam(CrmNotifierDto parameter) { return(parameter.Result ? GetSalesforceNotifyListRequestDtoWithoutError(parameter) : GetSalesforceNotifyListRequestDtoWithError(parameter)); }
private static SalesforceNotifyListRequestDto GetSalesforceNotifyListRequestDto(CrmNotifierDto parameter) { return(new SalesforceNotifyListRequestDto() { SalesforceNotifyList = new List <SalesforceNotifyRequestDto>() { new SalesforceNotifyRequestDto() { ExternalId = parameter.ExternalId, Result = parameter.Result, RefundType = "CANCEL_CREDIT_SHELL", RefundAmount = parameter.Amount.ToString("0.##", CultureInfo.InvariantCulture), RefundOriginalAmount = parameter.RefundOriginalAmount.ToString("0.##", CultureInfo.InvariantCulture), RefundCurrencyCode = parameter.RefundCurrencyCode, ErrorCode = parameter.ErrorCode, ErrorMessage = parameter.ErrorMessage } } }); }