/// <summary> /// Elimina una regla de la base de datos /// </summary> /// <param name="ruleName"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> /// <returns></returns> public static void DeleteRule(string ruleName, string applicationName, string connectionStringName) { aspnet_Rule waspnet_Rule = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { waspnet_Rule = dc.aspnet_Rules.First <aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId.Equals(wApplicationId)); dc.aspnet_Rules.DeleteOnSubmit(waspnet_Rule); dc.SubmitChanges(); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, ruleName), ex); te.ErrorId = "4003"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException <FwkMembership>(te); throw te; } }
/// <summary> /// Determina si existe una regla.- /// </summary> /// <param name="pRuleName">Nombre de la regla</param> /// <param name="applicationName">Nombre de la aplicación</param> /// <param name="connectionStringName">Nombre de la regla</param> /// <returns>boolean</returns> public static bool ExistRule(string pRuleName, string applicationName, string connectionStringName) { bool wExist = false; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { wExist = dc.aspnet_Rules.Any(s => s.name.Trim().Equals(pRuleName.Trim()) && s.ApplicationId == wApplicationId); } return(wExist); } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, pRuleName), ex); te.ErrorId = "4004"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException <FwkMembership>(te); throw te; } }
/// <summary> /// /// </summary> /// <param name="ruleName"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> /// <returns></returns> public static FwkAuthorizationRule GetRule(string ruleName, string applicationName, string connectionStringName) { aspnet_Rule waspnet_Rule = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { if (dc.aspnet_Rules.Any <aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId == wApplicationId)) { waspnet_Rule = dc.aspnet_Rules.First <aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId == wApplicationId); } FwkAuthorizationRule rule = new FwkAuthorizationRule(waspnet_Rule.name, waspnet_Rule.expression, waspnet_Rule.ApplicationId.Value); rule.Description = waspnet_Rule.Description; rule.Id = waspnet_Rule.Id; return(rule); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, ruleName), ex); te.ErrorId = "4003"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException <FwkMembership>(te); throw te; } }
/// <summary> /// Actualiza parent category id una determinada categoria /// </summary> /// <param name="category_to_move_Id"></param> /// <param name="currentParentCategoryId"></param> /// <param name="newParentCategoryId"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> public static void UpdateParentCategory(int category_to_move_Id, int currentParentCategoryId, int newParentCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { aspnet_RulesCategory waspnet_RulesCategory = dc.aspnet_RulesCategories.Where <aspnet_RulesCategory>(p => p.CategoryId == category_to_move_Id && p.ParentCategoryId == currentParentCategoryId && p.ApplicationId == wApplicationId).FirstOrDefault(); if (waspnet_RulesCategory != null) { waspnet_RulesCategory.ParentCategoryId = newParentCategoryId; dc.SubmitChanges(); } } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Determina si la categoria contiene subcategorias.- /// </summary> /// <param name="parentFwkCategoryId">id de categoria</param> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static bool CategoryContainChilds(int parentFwkCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { bool contain = dc.aspnet_RulesCategories.Any <aspnet_RulesCategory>(p => p.ParentCategoryId == parentFwkCategoryId && p.ApplicationId == wApplicationId); //if (contain == false) // contain = dc.aspnet_RulesInCategories.Any<aspnet_RulesInCategory>(p => p.CategoryId == parentFwkCategoryId && p.ApplicationId == wApplicationId); return(contain); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Obtiene de la bases de datos aspnet y tabla aspnet_Applications el Guid de la Aplicacion /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="cnnstringName"></param> /// <returns></returns> public static Guid GetApplication(string applicationName, string cnnstringName) { Guid wApplicationNameId = new Guid(); try { using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[cnnstringName].ConnectionString)) { aspnet_Application app = dc.aspnet_Applications.Where(p => p.LoweredApplicationName.Equals(applicationName.ToLower())).FirstOrDefault<aspnet_Application>(); if (app != null) wApplicationNameId = app.ApplicationId; else { TechnicalException te = new TechnicalException(String.Format(Fwk.Security.Properties.Resource.ApplicationName_NotExist, applicationName, cnnstringName)); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4002"; throw te; } } return wApplicationNameId; } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Obtiene de la bases de datos aspnet y tabla aspnet_Applications el Guid de la Aplicacion /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="cnnstringName"></param> /// <returns></returns> public static Guid GetApplication(string applicationName, string cnnstringName) { Guid wApplicationNameId = new Guid(); try { using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[cnnstringName].ConnectionString)) { aspnet_Application app = dc.aspnet_Applications.Where(p => p.LoweredApplicationName.Equals(applicationName.ToLower())).FirstOrDefault <aspnet_Application>(); if (app != null) { wApplicationNameId = app.ApplicationId; } else { TechnicalException te = new TechnicalException(String.Format(Fwk.Security.Properties.Resource.ApplicationName_NotExist, applicationName, cnnstringName)); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4002"; throw te; } } return(wApplicationNameId); } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Obtiene las Categorias de una determinada aplicacion. Recibe el Nombre de cadena de coneccion del archivo de configuracion.- /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static FwkCategoryList GetAllCategories(string applicationName, string connectionStringName) { FwkCategory wCategory; FwkCategoryList wCategoryList = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var rulesinCat = from s in dc.aspnet_RulesCategories where s.ApplicationId == wApplicationId select s; wCategoryList = new FwkCategoryList(); foreach (aspnet_RulesCategory aspnet_cat in rulesinCat.ToList <aspnet_RulesCategory>()) { wCategory = new FwkCategory(); wCategory.CategoryId = aspnet_cat.CategoryId; if (aspnet_cat.ParentCategoryId != null) { wCategory.ParentId = aspnet_cat.ParentCategoryId; } wCategory.Name = aspnet_cat.Name; wCategoryList.Add(wCategory); } } foreach (FwkCategory category in wCategoryList) { category.FwkRulesInCategoryList = GetFwkRules_By_Category(category.CategoryId, connectionStringName); } return(wCategoryList); } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Obtiene las subcategorias de una categoria.- /// </summary> /// <param name="pCategoryId"></param> /// <param name="applicationName">Nombre de la aplicacion de membership</param> /// <param name="connectionStringName">Nombre de cadena de coneccion</param> /// <returns></returns> static List <FwkCategory> GetSubCategoriesByCategoryId(int pCategoryId, string applicationName, string connectionStringName) { IEnumerable <FwkCategory> wCategories = null; FwkCategory wFwkCategory = new FwkCategory(); try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { wCategories = from s in dc.aspnet_RulesCategories where (s.ParentCategoryId == pCategoryId && s.ApplicationId == wApplicationId) select new FwkCategory { CategoryId = s.CategoryId, ParentId = s.ParentCategoryId, Name = s.Name }; //var wRulesCategories = from s in dc.aspnet_RulesCategories // where (s.ParentCategoryId == pCategoryId // && s.ApplicationId == wApplicationId) // select s; //foreach(aspnet_RulesCategory rule in wRulesCategories.ToList<aspnet_RulesCategory>()) //{ // wFwkCategory = new FwkCategory (); // wFwkCategory.CategoryId = pCategoryId; // wFwkCategory.Name = rule.Name; // wFwkCategory.ParentId = rule.ParentCategoryId; //wCategories.Add(wFwkCategory); //} return(wCategories.ToList <FwkCategory>()); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
public static RolList GetAllRoles_FullInfo(string applicationName, string connectionStringName) { RolList wRolList = null; Rol wRol = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var roles = from s in dc.aspnet_Roles where s.ApplicationId == wApplicationId select s; wRolList = new RolList(); foreach (aspnet_Role aspnet_rol in roles) { wRol = new Rol(); wRol.Description = aspnet_rol.Description; wRol.RolName = aspnet_rol.RoleName; wRolList.Add(wRol); } } return wRolList; } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
public static RolList GetAllRoles_FullInfo(string applicationName, string connectionStringName) { RolList wRolList = null; Rol wRol = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var roles = from s in dc.aspnet_Roles where s.ApplicationId == wApplicationId select s; wRolList = new RolList(); foreach (aspnet_Role aspnet_rol in roles) { wRol = new Rol(); wRol.Description = aspnet_rol.Description; wRol.RolName = aspnet_rol.RoleName; wRolList.Add(wRol); } } return(wRolList); } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// UpdateRule /// </summary> /// <param name="rule"></param> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> private static void UpdateRule(FwkAuthorizationRule rule, string newRuleName, string applicationName, string connectionStringName) { //Verificar si existe if (!FwkMembership.ExistRule(rule.Name.Trim(), applicationName, connectionStringName)) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_NotExist, rule.Name)); te.ErrorId = "4004"; throw te; } try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var ruleToUpdate = dc.aspnet_Rules.Where(p => p.Id.Equals(rule.Id)).FirstOrDefault(); if (!string.IsNullOrEmpty(newRuleName)) { ruleToUpdate.name = newRuleName; } ruleToUpdate.expression = rule.Expression; ruleToUpdate.Description = rule.Description; dc.SubmitChanges(); } } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Retorna una lista de reglas de una determinada coneccion /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static FwkAuthorizationRuleList GetRulesAuxList(string applicationName, string connectionStringName) { FwkAuthorizationRule rule = null; FwkAuthorizationRuleList wRules = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); wRules = new FwkAuthorizationRuleList(); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var aspnet_Rules = from s in dc.aspnet_Rules where s.ApplicationId == wApplicationId select s; foreach (aspnet_Rule aspnet_Rule in aspnet_Rules.ToList <aspnet_Rule>()) { rule = new FwkAuthorizationRule(); rule.Id = aspnet_Rule.Id; rule.Name = aspnet_Rule.name.Trim(); rule.Expression = aspnet_Rule.expression; rule.Description = aspnet_Rule.Description; wRules.Add(rule); } } return(wRules); } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingAlls_Error, applicationName), ex); te.ErrorId = "4004"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException <FwkMembership>(te); throw te; } }
/// <summary> /// Busca las reglas agrupadas en una determinada categoria.- /// </summary> /// <param name="pCategoryId">Identificador de categoria</param> /// <param name="connectionStringName">Cadena de coanexion</param> /// <returns></returns> public static FwkAuthorizationRuleList GetFwkRules_By_Category(int pCategoryId, string connectionStringName) { IEnumerable <FwkAuthorizationRule> rulesinCat = null; FwkAuthorizationRuleList list = null; try { using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { rulesinCat = from s in dc.aspnet_Rules from p in dc.aspnet_RulesInCategories where s.Id.Equals(p.RuleId) && p.CategoryId == pCategoryId select new FwkAuthorizationRule { Id = s.Id, Description = s.Description, Name = s.name, Expression = s.expression }; list = new FwkAuthorizationRuleList(); list.AddRange(rulesinCat); return(list); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Verifica la existencia de una determinada categoria /// </summary> /// <param name="pCategoryName">Nombre de la categoria</param> /// <param name="pParentCategoryId">Id de la categora padre</param> /// <param name="applicationName">Nombre de la app</param> /// <param name="connectionStringName">Nombre de la cadena de conección</param> /// <returns></returns> public static bool ExistCategory(string pCategoryName, int pParentCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { return(dc.aspnet_RulesCategories.Any <aspnet_RulesCategory> (p => p.Name.ToLower() == pCategoryName.ToLower() && p.ApplicationId == wApplicationId && p.ParentCategoryId == pParentCategoryId)); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException <FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// /// </summary> /// <param name="ruleName"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> /// <returns></returns> public static FwkAuthorizationRule GetRule(string ruleName, string applicationName, string connectionStringName) { aspnet_Rule waspnet_Rule = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { if (dc.aspnet_Rules.Any<aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId == wApplicationId)) { waspnet_Rule = dc.aspnet_Rules.First<aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId == wApplicationId); } FwkAuthorizationRule rule = new FwkAuthorizationRule(waspnet_Rule.name, waspnet_Rule.expression, waspnet_Rule.ApplicationId.Value); rule.Description = waspnet_Rule.Description; rule.Id = waspnet_Rule.Id; return rule; } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, ruleName), ex); te.ErrorId = "4003"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException<FwkMembership>(te); throw te; } }
/// <summary> /// Obtiene las Categorias de una determinada aplicacion. Recibe el Nombre de cadena de coneccion del archivo de configuracion.- /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static FwkCategoryList GetAllCategories(string applicationName, string connectionStringName) { FwkCategory wCategory; FwkCategoryList wCategoryList = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var rulesinCat = from s in dc.aspnet_RulesCategories where s.ApplicationId == wApplicationId select s; wCategoryList = new FwkCategoryList(); foreach (aspnet_RulesCategory aspnet_cat in rulesinCat.ToList<aspnet_RulesCategory>()) { wCategory = new FwkCategory(); wCategory.CategoryId = aspnet_cat.CategoryId; if (aspnet_cat.ParentCategoryId != null) wCategory.ParentId = aspnet_cat.ParentCategoryId; wCategory.Name = aspnet_cat.Name; wCategoryList.Add(wCategory); } } foreach (FwkCategory category in wCategoryList) { category.FwkRulesInCategoryList = GetFwkRules_By_Category(category.CategoryId, connectionStringName); } return wCategoryList; } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Actualiza parent category id una determinada categoria /// </summary> /// <param name="category_to_move_Id"></param> /// <param name="currentParentCategoryId"></param> /// <param name="newParentCategoryId"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> public static void UpdateParentCategory(int category_to_move_Id, int currentParentCategoryId, int newParentCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { aspnet_RulesCategory waspnet_RulesCategory = dc.aspnet_RulesCategories.Where<aspnet_RulesCategory>(p => p.CategoryId == category_to_move_Id && p.ParentCategoryId == currentParentCategoryId && p.ApplicationId == wApplicationId).FirstOrDefault(); if (waspnet_RulesCategory != null) { waspnet_RulesCategory.ParentCategoryId = newParentCategoryId; dc.SubmitChanges(); } } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Determina si la categoria contiene subcategorias.- /// </summary> /// <param name="parentFwkCategoryId">id de categoria</param> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static bool CategoryContainChilds(int parentFwkCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { bool contain = dc.aspnet_RulesCategories.Any<aspnet_RulesCategory>(p => p.ParentCategoryId == parentFwkCategoryId && p.ApplicationId == wApplicationId); //if (contain == false) // contain = dc.aspnet_RulesInCategories.Any<aspnet_RulesInCategory>(p => p.CategoryId == parentFwkCategoryId && p.ApplicationId == wApplicationId); return contain; } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Verifica la existencia de una determinada categoria /// </summary> /// <param name="pCategoryName">Nombre de la categoria</param> /// <param name="pParentCategoryId">Id de la categora padre</param> /// <param name="applicationName">Nombre de la app</param> /// <param name="connectionStringName">Nombre de la cadena de conección</param> /// <returns></returns> public static bool ExistCategory(string pCategoryName, int pParentCategoryId, string applicationName, string connectionStringName) { try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { return dc.aspnet_RulesCategories.Any<aspnet_RulesCategory> (p => p.Name.ToLower() == pCategoryName.ToLower() && p.ApplicationId == wApplicationId && p.ParentCategoryId == pParentCategoryId); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Obtiene las subcategorias de una categoria.- /// </summary> /// <param name="pCategoryId"></param> /// <param name="applicationName">Nombre de la aplicacion de membership</param> /// <param name="connectionStringName">Nombre de cadena de coneccion</param> /// <returns></returns> static List<FwkCategory> GetSubCategoriesByCategoryId(int pCategoryId, string applicationName, string connectionStringName) { IEnumerable<FwkCategory> wCategories = null; FwkCategory wFwkCategory = new FwkCategory(); try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { wCategories = from s in dc.aspnet_RulesCategories where (s.ParentCategoryId == pCategoryId && s.ApplicationId == wApplicationId) select new FwkCategory { CategoryId = s.CategoryId, ParentId = s.ParentCategoryId, Name = s.Name }; //var wRulesCategories = from s in dc.aspnet_RulesCategories // where (s.ParentCategoryId == pCategoryId // && s.ApplicationId == wApplicationId) // select s; //foreach(aspnet_RulesCategory rule in wRulesCategories.ToList<aspnet_RulesCategory>()) //{ // wFwkCategory = new FwkCategory (); // wFwkCategory.CategoryId = pCategoryId; // wFwkCategory.Name = rule.Name; // wFwkCategory.ParentId = rule.ParentCategoryId; //wCategories.Add(wFwkCategory); //} return wCategories.ToList<FwkCategory>(); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Busca las reglas agrupadas en una determinada categoria.- /// </summary> /// <param name="pCategoryId">Identificador de categoria</param> /// <param name="connectionStringName">Cadena de coanexion</param> /// <returns></returns> public static FwkAuthorizationRuleList GetFwkRules_By_Category(int pCategoryId, string connectionStringName) { IEnumerable<FwkAuthorizationRule> rulesinCat = null; FwkAuthorizationRuleList list = null; try { using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { rulesinCat = from s in dc.aspnet_Rules from p in dc.aspnet_RulesInCategories where s.Id.Equals(p.RuleId) && p.CategoryId == pCategoryId select new FwkAuthorizationRule { Id = s.Id,Description = s.Description, Name = s.name, Expression = s.expression }; list = new FwkAuthorizationRuleList(); list.AddRange(rulesinCat); return list; } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Elimina una regla de la base de datos /// </summary> /// <param name="ruleName"></param> /// <param name="applicationName"></param> /// <param name="connectionStringName"></param> /// <returns></returns> public static void DeleteRule(string ruleName, string applicationName, string connectionStringName) { aspnet_Rule waspnet_Rule = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { waspnet_Rule = dc.aspnet_Rules.First<aspnet_Rule>(s => s.name.Equals(ruleName.Trim()) && s.ApplicationId.Equals(wApplicationId)); dc.aspnet_Rules.DeleteOnSubmit(waspnet_Rule); dc.SubmitChanges(); } } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, ruleName), ex); te.ErrorId = "4003"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException<FwkMembership>(te); throw te; } }
/// <summary> /// UpdateRule /// </summary> /// <param name="rule"></param> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> private static void UpdateRule(FwkAuthorizationRule rule, string newRuleName, string applicationName, string connectionStringName) { //Verificar si existe if (!FwkMembership.ExistRule(rule.Name.Trim(), applicationName, connectionStringName)) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_NotExist, rule.Name)); te.ErrorId = "4004"; throw te; } try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var ruleToUpdate = dc.aspnet_Rules.Where(p => p.Id.Equals(rule.Id)).FirstOrDefault(); if (!string.IsNullOrEmpty(newRuleName)) ruleToUpdate.name = newRuleName; ruleToUpdate.expression = rule.Expression; ruleToUpdate.Description = rule.Description; dc.SubmitChanges(); } } catch (Exception ex) { TechnicalException te = new TechnicalException(Fwk.Security.Properties.Resource.MembershipSecurityGenericError, ex); ExceptionHelper.SetTechnicalException<FwkMembership>(te); te.ErrorId = "4000"; throw te; } }
/// <summary> /// Determina si existe una regla.- /// </summary> /// <param name="pRuleName">Nombre de la regla</param> /// <param name="applicationName">Nombre de la aplicación</param> /// <param name="connectionStringName">Nombre de la regla</param> /// <returns>boolean</returns> public static bool ExistRule(string pRuleName, string applicationName, string connectionStringName) { bool wExist = false; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { wExist = dc.aspnet_Rules.Any(s => s.name.Trim().Equals(pRuleName.Trim()) && s.ApplicationId == wApplicationId); } return wExist; } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingData_Error, pRuleName), ex); te.ErrorId = "4004"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException<FwkMembership>(te); throw te; } }
/// <summary> /// Retorna una lista de reglas de una determinada coneccion /// </summary> /// <param name="applicationName">Nombre de la aplicacion. Coincide con CompanyId en la arquitectura</param> /// <param name="connectionStringName">Nombre de cadena de coneccion del archivo de configuracion.-</param> /// <returns></returns> public static FwkAuthorizationRuleList GetRulesAuxList(string applicationName, string connectionStringName) { FwkAuthorizationRule rule = null; FwkAuthorizationRuleList wRules = null; try { Guid wApplicationId = GetApplication(applicationName, connectionStringName); wRules = new FwkAuthorizationRuleList(); using (Fwk.Security.RuleProviderDataContext dc = new Fwk.Security.RuleProviderDataContext(System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString)) { var aspnet_Rules = from s in dc.aspnet_Rules where s.ApplicationId == wApplicationId select s; foreach (aspnet_Rule aspnet_Rule in aspnet_Rules.ToList<aspnet_Rule>()) { rule = new FwkAuthorizationRule(); rule.Id = aspnet_Rule.Id; rule.Name = aspnet_Rule.name.Trim(); rule.Expression = aspnet_Rule.expression; rule.Description = aspnet_Rule.Description; wRules.Add(rule); } } return wRules; } catch (TechnicalException tx) { throw tx; } catch (Exception ex) { TechnicalException te = new TechnicalException(string.Format(Resource.Rule_ProblemGetingAlls_Error, applicationName), ex); te.ErrorId = "4004"; Fwk.Exceptions.ExceptionHelper.SetTechnicalException<FwkMembership>(te); throw te; } }