public DataTable GetRoleApplications(UsersApplicationsRoles userApplicationRole, int tipo) { CreateColumns(); var lstRole = GetRoleforApplication(userApplicationRole, tipo); ApplicationDA applicationDa = new ApplicationDA(_configuration); if (lstRole.Count > 0) { foreach (var role in lstRole) { _drFixed = _dtFixed.NewRow(); _drFixed["RoleId"] = role.RoleId; _drFixed["RoleName"] = role.RoleName; _drFixed["RoleDescription"] = role.RoleDescription; _drFixed["ApplicationId"] = role.ApplicationId; _drFixed["ApplicationName"] = applicationDa.FindApplication(role.ApplicationId).ApplicationName; _drFixed["CreationDateTime"] = role.CreationDateTime; _drFixed["CreationUserId"] = role.CreationUserId; _drFixed["ModificationDateTime"] = role.ModificationDateTime; _drFixed["ModificationUserId"] = role.ModificationUserId; _drFixed["DeclineDate"] = role.DeclineDate; _drFixed["RoleAuthorizationUserId"] = role.RoleAuthorizationUserId; _drFixed["RoleAuthorizationOwner"] = role.RoleAuthorizationOwner; _dtFixed.Rows.Add(_drFixed); } } applicationDa.Dispose(); return(_dtFixed); }
public DataTable GetRoleApplication(UsersApplicationsRoles userApplicationRole, int tipo) { var roleDa = new RoleDA(_configuration); var datatable = roleDa.GetRoleApplications(userApplicationRole, tipo); roleDa.Dispose(); return(datatable); }
public List <Role> GetRoleforApplications(UsersApplicationsRoles userApplicationRole, int tipo) { var roleda = new RoleDA(_configuration); var listRole = roleda.GetRoleforApplication(userApplicationRole, tipo); roleda.Dispose(); return(listRole); }
public List <UsersApplicationsRoles> GetApplicationRoleList(User user, User loggedUser) { var conn = StrConexion; var lstAppUserRol = new List <UsersApplicationsRoles>(); using (var sqlCon = new SqlConnection(conn)) { sqlCon.Open(); var cmd = new SqlCommand { Connection = sqlCon, CommandType = CommandType.StoredProcedure, CommandText = "usp_UsersGetApplicationRolesConAmbito" }; cmd.Parameters.AddWithValue("@UserId", user.UserId); cmd.Parameters.AddWithValue("@LoggedUserId", loggedUser.UserId); var da = new SqlDataAdapter(); var ds = new DataSet(); da.SelectCommand = cmd; da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { var objAppUserRole = new UsersApplicationsRoles(); objAppUserRole.ApplicationId = Convert.ToInt32(dr["ApplicationId"]); objAppUserRole.ApplicationName = dr["ApplicationName"].ToString(); objAppUserRole.RoleName = dr["RoleName"].ToString(); objAppUserRole.ApplicationDescription = dr["ApplicationDescription"].ToString(); if (!dr["ValidityStartDate"].ToString().Equals(string.Empty)) { objAppUserRole.ValidityStartDate = string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(dr["ValidityStartDate"])); } if (!dr["DeclineDate"].ToString().Equals(string.Empty)) { objAppUserRole.DeclineDate = string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(dr["DeclineDate"])); } lstAppUserRol.Add(objAppUserRole); } } } return(lstAppUserRol); }
/// <summary> /// Obtiene lista de roles por aplicacion /// </summary> /// <param name="userApplicationRole">Objeto tipo Aplicacion</param> /// /// <param name="iTipo">Tipo de Aplicacion</param> /// <returns>Lista de roles</returns> public List <Role> GetRoleforApplication(UsersApplicationsRoles userApplicationRole, int iTipo) { var conn = StrConexion; var rolelst = new List <Role>(); using (var sqlCon = new SqlConnection(conn)) { sqlCon.Open(); var cmd = new SqlCommand { Connection = sqlCon, CommandType = CommandType.StoredProcedure, CommandText = "usp_FindRolesforApplication" }; cmd.Parameters.AddWithValue("@IdApplication", userApplicationRole.ApplicationId); cmd.Parameters.AddWithValue("@UserId", userApplicationRole.UserId); cmd.Parameters.AddWithValue("@Tipo", iTipo); var reader = cmd.ExecuteReader(); while (reader.Read()) { var objRole = new Role { RoleId = (int)reader["RoleId"], RoleName = (string)reader["RoleName"], RoleDescription = string.IsNullOrEmpty(reader["RoleDescription"].ToString()) ? string.Empty : reader["RoleDescription"].ToString(), ApplicationId = (int)reader["ApplicationId"], CreationDateTime = (DateTime)reader["CreationDateTime"], CreationUserId = string.IsNullOrEmpty(reader["CreationUserId"].ToString()) ? string.Empty : reader["CreationUserId"].ToString(), ModificationDateTime = (DateTime)reader["ModificationDateTime"], ModificationUserId = string.IsNullOrEmpty(reader["ModificationUserId"].ToString()) ? string.Empty : reader["ModificationUserId"].ToString(), DeclineDate = string.IsNullOrEmpty(reader["DeclineDate"].ToString()) ? string.Empty : string.Format("{0:dd/MM/yyy}", reader["DeclineDate"]), RoleAuthorizationUserId = (string)reader["RoleAuthorizationUserId"], RoleAuthorizationOwner = (string)reader["RoleAuthorizationOwner"] }; rolelst.Add(objRole); } } return(rolelst); }
public void DeleteUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser) { var conn = StrConexion; using (var sqlCon = new SqlConnection(conn)) { sqlCon.Open(); var cmd = new SqlCommand { Connection = sqlCon, CommandType = CommandType.StoredProcedure, CommandText = "usp_UsersApplicationsRolesDelete" }; cmd.Parameters.AddWithValue("@UserId", usersApplicationsRoles.UserId); cmd.Parameters.AddWithValue("@ApplicationName", usersApplicationsRoles.ApplicationName); cmd.Parameters.AddWithValue("@RoleName", usersApplicationsRoles.RoleName); cmd.Parameters.AddWithValue("@DeclineDate", Convert.ToDateTime(usersApplicationsRoles.DeclineDate)); cmd.Parameters.AddWithValue("@ModificationUserId", registerUser.UserId); cmd.ExecuteNonQuery(); } }
public void AddNewUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser) { var conn = StrConexion; using (var sqlCon = new SqlConnection(conn)) { sqlCon.Open(); var cmd = new SqlCommand { Connection = sqlCon, CommandType = CommandType.StoredProcedure, CommandText = "usp_UsersApplicationsRolesInsert" }; cmd.Parameters.AddWithValue("@UserId", usersApplicationsRoles.UserId); cmd.Parameters.AddWithValue("@ApplicationId", usersApplicationsRoles.ApplicationId); cmd.Parameters.AddWithValue("@RoleId", usersApplicationsRoles.RoleId); cmd.Parameters.AddWithValue("@CreationUserId", registerUser.UserId); //cmd.Parameters.AddWithValue("@DeclineDate", Convert.ToDateTime(usersApplicationsRoles.DeclineDate)); cmd.Parameters.AddWithValue("@DeclineDate", Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(usersApplicationsRoles.DeclineDate)))); cmd.ExecuteNonQuery(); } }
public List <UsersApplicationsRoles> GetApplicationUsersList(ApplicationPMX applicationPMX) { var conn = StrConexion; var lstAppUserRol = new List <UsersApplicationsRoles>(); using (var sqlCon = new SqlConnection(conn)) { sqlCon.Open(); var cmd = new SqlCommand { Connection = sqlCon, CommandType = CommandType.StoredProcedure, CommandText = "usp_ApplicationUsersByApplicationId" }; cmd.Parameters.AddWithValue("@ApplicationId", applicationPMX.ApplicationId); var da = new SqlDataAdapter(); var ds = new DataSet(); da.SelectCommand = cmd; da.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { var objAppUserRole = new UsersApplicationsRoles(); objAppUserRole.UserId = dr["UserId"].ToString(); objAppUserRole.ApplicationId = Convert.ToInt32(dr["ApplicationId"]); objAppUserRole.ApplicationName = dr["ApplicationName"].ToString(); lstAppUserRol.Add(objAppUserRole); } } } return(lstAppUserRol); }
public List <UsersApplicationsRoles> FindApplicationforUser(string strUser) { var daApplication = new ApplicationDA(_configuration); var lstAppUserRol = new List <UsersApplicationsRoles>(); var ds = daApplication.FindApplicationforUser(strUser); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow item in ds.Tables[0].Rows) { var objAppUserRole = new UsersApplicationsRoles { ApplicationId = Convert.ToInt32(item[0]), ApplicationName = item[1].ToString(), ApplicationDescription = item[2].ToString() }; if (!item[3].ToString().Equals(string.Empty)) { objAppUserRole.ValidityStartDate = string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(item[3])); } if (!item[4].ToString().Equals(string.Empty)) { objAppUserRole.DeclineDate = string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(item[4])); } objAppUserRole.Observations = item[5].ToString(); objAppUserRole.EmployeeNames = item[6].ToString(); lstAppUserRol.Add(objAppUserRole); } } return(lstAppUserRol); }
public Response AddNewUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser) { var response = new Response { Message = "Sin inicializar", Result = false }; try { #region AddUserDataValidation if (string.IsNullOrEmpty(usersApplicationsRoles.UserId)) { response.Message = "El usuario no puede estar vacío"; return(response); } //Se valida que no exista previamente el rol asignado al usuario var usersApplicationsRoleLogic = new UsersApplicationsRolesLogic(_configuration); var lstprofileFull = usersApplicationsRoleLogic.GetApplicationsRoleList(new User() { UserId = usersApplicationsRoles.UserId }, registerUser); usersApplicationsRoleLogic.Dispose(); var roleFinded = lstprofileFull.Find(a => a.ApplicationName == usersApplicationsRoles.ApplicationName && a.RoleName == usersApplicationsRoles.RoleName); if (roleFinded != null) { response.Message = "El rol ya ha sido asignado previamente al usuario."; return(response); } //Se valida que no exista la prohibición de combinacion de roles EntityLibrary.ApplicationPMX application = new ApplicationPMX() { ApplicationId = usersApplicationsRoles.ApplicationId }; User usertoAdd = new User() { UserId = usersApplicationsRoles.UserId }; var roleLogic = new RoleLogic(_configuration); List <EntityLibrary.Role> roles = roleLogic.GetRoleList(application, usertoAdd); Role roleB = new Role() { RoleId = usersApplicationsRoles.RoleId }; foreach (var roleA in roles) { var resultExist = roleLogic.RoleNotAllowedCombinationExistAndDate(application, roleA, roleB); if (resultExist.Result) { response.Message = "No se puede agregar el rol al usuario, ya que no está permitida en la combinación de roles"; return(response); } } roleLogic.Dispose(); if (string.IsNullOrEmpty(usersApplicationsRoles.ApplicationId.ToString())) { response.Message = "El campo IdAplicacion no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(usersApplicationsRoles.RoleId.ToString())) { response.Message = "El campo IdRole no puede estar vacío"; return(response); } var dateRole = Convert.ToDateTime(usersApplicationsRoles.DeclineDate); if (Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", dateRole)) < Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", DateTime.Now))) { response.Message = "La fecha ingresada no puede ser menor a la fecha actual, favor de verificar."; return(response); } if (registerUser == null) { response.Message = "No se ha especificado el usuario con permisos para registrar"; return(response); } #endregion var usersApplicationsRoleDa = new UsersApplicationsRoleDA(_configuration); usersApplicationsRoleDa.AddNewUsersApplicationsRoles(usersApplicationsRoles, registerUser); usersApplicationsRoleDa.Dispose(); #region logRegister var log = new Log { Application = new ApplicationPMX { ApplicationName = _applicationName }, EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Agregó el rol {0}-{1} de la aplicación {2}-{3} al usuario {4} Vigente hasta: {5}.", usersApplicationsRoles.RoleId, usersApplicationsRoles.RoleName, usersApplicationsRoles.ApplicationId, usersApplicationsRoles.ApplicationName, usersApplicationsRoles.UserId, usersApplicationsRoles.DeclineDate) }; #endregion var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "Se registró correctamente el rol {0} de la aplicación {1} al userId {2} - {3}."; response.Result = true; } catch (Exception err) { if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint") { var log = new Log { EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Se intentó agregar al usuario {0} al esquema de seguridad, pero ya existe previamente", registerUser.UserId), Application = new ApplicationPMX { ApplicationName = _applicationName } }; var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "El usuario ya cuenta con el role seleccionado."; return(response); } response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture)); return(response); } return(response); }
public Response DelUsersApplicationsRoles(UsersApplicationsRoles usersApplicationsRoles, User registerUser) { var response = new Response { Message = "Sin inicializar", Result = false }; try { #region AddUserDataValidation if (string.IsNullOrEmpty(usersApplicationsRoles.UserId)) { response.Message = "El usuario no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(usersApplicationsRoles.ApplicationId.ToString())) { response.Message = "El campo IdAplicacion no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(usersApplicationsRoles.RoleId.ToString())) { response.Message = "El campo IdRole no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(usersApplicationsRoles.DeclineDate.ToString())) { response.Message = "El campo declinedate no puede estar vacío"; return(response); } if (registerUser == null) { response.Message = "No se ha especificado el usuario con permisos para registrar"; return(response); } #endregion var usersApplicationsRoleDa = new UsersApplicationsRoleDA(_configuration); usersApplicationsRoleDa.DeleteUsersApplicationsRoles(usersApplicationsRoles, registerUser); usersApplicationsRoleDa.Dispose(); #region logRegister var log = new Log { Application = new ApplicationPMX { ApplicationName = _applicationName }, EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Declinó el rol {0} de la aplicación {1} al usuario {2}. Fecha declinación {3} ", usersApplicationsRoles.RoleName, usersApplicationsRoles.ApplicationName, usersApplicationsRoles.UserId, usersApplicationsRoles.DeclineDate) }; #endregion var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "Se declinó correctamente el usuario para uso de aplicaciones."; response.Result = true; } catch (Exception err) { if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint") { var log = new Log { EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Se intentó declinar al usuario {0} al esquema de seguridad, pero ya existe previamente", usersApplicationsRoles.UserId), Application = new ApplicationPMX { ApplicationName = _applicationName } }; var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "El usuario ha sido declinado previamente"; return(response); } response.Message = string.Format("Ocurrio un error al intentar agregar el usuario. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture)); return(response); } return(response); }
public Response UpdateRoleOperations(ApplicationPMX application, Role role, List <Operation> operationList, User registerUser, int tipoApp) { var response = new Response { Message = "Sin inicializar", Result = false }; try { //aplicationValidation var applicationLogic = new ApplicationLogic(_configuration); var applicationList = applicationLogic.GetApplicationList(); applicationLogic.Dispose(); var applicationFinded = applicationList.Find(app => app.ApplicationName == application.ApplicationName); if (applicationFinded == null) { response.Message = string.Format("La aplicación {0} especificada no existe en el esquema de seguridad", application.ApplicationName); return(response); } //User validation var userLogic = new UserLogic(_configuration); var userFinded = userLogic.FindUser(registerUser.UserId); userLogic.Dispose(); if (userFinded == null) { response.Message = string.Format( "El usuario {0} de registro no se encontró en el esquema de seguridad", registerUser.UserId); return(response); } //Validate Role for application var userApplicationRole = new UsersApplicationsRoles { ApplicationId = applicationFinded.ApplicationId }; var roleDa = new RoleDA(_configuration); var roleList = roleDa.GetRoleforApplication(userApplicationRole, tipoApp); roleDa.Dispose(); var roleFinded = roleList.Find(rol => rol.RoleName == role.RoleName); if (roleFinded == null) { response.Message = string.Format("El rol {0} especificado no existe en el esquema de seguridad para la aplicación {1}.", role.RoleName, application.ApplicationName); return(response); } //Validate existing operations in applications and add operationProperties var operationDa = new OperationDA(_configuration); var appOperations = operationDa.GetOperationsList(applicationFinded); var operationsToAddList = new List <Operation>(); foreach (var operation in operationList) { var opfinded = appOperations.Find(op => op.OperationName == operation.OperationName); if (opfinded == null) { response.Message = string.Format("La operación {0} especificada no existe en el esquema de seguridad para la aplicación {1}.", operation.OperationName, application.ApplicationName); return(response); } operationsToAddList.Add(opfinded); } //Delete all operations for role var currentOperations = operationDa.GetRoleOperations(roleFinded); operationDa.Dispose(); foreach (var operationToDelete in from operationToDelete in currentOperations let deleteResponse = DeleteOperationToRole(applicationFinded, operationToDelete, roleFinded, userFinded) where !deleteResponse.Result select operationToDelete) { response.Message = string.Format("No se pudo actualizar la operación {0} en el esquema de seguridad.", operationToDelete.OperationName); return(response); } //Add all operations for role foreach (var operationToAdd in from operationToAdd in operationsToAddList let addResponse = AddOperationToRole(applicationFinded, operationToAdd, roleFinded, userFinded) where !addResponse.Result select operationToAdd) { response.Message = string.Format("No se pudo actualizar la operación {0} en el esquema de seguridad.", operationToAdd.OperationName); return(response); } //LogActivity var log = new Log { Application = applicationFinded , EventTypeId = LogTypeEnum.Notification , EventUser = registerUser , LogDescription = string.Format("Se actualizaron las operaciones del rol {0} de la aplicación {1}.", roleFinded.RoleName, applicationFinded.ApplicationName) }; var loglogic = new LogLogic(_configuration); var resultLog = loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = string.Format(resultLog.Result ? "Se actualizaron las operaciones del rol {0} de la aplicación {1}." : "Se actualizaron las operaciones del rol {0} de la aplicación {1}. Pero no se pudo registrar el movimiento en bitácora.", roleFinded.RoleName, applicationFinded.ApplicationName); response.Result = true; } catch (Exception) { response.Message = string.Format("Ocurrio un error al actualizar las operaciones del rol {0} de la aplicación {1}.", application.ApplicationName, registerUser); } return(response); }
public Response AddRoleToApplication(ApplicationPMX application, Role role, User registerUser, int tipo) { var response = new Response { Message = "Sin inicializar", Result = false }; var roleDa = new RoleDA(_configuration); try { //aplicationValidation var applicationLogic = new ApplicationLogic(_configuration); var applicationList = applicationLogic.GetApplicationList(); applicationLogic.Dispose(); var applicationFinded = applicationList.Find(app => app.ApplicationName == application.ApplicationName); if (applicationFinded == null) { response.Message = string.Format("La aplicación {0} especificada no existe en el esquema de seguridad", application.ApplicationName); return(response); } //User validation var userLogic = new UserLogic(_configuration); var userFinded = userLogic.FindUser(registerUser.UserId); userLogic.Dispose(); if (userFinded == null) { response.Message = string.Format( "El usuario {0} de registro no se encontró en el esquema de seguridad", registerUser.UserId); return(response); } //Role validation var userApplicationRole = new UsersApplicationsRoles() { ApplicationId = applicationFinded.ApplicationId }; var roleList = roleDa.GetRoleforApplication(userApplicationRole, tipo); var roleAlreadyFinded = roleList.Find(rolesearched => rolesearched.RoleName == role.RoleName); if (roleAlreadyFinded != null) { response.Message = string.Format("El nombre {0} del rol no puede ser repetido.", role.RoleName); return(response); } //TODO:Validar nombre con caracteres distintos //Roleregister roleDa.AddRole(role, userFinded); //LogActivity var log = new Log { Application = applicationFinded , EventTypeId = LogTypeEnum.Notification , EventUser = registerUser , LogDescription = string.Format("Se agregó el rol {0} a la aplicación {1}.", role.RoleName, applicationFinded.ApplicationName) }; var loglogic = new LogLogic(_configuration); var resultLog = loglogic.InsertLogEvent(log); loglogic.Dispose(); if (resultLog.Result) { response.Message = string.Format("Se agregó el rol {0} a la aplicación {1}.", role.RoleName, applicationFinded.ApplicationName); response.Result = true; } else { response.Message = string.Format("Se agregó el rol {0} a la aplicación {1}. Pero no se pudo registrar el movimiento en bitácora.", role.RoleName, applicationFinded.ApplicationName); response.Result = true; } } catch (Exception err) { response.Message = string.Format("Ocurrio un error. {0}", err.Message); } roleDa.Dispose(); return(response); }
public Response AddNewRole(Role role, User registerUser, int tipo) { var response = new Response { Message = "Sin inicializar", Result = false }; var userDa = new UserDA(_configuration); var roleDa = new RoleDA(_configuration); try { #region AddUserDataValidation if (role.ApplicationId < 0) { response.Message = "El IdAplicación no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(role.RoleName)) { response.Message = "El campo Nombre no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(role.RoleDescription)) { response.Message = "El campo descripción no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(role.RoleAuthorizationUserId)) { response.Message = "El campo autorizador no puede estar vacío"; return(response); } if (string.IsNullOrEmpty(role.RoleAuthorizationOwner)) { response.Message = "El campo cargo no puede estar vacío"; return(response); } if (registerUser == null) { response.Message = "No se ha especificado el usuario con permisos para registrar"; return(response); } var objUser = userDa.FindUser(role.RoleAuthorizationUserId); if (objUser == null) { response.Message = "La clave del autorizador no es válida o no existe, favor de validar."; return(response); } #endregion //Valida Existencia Role var application = new UsersApplicationsRoles { ApplicationId = role.ApplicationId, UserId = registerUser.UserId }; var lstrole = roleDa.GetRoleforApplication(application, tipo); var iRes = 0; if (lstrole.Any(roles => roles.RoleName.Equals(role.RoleName))) { iRes = 1; } if (iRes <= 0) { roleDa.AddRole(role, registerUser); #region logRegister var log = new Log { Application = new ApplicationPMX { ApplicationName = _applicationName }, EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Agregó el rol {0}-{1} a la aplicación id {2}. Vigencia: {3} Autorizador rol: {4} Cargo autorizador:{5} Descripción: {6}", role.RoleId, role.RoleName, role.ApplicationId, role.DeclineDate, role.RoleAuthorizationUserId, role.RoleAuthorizationOwner, role.RoleDescription) }; #endregion var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "Se registró correctamente el rol {0} para la Aplicación {1}"; response.Result = true; } else { response.Message = "Ya esta asignado el rol a la aplicación, favor de verificar."; response.Result = false; } } catch (Exception err) { if (err.Message.Substring(0, 35) == "Violation of PRIMARY KEY constraint") { var log = new Log { EventUser = registerUser, EventTypeId = LogTypeEnum.Notification, LogDescription = string.Format("Se intentó agregar el rol {0} al esquema de seguridad, pero ya existe previamente", role.RoleId), Application = new ApplicationPMX { ApplicationName = _applicationName } }; var loglogic = new LogLogic(_configuration); loglogic.InsertLogEvent(log); loglogic.Dispose(); response.Message = "El rol ha sido registrado previamente"; return(response); } response.Message = string.Format("Ocurrio un error al intentar agregar el rol. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture)); return(response); } userDa.Dispose(); roleDa.Dispose(); return(response); }