public int DelRoleOperation(RoleOperations roleOperations, User registerUser)
        {
            var conn       = StrConexion;
            var iResultado = 0;

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

                cmd.Parameters.Add("@RoleId", SqlDbType.Int).Value                  = roleOperations.RoleId;
                cmd.Parameters.Add("@OperationId", SqlDbType.Int).Value             = roleOperations.OperationId;
                cmd.Parameters.Add("@ModificationUserId", SqlDbType.NVarChar).Value = registerUser.UserId;
                cmd.Parameters.Add("@DeclineDate", SqlDbType.DateTime).Value        = Convert.ToDateTime(string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(roleOperations.DeclineDate)));

                iResultado = cmd.ExecuteNonQuery();
            }

            return(iResultado);
        }
 public string AddUserRole(RoleOperations ar)
 {
     using (DBEntities db = new DBEntities())
     {
         if (!db.User.Any(x => x.UserID == ar.UserId))
         {
             return("User does not exist.");
         }
         if (!db.Roles.Any(x => x.RoleID == ar.RoleId))
         {
             return("This role does not exist.");
         }
         if (db.UserRoles.Any(x => x.UserId == ar.UserId && x.RoleId == ar.RoleId))
         {
             return("User has already this role.");
         }
         var userRole = new UserRoles
         {
             RoleId = ar.RoleId,
             UserId = ar.UserId
         };
         db.UserRoles.Add(userRole);
         db.SaveChanges();
         return("Role has been added.");
     }
 }
        public List <RoleOperations> GetRoleOperations(Role role)
        {
            var conn = StrConexion;
            var roleOperationList = new List <RoleOperations>();

            using (var sqlCon = new SqlConnection(conn))
            {
                sqlCon.Open();
                var cmd = new SqlCommand
                {
                    Connection  = sqlCon,
                    CommandType = CommandType.StoredProcedure,
                    CommandText = "usp_GetoperationRole"
                };
                cmd.Parameters.AddWithValue("@RoleId", role.RoleId);

                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var roleOperations = new RoleOperations()
                    {
                        RoleId      = (int)reader["RoleId"],
                        OperationId = (int)reader["OperationId"]
                    };

                    roleOperationList.Add(roleOperations);
                }
            }

            return(roleOperationList);
        }
Exemple #4
0
        public List <RoleOperations> DsToOperationList(DataSet ds)
        {
            List <RoleOperations> rops = new List <RoleOperations>();

            if (DataValidate.CheckDataSetNotEmpty(ds))
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    RoleOperations rop = new RoleOperations();
                    rop.OperationID   = Convert.ToInt32(dr["Ope_ID"]);
                    rop.OperationName = dr["Ope_Name"].ToString();
                    rops.Add(rop);
                }
            }
            return(rops);
        }
 public string UpdateUserRole(RoleOperations ar)
 {
     using (DBEntities db = new DBEntities())
     {
         var userRole = db.UserRoles.FirstOrDefault(x => x.UserRolesID == ar.UserRoleId);
         if (userRole == null)
         {
             return("User does not exist.");
         }
         if (db.UserRoles.Any(x => x.UserId == ar.UserId && x.RoleId == ar.RoleId))
         {
             return("User has this role.");
         }
         userRole.RoleId = ar.RoleId;
         db.SaveChanges();
         return("Role has been updated.");
     }
 }
 public string RemoveUserRole(RoleOperations ar)
 {
     using (DBEntities db = new DBEntities())
     {
         if (ar.UserRoleId > 0)
         {
             var usrRole = db.UserRoles.FirstOrDefault(x => x.UserRolesID == ar.UserRoleId);
             if (usrRole != null)
             {
                 db.UserRoles.Remove(usrRole);
             }
             db.SaveChanges();
             return("Role has been removed.");
         }
         var userRole = db.UserRoles.FirstOrDefault(x => x.UserId == ar.UserId && x.RoleId == ar.RoleId);
         if (userRole == null)
         {
             return("Role/User does not exist.");
         }
         db.UserRoles.Remove(userRole);
         db.SaveChanges();
         return("Role has been removed.");
     }
 }
Exemple #7
0
        /// <summary>
        /// Initializes client properties.
        /// </summary>
        private void Initialize()
        {
            PaymentOperations  = new PaymentOperations(this);
            LocationOperations = new LocationOperations(this);
            BusinessOperations = new BusinessOperations(this);
            RoleOperations     = new RoleOperations(this);
            EmployeeOperations = new EmployeeOperations(this);
            WebhookOperations  = new WebhookOperations(this);

            SerializationSettings = new JsonSerializerSettings
            {
                Formatting            = Formatting.Indented,
                DateFormatHandling    = DateFormatHandling.IsoDateFormat,
                DateTimeZoneHandling  = DateTimeZoneHandling.Utc,
                NullValueHandling     = NullValueHandling.Ignore,
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                ContractResolver      = new ReadOnlyJsonContractResolver(),
                Converters            = new List <JsonConverter>
                {
                    new Iso8601TimeSpanConverter()
                }
            };

            DeserializationSettings = new JsonSerializerSettings
            {
                DateFormatHandling    = DateFormatHandling.IsoDateFormat,
                DateTimeZoneHandling  = DateTimeZoneHandling.Utc,
                NullValueHandling     = NullValueHandling.Ignore,
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                ContractResolver      = new ReadOnlyJsonContractResolver(),
                Converters            = new List <JsonConverter>
                {
                    new Iso8601TimeSpanConverter()
                }
            };
        }
        public Response AddNewRoleOperation(RoleOperations roleOperations, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser   = registerUser,
                    EventTypeId = LogTypeEnum.Notification,

                    /*LogDescription = string.Format("Se ha agregado la operacion {0} al rol {1}.", roleOperations.OperationId, roleOperations.RoleId)*/
                    LogDescription = string.Format("Agregó la operacion Id {0} al rol Id {1} Fecha vigencia: {2}", roleOperations.OperationId, roleOperations.RoleId, roleOperations.DeclineDate)
                };
                #endregion

                #region AddUserDataValidation
                if (roleOperations.RoleId <= 0)
                {
                    response.Message = "El campo role no puede estar vacío";
                    return(response);
                }

                if (roleOperations.OperationId <= 0)
                {
                    response.Message = "El campo Operación no puede estar vacío";
                    return(response);
                }

                if (registerUser == null)
                {
                    response.Message = "No se ha especificado el usuario con permisos para registrar";
                    return(response);
                }


                //Se valida que no exista la prohibición de combinacion de operaciones
                var operationlogic = new OperationLogic(_configuration);
                var role           = new Role {
                    RoleId = roleOperations.RoleId
                };
                Operation      operationB       = operationlogic.GetOperationById(roleOperations.OperationId);
                var            applicationLogic = new ApplicationLogic(_configuration);
                ApplicationPMX application      = applicationLogic.GetApplication(operationB.ApplicationId);
                applicationLogic.Dispose();
                /*Aqui hay que hacer algo*/

                List <Operation> operations = operationlogic.GetOperationRole(role);

                foreach (var operationA in operations)
                {
                    var resultExist = operationlogic.OperationsNotAllowedCombinationExistAndDate(application, operationA, operationB);

                    if (resultExist.Result)
                    {
                        response.Message =
                            "No se puede agregar operación al rol, ya que no está permitida en la combinación de operaciones";
                        return(response);
                    }
                }
                operationlogic.Dispose();


                #endregion
                var loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();


                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }

                //Validamos que no este asignada la operación al role
                var roleLogic    = new RoleLogic(_configuration);
                var lstOperacion = roleLogic.GetRoleOperation(roleOperations.RoleId);
                roleLogic.Dispose();
                var iRes = 0;

                if (lstOperacion.Any(operation => operation.OperationId.Equals(roleOperations.OperationId)))
                {
                    iRes = 1;
                }

                if (iRes <= 0)
                {
                    var roleOperationDa = new RoleOperationDA(_configuration);
                    roleOperationDa.AddNewRoleOperation(roleOperations, registerUser);
                    roleOperationDa.Dispose();
                    response.Message = "Se asocio correctamente la operación {0} al rol {1}";
                    response.Result  = true;
                }
                else
                {
                    response.Message = "La operación ya esta asignada a ese rol, favor de verificar.";
                }
            }
            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ó asignar la operación al role  {0} en el esquema de seguridad, pero ya existe previamente", roleOperations.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 asignar el rol. {0} {1}", err.Message, DateTime.Now.ToString(CultureInfo.InvariantCulture));
                return(response);
            }
            return(response);
        }
        public Response DelRoleOperation(RoleOperations roleOperations, User registerUser)
        {
            var response = new Response {
                Message = "Sin inicializar", Result = false
            };

            try
            {
                #region logRegister
                var log = new Log
                {
                    Application = new ApplicationPMX
                    {
                        ApplicationName = _applicationName
                    },
                    EventUser   = registerUser,
                    EventTypeId = LogTypeEnum.Notification,

                    LogDescription = string.Format("Declinó la operacion Id {0} al rol Id {1} Fecha vigencia: {2}", roleOperations.OperationId, roleOperations.RoleId, roleOperations.DeclineDate)
                };
                #endregion

                #region AddUserDataValidation
                if (roleOperations.RoleId <= 0)
                {
                    response.Message = "El campo role no puede estar vacío";
                    return(response);
                }

                if (roleOperations.OperationId <= 0)
                {
                    response.Message = "El campo Operación 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 loglogic    = new LogLogic(_configuration);
                var responseLog = loglogic.InsertLogEvent(log);
                loglogic.Dispose();
                if (!responseLog.Result)
                {
                    response.Message = string.Format("No se puede insertar en bitácorá el movimiento. {0}", responseLog.Message);
                    return(response);
                }
                var roleOperationDa = new RoleOperationDA(_configuration);
                roleOperationDa.DelRoleOperation(roleOperations, registerUser);
                roleOperationDa.Dispose();
                response.Message = "Se declino correctamente el rol para uso de operaciones.";
                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", roleOperations.RoleId),
                        Application    = new ApplicationPMX
                        {
                            ApplicationName =
                                _applicationName
                        }
                    };
                    var loglogic = new LogLogic(_configuration);
                    loglogic.InsertLogEvent(log);
                    loglogic.Dispose();
                    response.Message = "El usuario ha sido registrado 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);
        }