/// <summary>
        /// Cambia el nombre de un grupo.-
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="groupName">Nombre del grupo</param>
        /// <param name="newGroupName">Nuevo nombre del grupo</param>
        internal static void ChangeGroupName(ConfigProviderElement provider, string groupName, string newGroupName)
        {
            //ConfigurationFile wConfigurationFile = GetConfig(provider);
            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    var configs = dc.fwk_ConfigManagers.Where(p =>
                                                              p.group.Equals(groupName) &&
                                                              p.ConfigurationFileName.Equals(provider.BaseConfigFile));

                    foreach (fwk_ConfigManager confg in configs)
                    {
                        confg.group = newGroupName;
                    }
                    dc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }
        }
 /// <summary>
 /// Realiza cambios a una propiedad.-
 /// </summary>
 /// <param name="provider">Proveedor de configuracion</param>
 /// <param name="groupName">Nombre del grupo donde se encuentra la propiedad</param>
 /// <param name="property">Propiedad actualizada. Este objeto puede contener todos sus valores modifcados</param>
 /// <param name="propertyName">Nombre de la propiedad que se mofdifico.- Este valor es el original sin modificacion</param>
 internal static void ChangeProperty(ConfigProviderElement provider, string groupName, Key property, string propertyName)
 {
     try
     {
         using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
         {
             var prop = dc.fwk_ConfigManagers.Where(config =>
                                                    config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                    config.group.ToLower().Equals(groupName.ToLower()) &&
                                                    config.key.ToLower().Equals(propertyName.ToLower())
                                                    ).FirstOrDefault <fwk_ConfigManager>();
             prop.value     = property.Value.Text;
             prop.encrypted = property.Encrypted;
             prop.key       = property.Name;
             dc.SubmitChanges();
         }
     }
     catch (Exception ex)
     {
         TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
         ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
         te.ErrorId = "8200";
         throw te;
     }
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="group">Grupo</param>
        internal static void AddGroup(ConfigProviderElement provider, Group group)
        {
            ConfigurationFile wConfigurationFile = GetConfig(provider);


            wConfigurationFile.Groups.Add(group);
            fwk_ConfigManager confg;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    foreach (Key k in group.Keys)
                    {
                        confg = new fwk_ConfigManager();
                        confg.ConfigurationFileName = provider.BaseConfigFile;
                        confg.key       = k.Name;
                        confg.encrypted = k.Encrypted;
                        confg.value     = k.Value.Text;
                        confg.group     = group.Name;
                        dc.fwk_ConfigManagers.InsertOnSubmit(confg);
                    }
                    dc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Almacena informacion de auditoria.-
        /// Llama a StaticLogger y carga el log auditando los datos del Request de entrada
        /// </summary>
        /// <param name="pRequest">Request</param>
        /// <param name="wResult">Response</param>
        /// <param name="logType">Audit default</param>
        public static void LogSuccessfulExecution(IServiceContract pRequest, IServiceContract wResult, Fwk.Logging.EventType logType = Fwk.Logging.EventType.Audit)
        {
            fwk_ServiceAudit audit = new fwk_ServiceAudit();

            audit.LogTime     = System.DateTime.Now;
            audit.ServiceName = pRequest.ServiceName;
            audit.Send_Time   = pRequest.ContextInformation.HostTime;
            if (Fwk.HelperFunctions.DateFunctions.IsSqlDateTimeOutOverflow(wResult.ContextInformation.HostTime) == false)
            {
                audit.Resived_Time = wResult.ContextInformation.HostTime;
            }
            else
            {
                audit.Resived_Time = wResult.ContextInformation.HostTime = DateTime.Now;
            }

            audit.Send_UserId  = pRequest.ContextInformation.UserId;
            audit.Send_Machine = pRequest.ContextInformation.HostName;

            audit.Dispatcher_Instance_Name = FacadeHelper.ServiceDispatcherConfig.InstanseName;
            audit.ApplicationId            = pRequest.ContextInformation.AppId;

            try
            {
                audit.RequetsText  = HelperFunctions.SerializationFunctions.SerializeObjectToJson_Newtonsoft(pRequest);
                audit.ResponseText = HelperFunctions.SerializationFunctions.SerializeObjectToJson_Newtonsoft(wResult.Error);
            }
            catch
            {
                //Si existe error al serializar json almacena el xml
                audit.RequetsText  = pRequest.GetXml();
                audit.ResponseText = wResult.Error.GetXml();
            }

            audit.Logtype = Enum.GetName(typeof(Fwk.Logging.EventType), logType);


            try
            {
                using (FwkDatacontext context = new FwkDatacontext(System.Configuration.ConfigurationManager.ConnectionStrings[ConfigurationsHelper.ServiceDispatcherConnection].ConnectionString))
                {
                    context.fwk_ServiceAudit.InsertOnSubmit(audit);
                    context.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("No se pudo insertar la auditoria de la ejecucion de un servicio.-  " + ex.Message.ToString(), ex);
                te.ErrorId = "7010";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(Audit));
                LogDispatcherError(te);

                LogSuccessfulExecution_Old(pRequest, wResult);
            }
        }
        /// <summary>
        /// Obtiene un grupo determinado en el archivo de configuracion
        /// </summary>
        /// <param name="configProvider">Proveedor de configuuracion</param>
        /// <param name="groupName">Nombre del grupo</param>
        /// <returns>Hashtable con los grupos contenidos en el archivo de configuracion</returns>
        /// <Author>Marcelo Oviedo</Author>
        internal static Group GetGroup(string configProvider, string groupName)
        {
            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);

            Group wGroup = null;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(DatabaseConfigManager.GetCnnString(provider)))
                {
                    var properties_group = dc.fwk_ConfigManagers.Where(config =>
                                                                       config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                                       config.group.ToLower().Equals(groupName.ToLower())
                                                                       );

                    if (properties_group == null)
                    {
                        TechnicalException te = new TechnicalException(string.Concat(new String[] { "No se encuentra el grupo ", groupName, " en el archivo de configuración: ", provider.BaseConfigFile }));
                        te.ErrorId = "8006";
                        Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(ConfigurationManager));
                        throw te;
                    }

                    if (properties_group.Count() != 0)
                    {
                        wGroup      = new Group();
                        wGroup.Name = groupName;
                        wGroup.Keys = new Keys();
                        Key wKey = new Key();

                        foreach (var item in properties_group)
                        {
                            wKey            = new Key();
                            wKey.Name       = item.key;
                            wKey.Value.Text = item.value;
                            wKey.Encrypted  = item.encrypted;
                            wGroup.Keys.Add(wKey);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }



            return(wGroup);
        }
        /// <summary>
        /// Busca en la base de datos el archivo de configuracion
        /// </summary>
        /// <param name="pFileName">Nombre de archivo.</param>
        /// <param name="provider">provider</param>
        /// <Author>Marcelo Oviedo</Author>
        static ConfigurationFile GetFromDatabase(string pFileName, ConfigProviderElement provider)
        {
            ConfigurationFile wConfigurationFile = new ConfigurationFile();

            wConfigurationFile.Groups = new Groups();
            string groupAuxiliar = string.Empty;
            Group  g             = null;
            Key    k             = null;

            wConfigurationFile.FileName = pFileName;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    IEnumerable <fwk_ConfigManager> fwk_ConfigManagerList = from s in dc.fwk_ConfigManagers
                                                                            where s.ConfigurationFileName.Equals(pFileName)

                                                                            select s;

                    foreach (fwk_ConfigManager fwk_Config in fwk_ConfigManagerList.OrderBy(p => p.group))
                    {
                        if (!groupAuxiliar.Equals(fwk_Config.group))
                        {
                            groupAuxiliar = Convert.ToString(fwk_Config.group);
                            g             = new Group();
                            g.Name        = groupAuxiliar;
                            wConfigurationFile.Groups.Add(g);
                        }

                        k            = new Key();
                        k.Encrypted  = fwk_Config.encrypted;
                        k.Name       = fwk_Config.key;
                        k.Value.Text = fwk_Config.value;

                        g.Keys.Add(k);
                    }
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }

            return(wConfigurationFile);
        }
        /// <summary>
        ///Si grupo no existe en un provider p/bd es por que seguramente se agrego el grupo por la aplicacion del fwk y ahun este grupo se encuentra vasio.
        ///y no es posible agregar grupos vasios ya que los grupos tienen que tener al menos una propiedad para ser agregados a la tabla
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="key"></param>
        /// <param name="groupName">Nombre del gruop que contiene las propiedades</param>
        internal static void AddProperty(ConfigProviderElement provider, Key key, string groupName)
        {
            System.Text.StringBuilder sqlCommand = new StringBuilder();

            ConfigurationFile wConfigurationFile = GetConfig(provider);
            Group             wGroup             = wConfigurationFile.Groups.GetFirstByName(groupName);

            //Si grupo no existe en un provider p/bd es por que seguramente se agrego el grupo por la aplicacion del fwk y ahun este grupo se encuentra vasio.
            //y no es posible agregar grupos vasios ya que los grupos tienen que tener al menos una propiedad para ser agregados a la tabla
            if (wGroup == null)
            {
                wGroup      = new Group();
                wGroup.Keys = new Keys();
                wGroup.Name = groupName;
                AddGroup(provider, wGroup);
            }
            wGroup.Keys.Add(key);



            fwk_ConfigManager confg;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    confg = new fwk_ConfigManager();
                    confg.ConfigurationFileName = provider.BaseConfigFile;
                    confg.key       = key.Name;
                    confg.encrypted = key.Encrypted;
                    confg.value     = key.Value.Text;
                    confg.group     = groupName;

                    dc.fwk_ConfigManagers.InsertOnSubmit(confg);


                    dc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="configProvider"></param>
        /// <param name="groupName"></param>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        static Key GetKey_FromDB(string configProvider, string groupName, string propertyName)
        {
            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);

            if (System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo] == null)
            {
                TechnicalException te = new TechnicalException(string.Concat("Problemas con Fwk.Configuration, no se puede encontrar la cadena de conexión: ", provider.SourceInfo));
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo].ConnectionString))
                {
                    var val = dc.fwk_ConfigManagers.Where(config =>
                                                          config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                          config.group.ToLower().Equals(groupName.ToLower()) &&
                                                          config.key.ToLower().Equals(propertyName.ToLower())).FirstOrDefault();

                    if (val == null)
                    {
                        TechnicalException te = new TechnicalException(string.Concat(new String[] { "No se encuentra la propiedad ", propertyName, " en el grupo de propiedades: ", groupName, " del archivo de configuración: ", provider.BaseConfigFile }));
                        te.ErrorId = "8007";
                        Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(ConfigurationManager));
                        throw te;
                    }

                    Key wKey = new Key();
                    wKey.Value.Text = val.value;
                    wKey.Name       = propertyName;
                    wKey.Encrypted  = val.encrypted;

                    return(wKey);
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }
        }
        /// <summary>
        /// Busca en la base de datos el archivo de configuracion
        /// </summary>
        /// <param name="groupName"></param>
        /// <param name="keyName"></param>
        /// <param name="destinationProvider">Provedor destino</param>
        /// <Author>Marcelo Oviedo</Author>
        static bool ExistProperty(string groupName, string keyName, ConfigProviderElement destinationProvider)
        {
            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(destinationProvider)))
                {
                    var properties = dc.fwk_ConfigManagers.Where(config =>
                                                                 config.ConfigurationFileName.ToLower().Equals(destinationProvider.BaseConfigFile.ToLower()) &&
                                                                 config.group.ToLower().Equals(groupName.ToLower()) &&
                                                                 config.key.ToLower().Equals(keyName.ToLower())
                                                                 );

                    return(properties.Any());
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }
        }
Beispiel #10
0
        public static void LogNonSucessfulExecution(fwk_ServiceAudit audit) //ServiceError pServiceError, ServiceConfiguration pConfig)
        {
            audit.LogTime = System.DateTime.Now;
            audit.Dispatcher_Instance_Name = FacadeHelper.ServiceDispatcherConfig.InstanseName;

            audit.Logtype = Enum.GetName(typeof(Fwk.Logging.EventType), Fwk.Logging.EventType.Error);

            try
            {
                using (FwkDatacontext context = new FwkDatacontext(System.Configuration.ConfigurationManager.ConnectionStrings[ConfigurationsHelper.ServiceDispatcherConnection].ConnectionString))
                {
                    context.fwk_ServiceAudit.InsertOnSubmit(audit);

                    context.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("No se pudo insertar la auditoria de la ejecucion de un servicio.-  " + ex.Message.ToString(), ex);
                te.ErrorId = "7010";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(Audit));
                LogDispatcherError(ex);
            }
        }