private async Task SendMessage(NotifyMessage content, CommunicationType communicationType) { var notificationsClient = new NotificationClient(_configuration.NotificationServiceApiKey); // Needs to be a dictionary<string,dynamic> for the client..... var personalisationDictionary = content.Personalisation.ToDictionary(x => x.Key, x => x.Value as dynamic); try { Logger.Info($"Sending communication request to Gov Notify"); if (communicationType == CommunicationType.Email) { var response = await notificationsClient.SendEmailAsync(content.To, content.Template, personalisationDictionary, content.Reference); } else if (communicationType == CommunicationType.Sms) { var response = await notificationsClient.SendSmsAsync(content.To, content.Template, personalisationDictionary, content.Reference); } } catch (NotifyClientException notifyClientException) { Logger.Error(notifyClientException, $"Error sending communication {communicationType.ToString()} to Gov Notify with Gov.Notify Client"); if (communicationType != CommunicationType.Sms || !SuppressSmsError(notifyClientException.Message)) { throw; } } catch (Exception exception) { Logger.Error(exception, $"Generic Error sending communication {communicationType.ToString()} to Gov Notify"); throw; } }
public Task<GetTypeQueryResponseDto> Handle(GetTypeQuery request, CancellationToken cancellationToken) { CommunicationType type = _service.GetCommunicationType(); return Task.FromResult(new GetTypeQueryResponseDto { Type = (int)type, Name = type.ToString() }); }
public string this[string key] { get { if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "priority") == 0) { return(Priority.ToString(CultureInfo.InvariantCulture)); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "MessageType") == 0) { return(MessageType.ToString()); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "CommunicationType") == 0) { return(CommunicationType.ToString()); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "RouteType") == 0) { return(RouteType.ToString()); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "RemoteBoundContext") == 0) { return(RemoteBoundedContext); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "LocalBoundedContext") == 0) { return(LocalContext); } if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "Exclusive") == 0) { return(Exclusive.ToString()); } string value; m_Hints.TryGetValue(key, out value); return(value); } set { if (StringComparer.InvariantCultureIgnoreCase.Compare(key, "priority") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "MessageType") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "CommunicationType") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "RouteType") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "RemoteBoundContext") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "LocalBoundedContext") == 0 || StringComparer.InvariantCultureIgnoreCase.Compare(key, "Exclusive") == 0) { throw new ArgumentException(key + " should be set with corresponding RoutingKey property", "key"); } m_Hints[key] = value; } }
/// <summary> /// Devuelve el sobre soap del lote de Operaciones Seguros. /// </summary> /// <returns>Devuelve un string con el xml del sobre SOAP /// compuesto para el envío del mensaje de lote de agencias de viajes.</returns> public Envelope GetEnvelope() { Envelope envelope = new Envelope(); envelope.Body.SuministroLRAgenciasViajes = new SuministroLRAgenciasViajes(); envelope.Body.SuministroLRAgenciasViajes.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRAgenciasViajes.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRAgenciasViajes.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (OPTributaria invoice in TravelAgencyOperations) { envelope.Body.SuministroLRAgenciasViajes.RegistroLRAgenciasViajes.Add(invoice.ToSII()); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de facturas emitidas. /// </summary> /// <param name="skipErrors">Indica si hay que omitir las excepciones.</param> /// <returns>Sobre SOAP con lote de facturas recibidas.</returns> public Envelope GetEnvelope(bool skipErrors = false) { Envelope envelope = new Envelope(); envelope.Body.SuministroLRFacturasRecibidas = new SuministroLRFacturasRecibidas(); envelope.Body.SuministroLRFacturasRecibidas.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRFacturasRecibidas.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRFacturasRecibidas.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (APInvoice invoice in APInvoices) { envelope.Body.SuministroLRFacturasRecibidas.RegistroLRFacturasRecibidas.Add(invoice.ToSII(false, skipErrors)); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de Cobros en metálico. /// </summary> /// <returns>Devuelve un string con el xml del sobre SOAP /// compuesto para el envío del mensaje de lote de cobros en metálico.</returns> public Envelope GetEnvelope() { Envelope envelope = new Envelope(); envelope.Body.SuministroLRCobrosMetalico = new SuministroLRCobrosMetalico(); envelope.Body.SuministroLRCobrosMetalico.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRCobrosMetalico.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRCobrosMetalico.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (OPTributaria invoice in CashReceipts) { envelope.Body.SuministroLRCobrosMetalico.RegistroLRCobrosMetalico.Add(invoice.ToSII()); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de Bienes de Inversión (Activos). /// </summary> /// <returns></returns> public Envelope GetEnvelope() { Envelope envelope = new Envelope(); envelope.Body.SuministroLRBienesInversion = new SuministroLRBienesInversion(); envelope.Body.SuministroLRBienesInversion.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRBienesInversion.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRBienesInversion.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (Asset invoice in Assets) { envelope.Body.SuministroLRBienesInversion.RegistroLRBienesInversion.Add(invoice.ToSII()); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de Operaciones Seguros. /// </summary> /// <returns>Devuelve un string con el xml del sobre SOAP /// compuesto para el envío del mensaje de lote de operaciones de seguros.</returns> public Envelope GetEnvelope() { Envelope envelope = new Envelope(); envelope.Body.SuministroLROperacionesSeguros = new SuministroLROperacionesSeguros(); envelope.Body.SuministroLROperacionesSeguros.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLROperacionesSeguros.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLROperacionesSeguros.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (OPTributaria invoice in Insurances) { envelope.Body.SuministroLROperacionesSeguros.RegistroLROperacionesSeguros.Add(invoice.ToSII()); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de facturas emitidas. /// </summary> /// <param name="skipErrors">Indica si hay que omitir las excepciones.</param> /// <returns>Devuelve un string con el xml del sobre SOAP /// compuesto para el envío del mensaje de lote de facturas /// emitidas.</returns> public Envelope GetEnvelope(bool skipErrors = false) { Envelope envelope = new Envelope(); envelope.Body.SuministroLRFacturasEmitidas = new SuministroLRFacturasEmitidas(); envelope.Body.SuministroLRFacturasEmitidas.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (ARInvoice invoice in ARInvoices) { if (invoice.InvoiceNumberLastItem != null && invoice.InvoiceType != InvoiceType.F4 && !skipErrors) { throw new InvalidOperationException( "InvoiceNumberLastItem only valid with InvoiceType.F4"); } envelope.Body.SuministroLRFacturasEmitidas.RegistroLRFacturasEmitidas.Add(invoice.ToSII(skipErrors)); } return(envelope); }
/// <summary> /// Devuelve el sobre soap del lote de Operaciones Intracomunitarias. /// </summary> /// <returns>Devuelve un string con el xml del sobre SOAP /// compuesto para el envío del mensaje de lote de facturas /// emitidas.</returns> public Envelope GetEnvelope() { Envelope envelope = new Envelope(); envelope.Body.SuministroLRDetOperacionIntracomunitaria = new SuministroLRDetOperacionIntracomunitaria(); envelope.Body.SuministroLRDetOperacionIntracomunitaria.Cabecera.TipoComunicacion = CommunicationType.ToString(); envelope.Body.SuministroLRDetOperacionIntracomunitaria.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; envelope.Body.SuministroLRDetOperacionIntracomunitaria.Cabecera.Titular.NombreRazon = Titular.PartyName; foreach (ITInvoice invoice in ITInvoices) { envelope.Body.SuministroLRDetOperacionIntracomunitaria.RegistroLRDetOperacionIntracomunitaria.Add(invoice.ToSII()); } return(envelope); }
public string GetCommunicationType() { return(communicationType.ToString()); }