Beispiel #1
0
 public SimplyDataUpdater(DiscordSocketClient client, ConfigDataAccess configDataAccess,
                          SimplyDataService simplyDataService)
 {
     _client            = client;
     _configDataAccess  = configDataAccess;
     _simplyDataService = simplyDataService;
 }
Beispiel #2
0
 public DataSet ObtenerKardexPieza(int?iCodigoPieza, string sCodigoBarras)
 {
     try {
         if (common.EstaServicioDisponible())
         {
             if (!iCodigoPieza.HasValue && string.IsNullOrEmpty(sCodigoBarras))
             {
                 throw new Exception("Debe proporcionar un valor por lo menos para realizar la consulta.");
             }
             HHsvc.SCPP_HH proxy    = ConfigDataAccess.ObtenerServiceProxy();
             DataSet       dsKardex = proxy.ObtenerKardexPieza(iCodigoPieza, true, sCodigoBarras);
             if (dsKardex.Tables.Count < 2)
             {
                 throw new Exception("No se pudo obtener la informacion de esta pieza");
             }
             if (dsKardex.Tables[0] == null || dsKardex.Tables[0].Rows.Count < 1)
             {
                 throw new Exception("No se pudo obtener la informacion hacerca de esta pieza");
             }
             return(dsKardex);
         }
         else
         {
             throw new Exception("No se tiene conexion a la red, intente mas tarde.");
         }
     }
     catch (Exception ex) { throw ex; }
 }
Beispiel #3
0
        public async Task <string> SendOrderSuccessSMSNotification(CustomerDetails customer, IConfiguration _configuration)
        {
            string status = string.Empty;

            try
            {
                ConfigDataAccess _configAccess = new ConfigDataAccess(_configuration);

                DatabaseResponse smsTemplateResponse = await _configAccess.GetSMSNotificationTemplate(NotificationEvent.OrderSuccess.ToString());

                var notificationMessage = MessageHelper.GetSMSMessage(NotificationEvent.OrderSuccess.ToString(), ((SMSTemplates)smsTemplateResponse.Results).TemplateName, customer.Name, customer.DeliveryEmail, customer.ShippingContactNumber, customer.OrderNumber, customer.SlotDate.ToString("dd MMM yyyy"), new DateTime(customer.SlotFromTime.Ticks).ToString("hh:mm tt") + " to " + new DateTime(customer.SlotToTime.Ticks).ToString("hh:mm tt"));

                DatabaseResponse notificationResponse = await _configAccess.GetConfiguration(ConfiType.Notification.ToString());

                MiscHelper parser = new MiscHelper();

                var notificationConfig = parser.GetNotificationConfig((List <Dictionary <string, string> >)notificationResponse.Results);

                Publisher orderSuccessSMSNotificationPublisher = new Publisher(_configuration, notificationConfig.SNSTopic);

                status = await orderSuccessSMSNotificationPublisher.PublishAsync(notificationMessage);

                LogInfo.Information("SMS send status : " + status + " " + JsonConvert.SerializeObject(notificationMessage));

                return(status);
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "SMS failure for OrderNumber:" + customer.OrderNumber);

                throw ex;
            }
        }
 public DataTable Obtener(int iCodigoOperador, int iCodigoProceso)
 {
     HHsvc.SCPP_HH proxy = null;
     try
     {
         if (iCodigoOperador == 0)
         {
             throw new Exception("Valor de parametro Usuario incorrecto.");
         }
         if (common.EstaServicioDisponible())
         {
             proxy = ConfigDataAccess.ObtenerServiceProxy();
             return(proxy.ObtenerProduccion(iCodigoOperador, true, iCodigoProceso, true));
         }
         else
         {
             throw new Exception("No es posible establecer comunicación.");
         }
     }
     catch (Exception ex) { throw ex; }
     finally { if (proxy != null)
               {
                   proxy.Dispose();
               }
     }
 }
Beispiel #5
0
        public async Task <IActionResult> GetConfigValue([FromHeader] string Token, [FromRoute] string ConfigKey)
        {
            try
            {
                if (string.IsNullOrEmpty(ConfigKey))
                {
                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = false,
                        Message = StatusMessages.DomainValidationError,
                        IsDomainValidationErrors = true
                    }));
                }

                ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                return(Ok(new ServerResponse
                {
                    HasSucceeded = true,
                    Message = StatusMessages.SuccessMessage,
                    Result = await _configAccess.GetConfigValue(ConfigKey, Token)
                }));
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));

                return(Ok(new OperationResponse
                {
                    HasSucceeded = false,
                    Message = StatusMessages.ServerError,
                    IsDomainValidationErrors = false
                }));
            }
        }
Beispiel #6
0
 public TempusServerUpdater(DiscordSocketClient client, ConfigDataAccess configDataAccess,
                            TempusDataAccess tempusDataAccess)
 {
     _client           = client;
     _configDataAccess = configDataAccess;
     _tempusDataAccess = tempusDataAccess;
 }
Beispiel #7
0
        public async Task <IActionResult> PushEmail([FromBody] NotificationMessage emailSubscribers)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    LogInfo.Error(StatusMessages.DomainValidationError);
                    new OperationResponse
                    {
                        HasSucceeded             = false,
                        IsDomainValidationErrors = true,
                        Message = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage))
                    };
                }

                OutboundEmail _email = new OutboundEmail();

                ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                DatabaseResponse forgotPasswordMsgTemplate = await _configAccess.GetEmailNotificationTemplate(NotificationEvent.ForgetPassword.ToString());

                EmailTemplate template = (EmailTemplate)forgotPasswordMsgTemplate.Results;

                var responses = await _email.SendEmail(emailSubscribers, _iconfiguration, template);


                foreach (Mandrill.Model.MandrillSendMessageResponse response in responses)
                {
                    //DatabaseResponse notificationLogResponse = await _configAccess.CreateEMailNotificationLog(new NotificationLog { Status=response.Status.ToString(), Email=response.Email });
                }

                // log notificaiton in db


                return(Ok(new ServerResponse
                {
                    HasSucceeded = true,
                    Message = StatusMessages.SuccessMessage
                }));
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));

                return(Ok(new OperationResponse
                {
                    HasSucceeded = false,
                    Message = StatusMessages.ServerError,
                    IsDomainValidationErrors = false
                }));
            }
        }
Beispiel #8
0
        public void Configuration(IAppBuilder appBuilder)
        {
            var httpConfig = new HttpConfiguration();

            var configData = new ConfigDataAccess();
            var appConfig  = configData.GetConfig();

            // ConfigureAuth(appBuilder, httpConfig, appConfig);
            ConfigureCors(appBuilder);
            ConfigureDI(appBuilder, httpConfig);
            ConfigureRouting(appBuilder, httpConfig);

            appBuilder.MapSignalR("/signalr", new HubConfiguration());
        }
 public DataTable ObtenerCarroPendienteSecadorDetalle(int iCarro)
 {
     try
     {
         if (common.EstaServicioDisponible())
         {
             HHsvc.SCPP_HH proxy = ConfigDataAccess.ObtenerServiceProxy();
             DataTable     dtCarrosPendientesDetalle = proxy.ObtenerCarrosPendientesSecadorDetalle(iCarro, true);
             return(dtCarrosPendientesDetalle);
         }
         else
         {
             throw new Exception("No se tiene conexion a la red, intente mas tarde.");
         }
     }
     catch (Exception ex) { throw ex; }
 }
Beispiel #10
0
        static void Main(string[] args)
        {
            var configDataAccess = new ConfigDataAccess();
            var config           = configDataAccess.GetConfig();
            var plex             = new PlexDbDataAccess(config.PlexDbConnectionString);

            using (var f = File.OpenWrite($"movie-dump-{DateTime.Now.ToString("yyyyMMdd-hhmmss")}.csv"))
            {
                using (var sw = new StreamWriter(f))
                {
                    using (var csv = new CsvWriter(sw))
                    {
                        csv.WriteRecords(plex.GetMovies());
                    }
                }
            }
        }
Beispiel #11
0
        public async Task <IActionResult> GetGenericConfigValue([FromHeader(Name = "Grid-General-Token")] string Token, [FromRoute] string ConfigKey)
        {
            try
            {
                if (string.IsNullOrEmpty(ConfigKey))
                {
                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = false,
                        Message = StatusMessages.DomainValidationError,
                        IsDomainValidationErrors = true
                    }));
                }
                TokenValidationHelper tokenValidationHelper = new TokenValidationHelper();
                if (!tokenValidationHelper.ValidateGenericToken(Token, _iconfiguration))
                {
                    return(Ok(new OperationResponse
                    {
                        HasSucceeded = false,
                        Message = EnumExtensions.GetDescription(DbReturnValue.TokenAuthFailed),
                        IsDomainValidationErrors = true
                    }));
                }

                ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                return(Ok(new ServerResponse
                {
                    HasSucceeded = true,
                    Message = StatusMessages.SuccessMessage,
                    Result = await _configAccess.GetConfigValue(ConfigKey)
                }));
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));

                return(Ok(new OperationResponse
                {
                    HasSucceeded = false,
                    Message = StatusMessages.ServerError,
                    IsDomainValidationErrors = false
                }));
            }
        }
Beispiel #12
0
        private void InitializeVariables()
        {
            _client = new DiscordSocketClient(
                new DiscordSocketConfig {
                AlwaysDownloadUsers = true, MessageCacheSize = 50
            });
            _commands = new CommandService(new CommandServiceConfig {
                DefaultRunMode = RunMode.Async
            });

            var connectionStrings = File.ReadAllLines(DiscordConstants.DatabaseInfoPath);

            _tempusDataAccess = new TempusDataAccess();
            _todoDataAccess   = new TodoDataAccess(connectionStrings[0]);
            _configDataAccess = new ConfigDataAccess(connectionStrings[0]);
            //_justJumpDataAccess = new JustJumpDataAccess(connectionStrings[1]);
            //_simplyHightowerDataAccess = new SimplyHightowerDataAccess(connectionStrings[2]);

            _tempusServerUpdater   = new TempusServerUpdater(_client, _configDataAccess, _tempusDataAccess);
            _tempusActivityUpdater = new TempusActivityUpdater(_client, _configDataAccess, _tempusDataAccess);
            _simplyTFServerUpdater = new SimplyTFServerUpdater(_client, _configDataAccess);
        }
Beispiel #13
0
 public static List <SysConfig> GetAllConfig()
 {
     return(ConfigDataAccess.GetAllConfig());
 }
Beispiel #14
0
 public SimplyTFServerUpdater(DiscordSocketClient client, ConfigDataAccess configDataAccess)
 {
     _client           = client;
     _configDataAccess = configDataAccess;
 }
Beispiel #15
0
 public static void Insert(SysConfig entity)
 {
     ConfigDataAccess.Insert(entity);
 }
Beispiel #16
0
 public static void Update(SysConfig entity)
 {
     ConfigDataAccess.Update(entity);
 }
Beispiel #17
0
        public async Task <string> SendEmailNotification(int CustomerID, int OrderID, IConfiguration _configuration)
        {
            string status = string.Empty;

            try
            {
                ConfigDataAccess _configAccess = new ConfigDataAccess(_configuration);

                BuddyDataAccess _buddyAccess = new BuddyDataAccess();

                CommonDataAccess _commonAccess = new CommonDataAccess(_configuration);

                DatabaseResponse templateResponse = await _configAccess.GetEmailNotificationTemplate(NotificationEvent.OrderSuccess.ToString());

                LogInfo.Information("Email Customer : " + CustomerID);

                // Get Customer Data from CustomerID for email and Name
                CustomerDetails customer = await _commonAccess.GetCustomerDetailByOrder(CustomerID, OrderID);

                LogInfo.Information("Email Customer data : " + JsonConvert.SerializeObject(customer));

                if (customer != null && !string.IsNullOrEmpty(customer.DeliveryEmail))
                {
                    StringBuilder orderedNumbersSb = new StringBuilder();

                    StringBuilder deliveryAddressSb = new StringBuilder();

                    orderedNumbersSb.Append("<table width='100%'>");

                    int counter = 0;

                    foreach (OrderNumber number in customer.OrderedNumbers)
                    {
                        if (counter > 0)
                        {
                            orderedNumbersSb.Append("<tr><td width='100%' colspan='3'> </td></tr>");
                        }
                        orderedNumbersSb.Append("<tr><td width='25%'>MobileNumber :<td width='20%'>");
                        orderedNumbersSb.Append(number.MobileNumber);
                        orderedNumbersSb.Append("</td><td width ='55%'></td></tr>");
                        orderedNumbersSb.Append("<tr><td width='25%'>Plan :<td width='20%'>");
                        orderedNumbersSb.Append(number.PlanMarketingName);
                        orderedNumbersSb.Append("</td><td width ='55%'>");
                        orderedNumbersSb.Append(number.PricingDescription);
                        orderedNumbersSb.Append("</td></tr> ");
                        counter++;
                    }

                    orderedNumbersSb.Append("</table>");

                    if (!string.IsNullOrEmpty(customer.ShippingBuildingNumber))
                    {
                        deliveryAddressSb.Append(customer.ShippingBuildingNumber);
                    }

                    if (!string.IsNullOrEmpty(customer.ShippingStreetName))
                    {
                        if (deliveryAddressSb.ToString() != "")
                        {
                            deliveryAddressSb.Append(" ");
                        }

                        deliveryAddressSb.Append(customer.ShippingStreetName);
                    }

                    deliveryAddressSb.Append("<br />");

                    StringBuilder shippingAddr2 = new StringBuilder();

                    if (!string.IsNullOrEmpty(customer.ShippingFloor))
                    {
                        shippingAddr2.Append(customer.ShippingFloor);
                    }

                    if (!string.IsNullOrEmpty(customer.ShippingUnit))
                    {
                        if (shippingAddr2.ToString() != "")
                        {
                            shippingAddr2.Append(" ");
                        }
                        shippingAddr2.Append(customer.ShippingUnit);
                    }

                    if (!string.IsNullOrEmpty(customer.ShippingBuildingName))
                    {
                        if (shippingAddr2.ToString() != "")
                        {
                            shippingAddr2.Append(" ");
                        }

                        shippingAddr2.Append(customer.ShippingBuildingName);
                    }

                    deliveryAddressSb.Append(shippingAddr2.ToString());

                    deliveryAddressSb.Append("<br />");

                    if (!string.IsNullOrEmpty(customer.ShippingPostCode))
                    {
                        deliveryAddressSb.Append(customer.ShippingPostCode);
                    }

                    string deliveryDate = customer.SlotDate.ToString("dd MMM yyyy") + " " + new DateTime(customer.SlotFromTime.Ticks).ToString("hh:mm tt")
                                          + " to " + new DateTime(customer.SlotToTime.Ticks).ToString("hh:mm tt");

                    var notificationMessage = MessageHelper.GetMessage(customer.ToEmailList, customer.Name,

                                                                       NotificationEvent.OrderSuccess.ToString(),

                                                                       ((EmailTemplate)templateResponse.Results).TemplateName, _configuration, customer.DeliveryEmail,
                                                                       customer.OrderNumber, orderedNumbersSb.ToString(), deliveryAddressSb.ToString(),
                                                                       customer.AlternateRecipientName == null ? customer.Name : customer.AlternateRecipientName,
                                                                       customer.AlternateRecipientContact == null ? customer.ShippingContactNumber : customer.AlternateRecipientContact,
                                                                       string.IsNullOrEmpty(customer.AlternateRecipientEmail) ? customer.DeliveryEmail : customer.AlternateRecipientEmail,
                                                                       deliveryDate, customer.ReferralCode);

                    DatabaseResponse notificationResponse = await _configAccess.GetConfiguration(ConfiType.Notification.ToString());

                    MiscHelper parser = new MiscHelper();

                    var notificationConfig = parser.GetNotificationConfig((List <Dictionary <string, string> >)notificationResponse.Results);

                    LogInfo.Information("Email Message to send  " + JsonConvert.SerializeObject(notificationResponse));

                    Publisher orderSuccessNotificationPublisher = new Publisher(_configuration, notificationConfig.SNSTopic);

                    try
                    {
                        status = await orderSuccessNotificationPublisher.PublishAsync(notificationMessage);
                    }
                    catch (Exception ex)
                    {
                        LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "publishing :" + status);
                        throw ex;
                    }

                    LogInfo.Information("Email send status : " + status + " " + JsonConvert.SerializeObject(notificationMessage));

                    status = await SendOrderSuccessSMSNotification(customer, _configuration);

                    try
                    {
                        DatabaseResponse notificationLogResponse = await _configAccess.CreateEMailNotificationLogForDevPurpose(
                            new NotificationLogForDevPurpose
                        {
                            EventType = NotificationEvent.OrderSuccess.ToString(),
                            Message   = JsonConvert.SerializeObject(notificationMessage)
                        });
                    }
                    catch (Exception ex)
                    {
                        LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "Email send:" + OrderID);
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "OrderID:" + OrderID);
                throw ex;
            }

            return(status);
        }
Beispiel #18
0
 public static void Delete(SysConfig entity)
 {
     ConfigDataAccess.Delete(entity);
 }
        private void cargarServicio()
        {
            try
            {
                string path = "";
                try
                {
                    path = ConfigurationManager.AppSettings["ConfigDirectory"] != null ? ConfigurationManager.AppSettings["ConfigDirectory"].ToString() : "";
                }
                catch (Exception ePath)
                {
                    path = "";
                    Log.EscribeLog("Error al obtener el path desde appSettings: " + ePath.Message);
                }
                string PathDestino = "";
                try
                {
                    PathDestino = ConfigurationManager.AppSettings["PathDes"].ToString();
                    //Verificar Folder
                    if (!Directory.Exists(PathDestino))
                    {
                        Directory.CreateDirectory(PathDestino);
                    }
                }
                catch (Exception ePATHDES)
                {
                    Log.EscribeLog("Existe un error al leer el path de destino: " + ePATHDES.Message);
                }

                ClienteF2CResponse mdl = new ClienteF2CResponse();
                if (File.Exists(path + "info.xml"))
                {
                    _conf         = XMLConfigurator.getXMLfile();
                    id_Servicio   = _conf.id_Sitio;
                    AETitle       = _conf.vchAETitle;
                    vchPathRep    = _conf.vchPathLocal;
                    vchClaveSitio = _conf.vchClaveSitio;

                    if (id_Servicio > 0 && vchClaveSitio != "")
                    {
                        Token = Security.Encrypt(id_Servicio + "|" + vchClaveSitio);
                    }
                }
                Log.EscribeLog("Sitio: " + vchClaveSitio);
                if (vchClaveSitio != "")
                {
                    mdl = ConfigDataAccess.getConeccion(vchClaveSitio, id_Servicio);
                    if (mdl != null || _conf != null)
                    {
                        if (!(id_Servicio > 0))
                        {
                            id_Servicio = mdl.id_Sitio;
                        }

                        if (vchClaveSitio == "")
                        {
                            vchClaveSitio = mdl.ConfigSitio.vchClaveSitio;
                        }
                        if (AETitle == "")
                        {
                            AETitle = mdl.ConfigSitio.vchAETitle;
                        }
                        if (Token != "")
                        {
                            Token = Security.Encrypt(id_Servicio + "|" + vchClaveSitio);
                        }
                        Log.EscribeLog("Inicio de CargarServicio SCP");
                        // preload dictionary to prevent timeouts
                        var dict = DicomDictionary.Default;
                        int port = 0;

                        Log.EscribeLog("Puerto: " + (mdl.ConfigSitio == null ? _conf.intPuertoCliente : mdl.ConfigSitio.intPuertoCliente));
                        Log.EscribeLog("AETitle: " + AETitle);
                        // start DICOM server on port from command line argument or 11112
                        try
                        {
                            if (_conf.intPuertoCliente > 0)
                            {
                                port = _conf.intPuertoCliente;
                            }
                            else
                            {
                                if (mdl.ConfigSitio.intPuertoCliente > 0)
                                {
                                    port = (int)mdl.ConfigSitio.intPuertoCliente;
                                }
                                else
                                {
                                    port = Convert.ToInt32(ConfigurationManager.AppSettings["Puerto"].ToString());
                                }
                            }
                        }
                        catch (Exception ePuerto)
                        {
                            Console.WriteLine("No se pudo leer el puerto especificado, favor de verificar.: " + ePuerto.Message);
                            Log.EscribeLog("No se pudo leer el puerto especificado, favor de verificar.: " + ePuerto.Message);
                        }
                        if (port > 0)
                        {
                            Console.WriteLine($"Iniciando Servidor C-Store SCP en el  puerto {port}");

                            var server = DicomServer.Create <CStoreSCP>(port);
                            Log.EscribeLog($"Iniciando Servidor C-Store SCP en el  puerto {port}");

                            ConfigDataAccess.setService(id_Servicio, vchClaveSitio);
                            // end process
                            Console.WriteLine("Oprimir <return> para finalizar...");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("No se pudo leer el puerto especificado, favor de verificar.");
                            Log.EscribeLog("No se pudo leer el puerto especificado, favor de verificar.");
                        }
                    }
                }
                else
                {
                    Console.WriteLine("No se pudo encontrar los datos para la búsqueda de sitio. En espera de los datos de configuración.");
                    Log.EscribeLog("No se pudo encontrar los datos para la búsqueda de sitio. En espera de los datos de configuración.");
                }
            }
            catch (Exception eLoadService)
            {
                Log.EscribeLog("Error al cargar el servicio: " + eLoadService.Message);
            }
        }
            public DicomCStoreResponse OnCStoreRequest(DicomCStoreRequest request)
            {
                try
                {
                    //public static string PathDestino = ConfigurationManager.AppSettings["PathDes"].ToString();
                    string PathDestino = "";
                    try
                    {
                        PathDestino = ConfigurationManager.AppSettings["PathDes"].ToString();
                        //Verificar Folder
                        if (!Directory.Exists(PathDestino))
                        {
                            Directory.CreateDirectory(PathDestino);
                        }
                    }
                    catch (Exception ePATHDES)
                    {
                        Log.EscribeLog("Existe un error al leer el path de destino: " + ePATHDES.Message);
                    }
                    if (vchPathRep == "")
                    {
                        vchPathRep = PathDestino;
                    }
                    if (vchPathRep != "")
                    {
                        string studyUid           = "";
                        string AccNum             = "";
                        string Modality           = "";
                        string Edad               = "";
                        string PatientID          = "";
                        string patienName         = "";
                        string genero             = "";
                        string instUid            = "";
                        string SOPClassUid        = "";
                        string FechaNac           = "";
                        string UniversalServiceID = "";
                        string studyDescription   = "";
                        try { studyUid = request.Dataset.Contains(DicomTag.StudyInstanceUID) ? request.Dataset.Get <string>(DicomTag.StudyInstanceUID) : ""; } catch (Exception eUI) { studyUid = ""; }
                        try { AccNum = request.Dataset.Contains(DicomTag.AccessionNumber) ? request.Dataset.Get <string>(DicomTag.AccessionNumber) : ""; } catch (Exception eUI) { AccNum = ""; }
                        try { Modality = request.Dataset.Contains(DicomTag.Modality) ? request.Dataset.Get <string>(DicomTag.Modality) : ""; } catch (Exception eUI) { Modality = ""; }
                        try { Edad = request.Dataset.Contains(DicomTag.PatientAge) ? request.Dataset.Get <string>(DicomTag.PatientAge) : ""; } catch (Exception eUI) { Edad = ""; }
                        try { FechaNac = request.Dataset.Contains(DicomTag.PatientBirthDate) ? request.Dataset.Get <string>(DicomTag.PatientBirthDate) : ""; } catch (Exception eUI) { FechaNac = ""; }
                        try { PatientID = request.Dataset.Contains(DicomTag.PatientID) ? request.Dataset.Get <string>(DicomTag.PatientID) : ""; } catch (Exception eUI) { PatientID = ""; }
                        try { patienName = request.Dataset.Contains(DicomTag.PatientName) ? request.Dataset.Get <string>(DicomTag.PatientName) : ""; } catch (Exception eUI) { patienName = ""; }
                        try { genero = request.Dataset.Contains(DicomTag.PatientSex) ? request.Dataset.Get <string>(DicomTag.PatientSex) : ""; } catch (Exception eUI) { genero = ""; }
                        try
                        {
                            instUid = request.SOPInstanceUID.UID;
                        }
                        catch (Exception eUI)
                        {
                            instUid = "";
                            int i = BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0);
                            if (i < 0)
                            {
                                i = i * (-1);
                            }
                            instUid = i.ToString();
                            Log.EscribeLog("No tiene SOPInstanceUID: ");
                        }
                        try { SOPClassUid = request.SOPClassUID.UID; } catch (Exception eUI) { SOPClassUid = ""; }
                        try { UniversalServiceID = request.Dataset.Contains(DicomTag.StudyID) ? request.Dataset.Get <string>(DicomTag.StudyID) : ""; } catch (Exception eUI) { UniversalServiceID = ""; }
                        try { studyDescription = request.Dataset.Contains(DicomTag.StudyDescription) ? request.Dataset.Get <string>(DicomTag.StudyDescription) : ""; } catch (Exception eUI) { studyDescription = ""; }

                        Console.WriteLine(instUid.ToString());
                        Log.EscribeLog("Leyendo: " + instUid.ToString());
                        Log.EscribeLog("SOPClassUID: " + instUid.ToString());
                        var path = Path.GetFullPath(vchPathRep);
                        path = Path.Combine(path, studyUid);

                        if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                        }

                        path = Path.Combine(path, instUid) + ".dcm";
                        DataAccessLocal.tbl_MST_EstudioAUX mdlEstudio = new DataAccessLocal.tbl_MST_EstudioAUX();
                        DataAccessLocal.tbl_DET_EstudioAUX mdlDetalle = new DataAccessLocal.tbl_DET_EstudioAUX();
                        bool valido = false;
                        try
                        {
                            if (PatientID == "")
                            {
                                string idPac = Guid.NewGuid().ToString();
                                PatientID = vchClaveSitio + idPac.Substring(1, 5).Replace("-", "");
                            }
                            else
                            {
                                PatientID = vchClaveSitio + PatientID;
                            }
                            //Obtener MST
                            mdlEstudio.id_Sitio            = id_Servicio;
                            mdlEstudio.intModalidadID      = getModalidad(Modality);
                            mdlEstudio.PatientID           = PatientID.Trim() == "" ? getPatientID(mdlEstudio.id_Sitio) : PatientID;
                            mdlEstudio.vchPatientBirthDate = FechaNac;
                            mdlEstudio.PatientName         = patienName.Replace("^^", " ").Replace("^^^", " ").Replace("^", " ");
                            mdlEstudio.datFecha            = DateTime.Now;
                            mdlEstudio.vchgenero           = genero;
                            mdlEstudio.vchEdad             = Edad == "" && FechaNac != "" ? getEdad(FechaNac) : Edad;
                            string ValidarAcc     = AccNum.Trim();
                            string anteriorAccNum = getAccNumber((int)mdlEstudio.id_Sitio, (int)mdlEstudio.intModalidadID, mdlEstudio.PatientID);
                            if (anteriorAccNum == "")
                            {
                                if (ValidarAcc == "")
                                {
                                    string guid = Guid.NewGuid().ToString();
                                    ValidarAcc = vchClaveSitio + guid.Substring(0, 5).Replace("-", "");
                                }
                                else
                                {
                                    ValidarAcc = vchClaveSitio + ValidarAcc;
                                }
                            }
                            else
                            {
                                ValidarAcc = anteriorAccNum;
                            }
                            if (ValidarAcc.ToUpper().Length > 16)
                            {
                                ValidarAcc = ValidarAcc.ToUpper().Substring(0, 16);
                            }
                            else
                            {
                                ValidarAcc = ValidarAcc.ToUpper();
                            }
                            mdlEstudio.vchAccessionNumber = ValidarAcc;
                            //mdlEstudio.StudyID = UniversalServiceID;
                            //mdlEstudio.StudyDescription = studyDescription;

                            //Obtener DET

                            mdlDetalle.vchNameFile         = Path.GetFileName(path);
                            mdlDetalle.vchPathFile         = path.ToString();
                            mdlDetalle.vchStudyInstanceUID = studyUid;
                            mdlDetalle.datFecha            = DateTime.Now;
                            mdlDetalle.intEstatusID        = 1;
                            mdlDetalle.bitSync             = false;
                            valido = true;
                        }
                        catch (Exception evalidar)
                        {
                            valido = false;
                            Log.EscribeLog("Existe un error al obtener el estudio: " + evalidar.Message);
                        }

                        try
                        {
                            request.Dataset.Remove(DicomTag.PatientID);
                            request.Dataset.Remove(DicomTag.AccessionNumber);
                            request.Dataset.Remove(DicomTag.PatientAge);
                            if (SOPClassUid == "")
                            {
                                request.Dataset.Remove(DicomTag.SOPClassUID);
                                request.Dataset.Add(new DicomCodeString(DicomTag.SOPClassUID, instUid));
                            }
                            request.Dataset.Add(new DicomCodeString(DicomTag.AccessionNumber, mdlEstudio.vchAccessionNumber));
                            request.Dataset.Add(new DicomCodeString(DicomTag.PatientID, mdlEstudio.PatientID));
                            request.Dataset.Add(new DicomCodeString(DicomTag.PatientAge, mdlEstudio.PatientID));
                            request.File.Save(path);
                            long length = new System.IO.FileInfo(path).Length;
                            mdlDetalle.intSizeFile = (int)length;
                            ConfigDataAccess.setService(id_Servicio, vchClaveSitio);
                            if (valido)
                            {
                                NapoleonAUXDataAccess.setEstudio(mdlEstudio, mdlDetalle);
                            }
                        }
                        catch (Exception eSEND)
                        {
                            Log.EscribeLog("Existe error al guardar el archivo: " + eSEND.Message);
                        }
                    }
                    else
                    {
                        Log.EscribeLog("No se encontro el path.");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Existe un error: " + e.Message);
                    Log.EscribeLog("Existe un error: " + e.Message);
                }
                return(new DicomCStoreResponse(request, DicomStatus.Success));
            }
Beispiel #21
0
        public async Task <string> SendAdminEmailNotificationOnIDReUpload(string email, string orderNumber)
        {
            string status = string.Empty;

            try
            {
                ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                DatabaseResponse templateResponse = await _configAccess.GetEmailNotificationTemplate(NotificationEvent.ICValidationCustomerUpload.ToString());

                DatabaseResponse notifyEmailResponse = ConfigHelper.GetValueByKey(ConfigKeys.IDReUploadNotifyEmail.ToString(), _iconfiguration);

                if (notifyEmailResponse.ResponseCode == (int)DbReturnValue.RecordExists && notifyEmailResponse.Results != null)
                {
                    var notificationMessage = MessageHelper.GetMessage((string)notifyEmailResponse.Results, "Admin", NotificationEvent.ICValidationCustomerUpload.ToString(), ((EmailTemplate)templateResponse.Results).TemplateName, _iconfiguration, email, orderNumber);

                    DatabaseResponse notificationResponse = await _configAccess.GetConfiguration(ConfiType.Notification.ToString());

                    MiscHelper parser = new MiscHelper();

                    var notificationConfig = parser.GetNotificationConfig((List <Dictionary <string, string> >)notificationResponse.Results);

                    LogInfo.Information("Email Message to send  " + JsonConvert.SerializeObject(notificationResponse));

                    Publisher orderSuccessNotificationPublisher = new Publisher(_iconfiguration, notificationConfig.SNSTopic);

                    try
                    {
                        status = await orderSuccessNotificationPublisher.PublishAsync(notificationMessage);
                    }
                    catch (Exception ex)
                    {
                        LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "publishing :" + status);
                        throw ex;
                    }

                    LogInfo.Information("Email send status : " + status + " " + JsonConvert.SerializeObject(notificationMessage));

                    try
                    {
                        DatabaseResponse notificationLogResponse = await _configAccess.CreateEMailNotificationLogForDevPurpose(

                            new NotificationLogForDevPurpose
                        {
                            EventType = NotificationEvent.OrderSuccess.ToString(),

                            Message = JsonConvert.SerializeObject(notificationMessage)
                        });
                    }
                    catch (Exception ex)
                    {
                        LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "Email send:" + email);
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical) + "IDReUpload:" + email);
                throw ex;
            }

            return(status);
        }
        public async void ProcessNotification(object message)
        {
            try
            {
                Amazon.SQS.Model.Message msg = (Amazon.SQS.Model.Message)message;

                string queMessage = msg.Body;
                //LogInfo.Information("8 - bsubscription is  {" + msg.MessageId + "} object");
                SNSSubscription subscription = JsonConvert.DeserializeObject <SNSSubscription>(queMessage);

                //LogInfo.Information("8 - bsubscription is  {" + subscription.MessageId + "} object");
                NotificationMessage NotMessage = JsonConvert.DeserializeObject <NotificationMessage>(subscription.Message);
                //LogInfo.Information("9 - NotMessage is  {" + NotMessage.Message +" "+ NotMessage.MessageType + "} object");
                // SNSSubscription messageObject= new SNSSubscription {  Message=me};

                //   NotificationMessage notification= JsonConvert.DeserializeObject<NotificationMessage>(messageObject.Message);
                if (NotMessage.MessageType == NotificationMsgType.Email.GetDescription())
                {
                    OutboundEmail _email = new OutboundEmail();

                    ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                    DatabaseResponse emailTemplate = await _configAccess.GetEmailNotificationTemplate(NotMessage.Message.messagetemplate.ToString());

                    EmailTemplate template = (EmailTemplate)emailTemplate.Results;

                    var responses = await _email.SendEmail(NotMessage, _iconfiguration, template);


                    foreach (Mandrill.Model.MandrillSendMessageResponse response in responses)
                    {
                        foreach (NotificationParams param in NotMessage.Message.parameters)
                        {
                            if (response.Email == param.emailaddress)
                            {
                                DatabaseResponse notificationLogResponse = await _configAccess.CreateEMailNotificationLog(new NotificationLog {
                                    Status          = response.Status.ToString() == "Sent" ? 1 : 0, Email = response.Email,
                                    EmailTemplateID = template.EmailTemplateID, EmailBody = template.EmailBody,
                                    EmailSubject    = template.EmailSubject, ScheduledOn = subscription.Timestamp, SendOn = DateTime.Now
                                });
                            }
                        }
                    }
                }
                else if (NotMessage.MessageType == NotificationMsgType.SMS.GetDescription())
                {
                    OutboundSMS      _SMS          = new OutboundSMS();
                    TextMessage      smsData       = new TextMessage();
                    ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                    DatabaseResponse smsTemplate = await _configAccess.GetSMSNotificationTemplate(NotMessage.Message.messagetemplate.ToString());

                    SMSTemplates template = (SMSTemplates)smsTemplate.Results;

                    foreach (var item in NotMessage.Message.parameters)
                    {
                        smsData.PhoneNumber = item.mobilenumber;

                        smsData.SMSText = template.SMSTemplate.Replace("*|NAME|*", item.name)
                                          .Replace("*|PARAM1|*", item.param1)
                                          .Replace("*|PARAM2|*", item.param2)
                                          .Replace("*|PARAM3|*", item.param3)
                                          .Replace("*|PARAM4|*", item.param4)
                                          .Replace("*|PARAM5|*", item.param5)
                                          .Replace("*|PARAM6|*", item.param6)
                                          .Replace("*|PARAM7|*", item.param7)
                                          .Replace("*|PARAM8|*", item.param8)
                                          .Replace("*|PARAM9|*", item.param9)
                                          .Replace("*|PARAM10|*", item.param10);
                        //LogInfo.Information("10 - SendSMS is  { "+ smsData+ "}");
                        string response = await _SMS.SendSMSNotification(smsData, _iconfiguration);

                        await _configAccess.CreateSMSNotificationLog(new SMSNotificationLog()
                        {
                            Email         = NotMessage.Message.parameters.Select(x => x.emailaddress).FirstOrDefault(),
                            Mobile        = smsData.PhoneNumber,
                            SMSTemplateID = template.SMSTemplateID,
                            SMSText       = smsData.SMSText,
                            Status        = response != "failure" ? 1 : 0,
                            ScheduledOn   = subscription.Timestamp,
                            SendOn        = DateTime.Now
                        });
                    }

                    //LogInfo.Information("10 - SendSMSLog is  { " + NotMessage.Message.parameters.Select(x => x.emailaddress).FirstOrDefault() + " " + smsData.PhoneNumber + " "+ response + "}");
                }
            }

            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));
            }
        }
Beispiel #23
0
 public static string GetConfig(string config_id)
 {
     return(ConfigDataAccess.GetConfig(config_id));
 }
        public async Task <IActionResult> ProcessSnsNotifications([FromHeader(Name = "x-amz-sns-message-type")] string snsMessageType, [FromHeader(Name = "x-amz-sns-rawdelivery")] bool isRawDelivery, string id = "")
        {
            try
            {
                //LogInfo.Information("1 - ProcessSnsNotification started with {"+ snsMessageType + "} object");

                if (string.IsNullOrEmpty(snsMessageType))
                {
                    LogInfo.Information(SNSNotification.EmptySNSTypeHeader.ToString());

                    return(BadRequest());
                }

                //if (isRawDelivery)
                //{
                //    string msg = "message is raw"; // for testing pupose,
                //}

                SNSSubscription notification = new SNSSubscription();

                string requestBody = "";

                using (var reader = new StreamReader(Request.Body))
                {
                    requestBody = reader.ReadToEndAsync().Result;
                }
                //LogInfo.Information("2 - Now fetching Body with {" + requestBody + "} object");
                var requestMessage = Amazon.SimpleNotificationService.Util.Message.ParseMessage(requestBody);
                //LogInfo.Information("3 - Parsing messages with {" + requestMessage + "} object");
                if (!requestMessage.IsMessageSignatureValid())
                {
                    LogInfo.Information(SNSNotification.InvalidSignature.ToString());

                    return(BadRequest());
                }

                //temporary storage for testing
                string path = ConfigHelper.GetValueByKey("SNSNotificationPath", _iconfiguration).Results.ToString();
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                System.IO.File.WriteAllText(path + $@"/notifications_{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.json", requestBody);

                // end temp

                if (string.IsNullOrEmpty(snsMessageType))
                {
                    //LogInfo.Information("4 - snsMessageType is  {" + snsMessageType + "} object");
                    return(BadRequest());
                }

                if (snsMessageType == Amazon.SimpleNotificationService.Util.Message.MESSAGE_TYPE_SUBSCRIPTION_CONFIRMATION && requestMessage.IsSubscriptionType)
                {
                    Subscriber subscriber = new Subscriber(_iconfiguration);

                    var client = subscriber.GetAmazonSimpleNotificationServiceClient();
                    //LogInfo.Information("5 - before snsMessageType is  {" + client + "} object");
                    Amazon.SimpleNotificationService.Model.ConfirmSubscriptionResponse confirmSubscriptionResponse = await client.ConfirmSubscriptionAsync(requestMessage.TopicArn, requestMessage.Token);

                    if (confirmSubscriptionResponse.HttpStatusCode == HttpStatusCode.OK)
                    {
                        LogInfo.Information(SNSNotification.SubscriptionConfirmed.ToString());
                    }
                    //LogInfo.Information("5.1 - before snsMessageType is  {" + client + "} object");
                    return(Ok());
                }

                else if (snsMessageType == Amazon.SimpleNotificationService.Util.Message.MESSAGE_TYPE_UNSUBSCRIPTION_CONFIRMATION && requestMessage.IsUnsubscriptionType)
                {
                    Subscriber subscriber = new Subscriber(_iconfiguration);

                    var client = subscriber.GetAmazonSimpleNotificationServiceClient();

                    Amazon.SimpleNotificationService.Model.UnsubscribeResponse confirmUnSubscriptionResponse = await client.UnsubscribeAsync(notification.TopicArn);

                    //LogInfo.Information("6 - before snsMessageType is  {" + snsMessageType + "} object");
                    return(Ok());
                }

                else if (snsMessageType == Amazon.SimpleNotificationService.Util.Message.MESSAGE_TYPE_NOTIFICATION && requestMessage.IsNotificationType)
                {
                    //LogInfo.Information("7 - before snsMessageType is  {" + snsMessageType + "} object");
                    ConfigDataAccess _configAccess = new ConfigDataAccess(_iconfiguration);

                    MiscHelper helper = new MiscHelper();

                    DatabaseResponse notificationConfigResponse = await _configAccess.GetConfiguration(ConfiType.Notification.ToString());

                    NotificationConfig snsConfig = helper.GetNotificationConfig((List <Dictionary <string, string> >)notificationConfigResponse.Results);

                    Subscriber subscriber = new Subscriber(_iconfiguration, snsConfig.SNSTopic, snsConfig.SQS);

                    var client = subscriber.GetAmazonSimpleNotificationServiceClient();

                    Action <object> notificationSqsProcessor = ProcessNotification;

                    await subscriber.ListenAsync(notificationSqsProcessor);

                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical));

                return(Ok());
            }
        }