Pular para o conteúdo principal

Postagens

Metodo Find() no Entity Framework Core 1.0

Olá, Então você estava criando seu projeto com ORM Entity Framework Core 1.0 e no momento de  implementar a busca por id como de costume, você tentou utilizar o conhecido método find() e ele não existe nesta versão do framework... Bem, sem problemas. Existe uma forma de você mesmo criar um helper para implementar esta busca. Você pode criar uma classe statica como abaixo :D 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 public static class Extensions { public static TEntity Find<TEntity>( this DbSet<TEntity> set , params object [] keyValues) where TEntity : class { var context = ((IInfrastructure<IServiceProvider>) set ).GetService<DbContext>(); var entityType = context.Model.FindEntityType( typeof (TEntity)); var key = entityType.FindPrimaryKey(); var entries = context.ChangeTracker.Entries<TEnti...

Vex dialog: Customizando texto de botões e recebendo callback corretamente

 Olá, Muitos projetos utilizam ótima esta biblioteca chamada VEX para exibir alertas, confirms entre outros tipos de 'modals' para o usuário substituindo o tradicional comando alert("texto"); do navegador (que tem visual mais feinho xD). Neste post quero mostrar como é possível customizar o texto de botões do vex.dialog.open e do vex.dialog.confirm, visto que muitos tem esta dificuldade. Quando você consulta a documentação você acha a seguinte instrução: Então você pensa... ok vou fazer meu  vex dialog e sobreescrever as propriedades do confirm ou open na construção do componente. Ficando mais ou menos assim: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 vex.dialog.confirm({ message: "Deseja confirmar?" , buttons: { YES: { text: 'Claro! Agora mesmo.' , className: 'vex-dialog-button-primary vex-dialog-button vex-first' , }, NO: { text: 'Ahhh, não quero......

Adicionar IFrame fullscreen no site

Olá Tudo bem? Algumas vezes passamos pela necessidade de carregar conteúdo do site externo em nosso site. Uma das opções mais rápida é a de carregar um iframe fornecendo a URL do site desejado. Mas em algumas situações gostaríamos de abrir a página na mesma aba ou em uma nova dentro de nosso dominio mas com o IFrame em fullscreen e inicialmente mesmo tendo só o IFrame na página e adicionando regras de tamanho de 100% de largura e altura ele não ocupa toda a tela. Para resolver isto é muito simples. Veja o exemplo abaixo: <iframe style= "border: 0; position:absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%" src= "www.algumaurlaqui.com" ></iframe> Simplesmente adicionando o estilo CSS: border : 0 ; position :absolute ; top :0 ; left :0 ; right :0 ; bottom :0 ; width :100 %; height :100 % Você consegue fazer com que o IFrame ocupe toda tela. Espero ter ajudado ;) Até a próxima.

Problema: AntiForgeryToken: A Claim of Type NameIdentifier or IdentityProvider Was Not Present on Provided ClaimsIdentity

Muitas vezes  os usuários não saem apropriadamente do sistema ou acabam clicando no botão voltar do navegador. Ao tentar logar novamente o sistema acaba lançando exceção por já haver na lista de claims os dados do usuário autenticado. Para sanar este caso você pode na classe  Application_Start adicionar AntiForgeryConfig.UniqueClaimTypeIdentifier 1 2 3 4 5 6 7 8 protected void Application_Start () { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier; } Ao autenticar o usuario e adicionar os Claims você pode adicionar os parâmetros nameidenfier e identityprovider com os dados de seu usuário obtido em base de dados assim: 1 2 3 4 5 6 7 8 9 10 11 List<Claim> _claims = new List<Claim>(); _claims.AddRang...

No EditorOptionDefinition Export Found Error

Hoje ao abrir o meu visual studio e tentar abrir um arquivo me deparei com este erro. Utilizo o visual studio 2013 community e não havia visto este erro anteriormente. Para resolver este problema eu segui os seguintes passos: Fechar o visual studio Navegar até a pasta %LocalAppData%\Microsoft\VisualStudio\12.0\ Renomear a pasta ComponentModelCache  E por fim reabrir o visual studio. Agora tudo voltou a funcionar normalmente. :)

Habilitar gzip consulta ajax

Para poder habilitar esta funcionalidade você deve previamente ter instalado no servidor windows o serviço de compressão dinamica . Para habilitar o Gzip para consultas de ajax você deve ir até o seguinte diretório . C:\Windows\System32\inetsrv\config\applicationHost.config <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">             <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />             <staticTypes>                 <add mimeType="text/*" enabled="true" />                 <add mimeType="message/*" enabled="true" />          <add mimeType="application/x-javascript" enabled="true" />         <add mimeType="application/json" enabled="true" />           ...

Upload de arquivos sem refresh na página

Olá. Algumas vezes temos a necessidade de enviar dados sem dar refresh na página. Mas isto torna-se mais engenhoso quando entre estes dados temos arquivos. Para solucionar este cenário temos uma facilidade com jQuery. Para enviar arquivos é necessário trabalhar com os parâmetros de ajax contentType e processData. No exemplo abaixo temos uma função genérica que servirá tanto para formulário com ou sem imagem: $(form).on('submit', function () {     var data;     var contentType = "application/x-www-form-urlencoded";     var processData = true;     if ($(this).attr('enctype') == 'multipart/form-data') {         data = new FormData($(this).get(0));//seleciona classe form-horizontal adicionada na tag form do html         contentType = false;         processData = false;     } else {       ...