// PUT /webpages_Permissions/token/ //public HttpResponseMessage Put(string token, [FromBody]webpages_Permissions param) //{ // try // { // HttpResponseMessage retorno = new HttpResponseMessage(); // if (Permissoes.Autenticado(token)) // { // GatewayWebpagesPermissions.Update(token, param); // return Request.CreateResponse(HttpStatusCode.OK); // } // else // return Request.CreateResponse(HttpStatusCode.Unauthorized); // } // catch // { // throw new HttpResponseException(HttpStatusCode.InternalServerError); // } //} // PUT /webpages_Permissions/token/ public HttpResponseMessage Put(string token, [FromBody] Models.Object.RolesPermissions param) { // Abre nova conexão using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext()) { tbLogAcessoUsuario log = new tbLogAcessoUsuario(); try { HttpResponseMessage retorno = new HttpResponseMessage(); log = Bibliotecas.LogAcaoUsuario.New(token, JsonConvert.SerializeObject(param), "Put", _db); if (Permissoes.Autenticado(token, _db)) { GatewayWebpagesPermissions.Update(token, param, _db); log.codResposta = (int)HttpStatusCode.OK; Bibliotecas.LogAcaoUsuario.Save(log, _db); return(Request.CreateResponse(HttpStatusCode.OK)); } else { log.codResposta = (int)HttpStatusCode.Unauthorized; Bibliotecas.LogAcaoUsuario.Save(log, _db); return(Request.CreateResponse(HttpStatusCode.Unauthorized)); } } catch (Exception e) { log.codResposta = (int)HttpStatusCode.InternalServerError; log.msgErro = e.Message; Bibliotecas.LogAcaoUsuario.Save(log); throw new HttpResponseException(HttpStatusCode.InternalServerError); } } }
/// <summary> /// Altera webpages_Permissions /// </summary> /// <param name="param"></param> /// <returns></returns> public static void Update(string token, Models.Object.RolesPermissions param, painel_taxservices_dbContext _dbContext = null) { painel_taxservices_dbContext _db; if (_dbContext == null) { _db = new painel_taxservices_dbContext(); } else { _db = _dbContext; } try { if ((param.Inserir != null) && (param.Inserir.Count > 0)) { foreach (var item in param.Inserir) { _db.webpages_Permissions.Add(new webpages_Permissions { id_roles = param.Id_roles, id_method = (int)item }); } } if ((param.Deletar != null) && (param.Deletar.Count > 0)) { foreach (var item in param.Deletar) { _db.webpages_Permissions.Remove( _db.webpages_Permissions .Where(e => e.id_roles == param.Id_roles) .Where(e => e.id_method == item).First() ); } } _db.SaveChanges(); // set o controller principal if (param.Id_controller_principal != null) { // procura por um possível controller principal List <webpages_Permissions> permissoes = _db.webpages_Permissions .Where(p => p.id_roles == param.Id_roles) .Where(p => p.fl_principal == true).ToList <webpages_Permissions>(); foreach (var permissao in permissoes) { permissao.fl_principal = false; Update(token, permissao); } // set os metodos do controller para ser o principal permissoes = _db.webpages_Permissions .Where(p => p.id_roles == param.Id_roles) .Where(p => p.webpages_Methods.id_controller == param.Id_controller_principal).ToList <webpages_Permissions>(); foreach (var permissao in permissoes) { permissao.fl_principal = true; Update(token, permissao); } } // set o controller principal if (param.Id_controller_principal != null) { // procura por um possível controller principal List <webpages_Permissions> permissoes = _db.webpages_Permissions .Where(p => p.id_roles == param.Id_roles) .Where(p => p.fl_principal == true).ToList <webpages_Permissions>(); foreach (var permissao in permissoes) { permissao.fl_principal = false; Update(token, permissao); } // set os metodos do controller para ser o principal permissoes = _db.webpages_Permissions .Where(p => p.id_roles == param.Id_roles) .Where(p => p.webpages_Methods.id_controller == param.Id_controller_principal).ToList <webpages_Permissions>(); foreach (var permissao in permissoes) { permissao.fl_principal = true; Update(token, permissao); } } } catch (Exception e) { if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao alterar pessoa" : erro); } throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message); } finally { if (_dbContext == null) { // Fecha conexão _db.Database.Connection.Close(); _db.Dispose(); } } }