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) }
         }
     });
 }
Example #2
0
 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);
     }
 }
Example #3
0
 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"
                 })
             }
         }
     });
 }
Example #4
0
 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);
     }
 }
Example #6
0
        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);
 }
Example #8
0
 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)
             }
         }
     });
 }
Example #9
0
 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"
             }
         }
     });
 }
Example #10
0
 private SalesforceNotifyListRequestDto GetSalesforceParam(CrmNotifierDto parameter)
 {
     return(parameter.Result
         ? GetSalesforceNotifyListRequestDtoWithoutError(parameter)
         : GetSalesforceNotifyListRequestDtoWithError(parameter));
 }
Example #11
0
 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
             }
         }
     });
 }