Пример #1
0
        public Response RoleNotAllowedCombinationExistAndDate(ApplicationPMX application, Role roleA, Role roleB)
        {
            //Se debe de regresar falso si no existe y se debe de interpretar en la llamada de la funcion
            var response = new Response {
                Message = "No existe la combinacion", Result = true
            };
            var roleDa = new RoleDA(_configuration);

            try
            {
                response.Result = roleDa.RoleNotAllowedCombinationExistAndDate(application, roleA, roleB);
                if (response.Result)
                {
                    response.Message =
                        string.Format(
                            "La combinación no permitida de rol se encuentra registrada.");
                }
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al verificar si la combinacion de operaciones no permititda existe. {0}",
                        e.Message);
                response.Result = true;
            }
            roleDa.Dispose();
            return(response);
        }
Пример #2
0
        public Response DeleteRoleCombinationNotAllowed(ApplicationPMX application, Role roleA, Role roleB)
        {
            //Se debe de regresar falso si no existe y se debe de interpretar en la llamada de la funcion
            var response = new Response {
                Message = "No existe la combinacion", Result = false
            };
            var roleDa = new RoleDA(_configuration);

            try
            {
                roleDa.DeleteRoleNotAllowedCombination(application, roleA, roleB);
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al eliminar la combinacion de operaciones. {0}",
                        e.Message);
                response.Result = false;
            }
            response.Result  = true;
            response.Message =
                string.Format(
                    "Se eliminó la combinación no permitida de la operacion {0} y {1} de la aplicacion {2}.", roleA.RoleName, roleB.RoleName, application.ApplicationName);

            roleDa.Dispose();
            return(response);
        }
Пример #3
0
        public void FindSession(User user, ApplicationPMX application, out bool sessionFinded, out bool isSessionValid)
        {
            sessionFinded  = false;
            isSessionValid = false;
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_LoggingSessionsSelect"
                };

                cmd.Parameters.Add("@SessionId", SqlDbType.UniqueIdentifier).Value = user.SessionId;
                cmd.Parameters.Add("@ApplicationId", SqlDbType.Int).Value          = application.ApplicationId;

                using (IDataReader reader = cmd.ExecuteReader())
                {
                    if (!reader.Read())
                    {
                        return;
                    }
                    sessionFinded  = true;
                    isSessionValid = (bool)reader["IsSessionValid"];
                }
            }
        }
Пример #4
0
        public User AddSession(User user, ApplicationPMX application)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_LoggingSessionsInsert"
                };

                cmd.Parameters.Add("@UserId", SqlDbType.NVarChar).Value        = user.UserId;
                cmd.Parameters.Add("@ApplicationId", SqlDbType.NVarChar).Value = application.ApplicationId;
                //cmd.Parameters.Add("@CreationUserId", System.Data.SqlDbType.NVarChar).Value = registerUser.UserId;

                using (IDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        user.SessionId = (Guid)reader["SessionID"];
                    }
                }
            }

            return(user);
        }
Пример #5
0
        public List <Role> GetRoleList(ApplicationPMX application)
        {
            var conn     = StrConexion;
            var roleList = new List <Role>();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_ApplicationRolesSelectByApplicationId"
                };

                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var role = new Role
                    {
                        RoleId = (int)reader["RoleId"]
                        ,
                        RoleName = (string)reader["RoleName"]
                        ,
                        RoleDescription = (string)reader["RoleDescription"]
                        ,
                        ApplicationId = (int)reader["ApplicationId"]
                    };
                    roleList.Add(role);
                }
            }
            return(roleList);
        }
        public Response AddOperationToRole(ApplicationPMX application, Operation operation, Role role, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };
            var operationDa = new OperationDA(_configuration);

            try
            {
                operationDa.AddOperationToRole(operation, role, registerUser);
                response.Message = string.Format("Se agregó la operacion {0} al rol {1}", operation.OperationName, role.RoleName);
                var log = new Log
                {
                    Application = application
                    ,
                    EventTypeId = LogTypeEnum.Notification
                    ,
                    EventUser = registerUser
                    ,
                    LogDescription = string.Format("Se agregó la operacion {0} al rol {1}", operation.OperationName, role.RoleName)
                };

                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                response.Result = true;
            }
            catch (Exception)
            {
                response.Message = string.Format("Ocurrio un error al intentar insertar operacion {0} al rol {1}",
                                                 operation.OperationName, role.RoleName);
            }

            return(response);
        }
        public List <ApplicationPMX> GetApplicationList(string strValue)
        {
            var conn    = StrConexion;
            var appList = new List <ApplicationPMX>();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_GetApplications"
                };

                cmd.Parameters.AddWithValue("@strCampo", strValue);
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var app = new ApplicationPMX
                    {
                        ApplicationId          = (int)reader["ApplicationId"],
                        ApplicationName        = (string)reader["ApplicationName"],
                        ApplicationDescription = (string)reader["ApplicationDescription"],
                        ApplicationPassword    = (string)reader["Observations"]
                    };
                    appList.Add(app);
                }
            }
            return(appList);
        }
Пример #8
0
        public Response GetRoleCombinationNotAllowedByApplication(ApplicationPMX application, out DataTable roleCombinationsNotAllowed)
        {
            var response = new Response {
                Result = false, Message = "Not initialized"
            };

            roleCombinationsNotAllowed = new DataTable();
            var roleDa = new RoleDA(_configuration);

            try
            {
                roleCombinationsNotAllowed = roleDa.GetRoleCombinationsNotAllowed(application);
                response.Message           =
                    string.Format("Se encontraron {0} combinaciones no permitidas para la aplicación {1}.",
                                  roleCombinationsNotAllowed.Rows.Count.ToString(), application.ApplicationName);
                response.Result = true;
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format("Ocurrió un error al obtener las combinaciones de rol no autorizadas. {0}",
                                  e.Message);
                response.Result = false;
            }
            roleDa.Dispose();
            return(response);
        }
        public void UpdApplication(ApplicationPMX application, User registerUser)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_ApplicationsUpdate"
                };

                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                cmd.Parameters.AddWithValue("@ApplicationName", application.ApplicationName);
                cmd.Parameters.AddWithValue("@ApplicationDescription", application.ApplicationDescription);
                cmd.Parameters.AddWithValue("@ValidityStartDate",
                                            Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(application.ValidityStartDate))));
                cmd.Parameters.AddWithValue("@DeclineDate",
                                            Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(application.DeclineDate))));
                cmd.Parameters.AddWithValue("@Observations", application.Observations);
                cmd.Parameters.AddWithValue("@TecnicalUserId", application.TecnicalUserId);
                cmd.Parameters.AddWithValue("@TecnicalUserIdDos", application.TecnicalUserIdDos);
                cmd.Parameters.AddWithValue("@TecnicalUserIdTres", application.TecnicalUserIdTres);
                cmd.Parameters.AddWithValue("@TecnicalUserIdCuatro", application.TecnicalUserIdCuatro);
                cmd.Parameters.AddWithValue("@FunctionalUserId", application.FunctionalUserId);
                cmd.Parameters.AddWithValue("@ModificationUserId", registerUser.UserId);
                cmd.Parameters.AddWithValue("@HashedPassword", application.ApplicationPassword);

                cmd.ExecuteNonQuery();
            }
        }
        public List <User> FindRoleUsers(Role role, ApplicationPMX application)
        {
            var usersApplicationsRoleDa = new UsersApplicationsRoleDA(_configuration);
            var userList = usersApplicationsRoleDa.FindRoleUsers(role, application);

            usersApplicationsRoleDa.Dispose();
            return(userList);
        }
        public List <Operation> GetOperationList(ApplicationPMX application)
        {
            var operationDa   = new OperationDA(_configuration);
            var listOperation = operationDa.GetOperationsList(application);

            operationDa.Dispose();
            return(listOperation);
        }
Пример #12
0
        public List <Role> GetRoleList(ApplicationPMX application)
        {
            var roleDa   = new RoleDA(_configuration);
            var listrole = roleDa.GetRoleList(application);

            roleDa.Dispose();
            return(listrole);
        }
        public object [] GetApplicationAdministration(ApplicationPMX application)
        {
            var applicationDa    = new ApplicationDA(_configuration);
            var applicationAdmin = applicationDa.GetApplicationAdministration(application);

            applicationDa.Dispose();
            return(applicationAdmin);
        }
        public ApplicationPMX FindApplication(int idApplication)
        {
            var conn   = StrConexion;
            var objApp = new ApplicationPMX();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_FindApplication"
                };

                cmd.Parameters.AddWithValue("@IdApplication", idApplication);

                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var app = new ApplicationPMX();

                    app.ApplicationDescription = (string)reader["ApplicationDescription"];
                    app.ApplicationId          = (int)reader["ApplicationId"];
                    app.ApplicationName        = (string)reader["ApplicationName"];
                    app.ValidityStartDate      = string.IsNullOrEmpty(reader["ValidityStartDate"].ToString())
                                                 ? string.Empty
                                                 : string.Format("{0:dd/MM/yyyy}", reader["ValidityStartDate"]);
                    app.DeclineDate = string.IsNullOrEmpty(reader["DeclineDate"].ToString())
                                                 ? string.Empty
                                                 : string.Format("{0:dd/MM/yyyy}", reader["DeclineDate"]);
                    app.Observations        = (string)reader["Observations"];
                    app.ApplicationPassword = (string)reader["HashedPassword"];
                    app.FunctionalUserId    = (string)reader["FunctionalUserId"];
                    app.TecnicalUserId      = (string)reader["TecnicalUserId"];
                    app.TecnicalUserIdDos   = reader["TecnicalUserIdDos"] == System.DBNull.Value
                                                 ? string.Empty
                                                 : (string)reader["TecnicalUserIdDos"];
                    app.TecnicalUserIdTres = reader["TecnicalUserIdTres"] == System.DBNull.Value
                                                 ? string.Empty
                                                 : (string)reader["TecnicalUserIdTres"];
                    app.TecnicalUserIdCuatro = reader["TecnicalUserIdCuatro"] == System.DBNull.Value
                                                 ? string.Empty
                                                 : (string)reader["TecnicalUserIdCuatro"];

                    objApp = app;
                }

                return(objApp);
            }
        }
        public Response AddApplicationAdministration(ApplicationPMX application, User user,
                                                     bool canAdminAppRolesAndOperations, bool canAdminUsers, string userId)
        {
            var response = new Response()
            {
                Message = "Not initizalizated", Result = false
            };
            string userIdRecuperado = string.Empty;

            if (!(string.IsNullOrEmpty(userId)))
            {
                string[] usuario = userId.Split(new Char[] { ' ' });
                userIdRecuperado = usuario[0];
            }

            try
            {
                var conn = StrConexion;

                using (var sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();

                    var cmd = new SqlCommand
                    {
                        Connection  = sqlCon,
                        CommandType = CommandType.StoredProcedure,
                        CommandText = "usp_ApplicationAdministrationInsert"
                    };

                    cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                    cmd.Parameters.AddWithValue("@UserId", userIdRecuperado);
                    cmd.Parameters.AddWithValue("@CanAdminApplicationRO", canAdminAppRolesAndOperations);
                    cmd.Parameters.AddWithValue("@CanAdminApplicationUsers", canAdminUsers);
                    cmd.ExecuteNonQuery();
                }
                response.Message = string.Format(
                    "Se agregó correctamente al usuario {0} para administrar la aplicacion {1}", user.UserId,
                    application.ApplicationName);
                response.Result = true;
            }
            catch (Exception exception)
            {
                response.Result  = false;
                response.Message = String.Format("Ocurrió un error al agregar al usuario. {0}", exception.Message);
            }

            return(response);
        }
        public object[] GetApplicationAdministration(ApplicationPMX application)
        {
            var response = new Response()
            {
                Message = "Not initizalizated", Result = false
            };
            var ds = new DataSet();

            object[] obj = null;
            try
            {
                var conn = StrConexion;

                using (var sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    var da = new SqlDataAdapter();

                    var cmd = new SqlCommand
                    {
                        Connection  = sqlCon,
                        CommandType = CommandType.StoredProcedure,
                        CommandText = "usp_ApplicationAdministrationSelect"
                    };

                    cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                    cmd.Parameters.AddWithValue("@UserId", application.FunctionalUserId);

                    da.SelectCommand = cmd;

                    da.Fill(ds);

                    obj = new object[ds.Tables[0].Rows.Count];

                    ds.Tables[0].Rows.CopyTo(obj, 0);
                }
            }
            catch (Exception exception)
            {
                response.Result  = false;
                response.Message = String.Format("Ocurrió un error al agregar al usuario. {0}", exception.Message);
            }

            return(obj);
        }
        public List <User> FindRoleUsers(Role role, ApplicationPMX application)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_UsersSelectByApplicationIdAndRoleId"
                };

                cmd.Parameters.Add("@ApplicationId", SqlDbType.NVarChar).Value = application.ApplicationId;
                cmd.Parameters.Add("@RoleId", SqlDbType.Int).Value             = role.RoleId;
                SqlDataReader reader   = cmd.ExecuteReader();
                var           userList = new List <User>();
                while (reader.Read())
                {
                    var user = new User
                    {
                        UserId         = (string)reader["UserId"],
                        EmployeeNumber = (string)reader["EmployeeNumber"]
                        ,
                        EmployeeNames = (string)reader["EmployeeNames"]
                        ,
                        EmployeeLastName = (string)reader["EmployeeLastName"]
                        ,
                        EmployeeEmail = (string)reader["EmployeeEmail"]
                        ,
                        Telephone = (string)reader["Telephone"]
                        ,
                        MobileTelephone = (string)reader["MobileTelephone"]
                        ,
                        DeclineDate = reader["DeclineDate"] == System.DBNull.Value ? "01/01/2000" : reader["DeclineDate"].ToString()
                        ,
                        DeclineDateSIO = reader["DeclineDateSIO"] == System.DBNull.Value ? "01/01/2000" : reader["DeclineDateSIO"].ToString()
                    };

                    userList.Add(user);
                }
                return(userList);
            }
        }
        public Response UpdateOperationCombinationNotAllowed(ApplicationPMX application, Operation operationA, Operation operationB, DateTime declineDate, User registerUser)
        {
            //Se debe de regresar falso si no existe y se debe de interpretar en la llamada de la funcion
            var response = new Response {
                Message = "No existe la combinacion", Result = false
            };
            var operationDA = new OperationDA(_configuration);

            try
            {
                operationDA.UpdateOperationNotAllowedCombination(application, operationA, operationB, declineDate, registerUser);

                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser      = registerUser,
                    EventTypeId    = LogTypeEnum.Notification,
                    LogDescription = string.Format("Se actualizó la fecha de vigencia de combinación no autorizada de operaciones. Operaciones {0} - {1} nueva fecha de vigencia {3}", operationA.OperationId.ToString() + " " + operationA.OperationName, operationB.OperationId.ToString() + " " + operationB.OperationName, declineDate.ToShortDateString())
                };

                #endregion
                var loglogic = new LogLogic(_configuration);
                loglogic.InsertLogEvent(log);
                loglogic.Dispose();
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al eliminar la combinacion de operaciones. {0}",
                        e.Message);
                response.Result = false;
            }
            response.Result  = true;
            response.Message =
                string.Format(
                    "Se eliminó la combinación no permitida de la operacion {0} y {1} de la aplicacion {2}.", operationA.OperationName, operationB.OperationName, application.ApplicationName);
            operationDA.Dispose();
            return(response);
        }
Пример #19
0
        public void DeleteRoleNotAllowedCombination(ApplicationPMX application, Role roleA, Role roleB)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_RolesCombinationNotAllowedDelete"
                };
                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                cmd.Parameters.AddWithValue("@RoleIdA", roleA.RoleId);
                cmd.Parameters.AddWithValue("@RoleIdB", roleB.RoleId);
                cmd.ExecuteNonQuery();
            }
        }
Пример #20
0
        public void UpdateSessionEndTime(User user, ApplicationPMX application)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_LoggingSessionsUpdate"
                };

                cmd.Parameters.Add("@SessionId", SqlDbType.UniqueIdentifier).Value = user.SessionId;
                cmd.Parameters.Add("@ApplicationId", SqlDbType.Int).Value          = application.ApplicationId;
                cmd.ExecuteNonQuery();
            }
        }
        public Response UpdApplicationAdministration(ApplicationPMX application, bool canAdminAppRolesAndOperations,
                                                     bool canAdminUsers, string strUser)
        {
            var response = new Response()
            {
                Message = "Not initizalizated", Result = false
            };

            string[] strUserRecuperado = strUser.Split(new Char[] { ' ' });
            try
            {
                var conn = StrConexion;

                using (var sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();

                    var cmd = new SqlCommand
                    {
                        Connection  = sqlCon,
                        CommandType = CommandType.StoredProcedure,
                        CommandText = "usp_ApplicationAdministrationUpdate"
                    };

                    cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                    cmd.Parameters.AddWithValue("@UserId", strUserRecuperado[0]);
                    cmd.Parameters.AddWithValue("@CanAdminApplicationRO", canAdminAppRolesAndOperations);
                    cmd.Parameters.AddWithValue("@CanAdminApplicationUsers", canAdminUsers);
                    cmd.ExecuteNonQuery();
                }
                response.Message =
                    string.Format("Se actualizó correctamente el o los usuarios para administrar la aplicacion {0}",
                                  application.ApplicationName);
                response.Result = true;
            }
            catch (Exception exception)
            {
                response.Result  = false;
                response.Message = String.Format("Ocurrió un error al agregar al usuario. {0}", exception.Message);
            }

            return(response);
        }
        public void DelApplication(ApplicationPMX application, User registerUser)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_ApplicationsDelete"
                };
                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                cmd.Parameters.AddWithValue("@DeclinateDate",
                                            Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(application.DeclineDate))));
                cmd.Parameters.AddWithValue("@ModificationUserId", registerUser.UserId);
                cmd.ExecuteNonQuery();
            }
        }
Пример #23
0
        public DataTable GetRoleCombinationsNotAllowed(ApplicationPMX application)
        {
            var       conn = StrConexion;
            DataTable dt   = new DataTable();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_RolesCombinationNotAllowedSelectByApplicationId"
                };
                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                SqlDataReader dr = cmd.ExecuteReader();
                dt.Load(dr);
            }
            return(dt);
        }
Пример #24
0
        public void InsertOperationNotAllowedCombination(ApplicationPMX application, Operation operationA, Operation operationB, DateTime declineDate, User registerUser)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_OperationsCombinationsNotAllowedInsert"
                };
                cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                cmd.Parameters.AddWithValue("@OperationIdA", operationA.OperationId);
                cmd.Parameters.AddWithValue("@OperationIdB", operationB.OperationId);
                cmd.Parameters.AddWithValue("@UserId", registerUser.UserId);
                cmd.Parameters.AddWithValue("@DeclineDate", declineDate);
                cmd.ExecuteNonQuery();
            }
        }
Пример #25
0
        public void UpdateRoleNotAllowedCombination(ApplicationPMX application, Role roleA, Role roleB, DateTime dtDeclineDate, User registerUser)
        {
            var conn = StrConexion;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_RolesCombinationNotAllowedUpdate"
                };
                cmd.Parameters.AddWithValue("@ApplicationID", application.ApplicationId);
                cmd.Parameters.AddWithValue("@RoleIdA", roleA.RoleId);
                cmd.Parameters.AddWithValue("@RoleIdB", roleB.RoleId);
                cmd.Parameters.AddWithValue("@UserId", registerUser.UserId);
                cmd.Parameters.AddWithValue("@DeclineDate", dtDeclineDate);
                cmd.ExecuteNonQuery();
            }
        }
        public void AddApplication(ApplicationPMX application, User registerUser)
        {
            string conn = string.Empty;

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_ApplicationsInsert"
                };

                cmd.Parameters.AddWithValue("@ApplicationName", application.ApplicationName);
                cmd.Parameters.AddWithValue("@ApplicationDescription", application.ApplicationDescription);
                cmd.Parameters.AddWithValue("@ValidityStartDate",
                                            Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(application.ValidityStartDate))));
                cmd.Parameters.AddWithValue("@Observations", application.Observations);
                cmd.Parameters.AddWithValue("@TecnicalUserId", application.TecnicalUserId);
                cmd.Parameters.AddWithValue("@TecnicalUserIdDos", application.TecnicalUserIdDos);
                cmd.Parameters.AddWithValue("@TecnicalUserIdTres", application.TecnicalUserIdTres);
                cmd.Parameters.AddWithValue("@TecnicalUserIdCuatro", application.TecnicalUserIdCuatro);
                cmd.Parameters.AddWithValue("@FunctionalUserId", application.FunctionalUserId);
                cmd.Parameters.AddWithValue("@CreationUserId", registerUser.UserId);
                cmd.Parameters.AddWithValue("@DeclineDate",
                                            Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(application.DeclineDate))));
                cmd.Parameters.AddWithValue("@HashedPassword", application.ApplicationPassword);

                cmd.Parameters.Add("@IdApplication", SqlDbType.Int).Direction = ParameterDirection.Output;

                cmd.ExecuteNonQuery();

                //SqlParameter idAppOut = cmd.Parameters.Add("@IdApplication", SqlDbType.Int);
                //idAppOut.Direction = ParameterDirection.Output;
                //application.ApplicationId =(int)  idAppOut.Value;

                application.ApplicationId = (int)cmd.Parameters["@IdApplication"].Value;
            }
        }
        public Response DelApplicationAdministration(ApplicationPMX application, User user)
        {
            var response = new Response()
            {
                Message = "Not initizalizated", Result = false
            };

            try
            {
                var      conn    = StrConexion;
                string[] usuario = user.UserId.Split(' ');
                using (var sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    var cmd = new SqlCommand
                    {
                        Connection  = sqlCon,
                        CommandType = CommandType.StoredProcedure,
                        CommandText = "usp_ApplicationAdministrationDelete"
                    };

                    cmd.Parameters.AddWithValue("@ApplicationId", application.ApplicationId);
                    cmd.Parameters.AddWithValue("@UserId", usuario[0]);
                    cmd.ExecuteNonQuery();
                }
                response.Message =
                    string.Format(
                        "Se elimino correctamente la clave del usuario funcional  {0} para administrar la aplicacion {1}",
                        user.UserId, application.ApplicationName);
                response.Result = true;
            }
            catch (Exception exception)
            {
                response.Result  = false;
                response.Message = String.Format("Ocurrió un error al agregar al usuario. {0}", exception.Message);
            }

            return(response);
        }
        public List <ApplicationPMX> GetApplicationList()
        {
            var conn    = StrConexion;
            var appList = new List <ApplicationPMX>();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_ApplicationsSelect"
                };

                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var app = new ApplicationPMX
                    {
                        ApplicationDescription = (string)reader["ApplicationDescription"]
                        ,
                        ApplicationId = (int)reader["ApplicationId"]
                        ,
                        ApplicationName = (string)reader["ApplicationName"]
                        ,
                        ApplicationPassword = (string)reader["HashedPassword"]
                        ,
                        DeclineDate = ((DateTime)reader["DeclineDate"]).ToShortDateString()
                        ,
                        DeclineDateDF = (DateTime)reader["DeclineDate"]
                        ,
                        ValidityStartDate = ((DateTime)reader["ValidityStartDate"]).ToShortDateString()
                    };
                    appList.Add(app);
                }
            }
            return(appList);
        }
        public Response ValidateSession(User userAuthenticaded, ApplicationPMX appFinded)
        {
            var response = new Response {
                Message = "Not initialized", Result = false
            };
            var sessionDataAccess = new SessionsDataAccess(_configuration);

            try
            {
                bool sessionFinded;
                bool isSessionValid;

                sessionDataAccess.FindSession(userAuthenticaded, appFinded, out sessionFinded, out isSessionValid);


                if (sessionFinded)
                {
                    if (isSessionValid)
                    {
                        sessionDataAccess.UpdateSessionEndTime(userAuthenticaded, appFinded);
                        response.Message = "Sesión valida. Se actualizó tiempo de expiración.";
                        response.Result  = true;
                        return(response);
                    }
                    response.Message = "Tiempo de sesión expirado. Autentique nuevamente";
                    return(response);
                }
                response.Message = "No se encontró la sesión especificada.";
            }
            catch (Exception err)
            {
                response.Message = string.Format("Ocurrio un error mientras se consultaba la sesión. Err. {0}",
                                                 err.Message);
            }

            sessionDataAccess.Dispose();
            return(response);
        }
        public Response OperationsNotAllowedCombinationExist(ApplicationPMX application, Operation operationA, Operation operationB)
        {
            //Se debe de regresar falso si no existe y se debe de interpretar en la llamada de la funcion
            var response = new Response {
                Message = "No existe la combinacion", Result = true
            };
            var operationDa = new OperationDA(_configuration);

            try
            {
                response.Result = operationDa.OperationNotAllowedCombinationExist(application,
                                                                                  operationA,
                                                                                  operationB);
                if (response.Result)
                {
                    response.Message =
                        string.Format(
                            "La combinación no permitida de la operacion {0} y {1} de la aplicacion {2}, se encuentra registrada.", operationA.OperationName, operationB.OperationName, application.ApplicationName);
                }
                else
                {
                    response.Message =
                        string.Format(
                            "La combinación no permitida de la operacion {0} y {1} de la aplicacion {2}, no existe registrada.", operationA.OperationName, operationB.OperationName, application.ApplicationName);
                }
                return(response);
            }
            catch (Exception e)
            {
                response.Message =
                    string.Format(
                        "Ocurrio un error al verificar si la combinacion de operaciones no permititda existe. {0}",
                        e.Message);
                response.Result = true;
            }
            operationDa.Dispose();
            return(response);
        }