예제 #1
0
        // 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);
                }
            }
        }
예제 #2
0
        /// <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();
                }
            }
        }