BL.Security.editar_rol C# (CSharp) Method

editar_rol() public method

public editar_rol ( long identity, string description, List grants, List revokes, long nuevoCentro ) : void
identity long
description string
grants List
revokes List
nuevoCentro long
return void
        public void editar_rol(long identity, string description, List<string> grants, List<string> revokes, long nuevoCentro)
        {
            try
            {
                var rolQuery = from rol in entidad.roles
                               where rol.id == identity
                               select rol;

                DataAccess.role rolTMP = rolQuery.First();
                rolTMP.descripcion = description;
                rolTMP.centro = nuevoCentro;

                foreach (string perm in grants)
                {
                    var permisoQuery = from per in entidad.permisos
                                       where per.id == perm
                                       select per;

                    rolTMP.permisos.Add(permisoQuery.First());
                }

                foreach (string perm in revokes)
                {
                    var permisoQuery = from per in entidad.permisos
                                       where per.id == perm
                                       select per;

                    rolTMP.permisos.Remove(permisoQuery.First());
                }
                entidad.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString() + " --Security.cs / editar_rol()");
            }
        }