Skip to content

Instantly share code, notes, and snippets.

@vlapenkov
vlapenkov / rank.sql
Last active January 22, 2024 14:31
Использование rank в выражении postgres
select carrier.id , cc.car_id , rank (*) over (partition by carrier_id ORDER BY cc.created DESC)
from carrier.carrier carrier join carrier.carrier_car cc on carrier.id = cc.carrier_id
order by carrier.id
public static Expression<Func<TEntity, bool>> CreateExpression<TEntity>(LambdaExpression baseLambda, Expression<Func<TEntity, bool>> filter) where TEntity : class
{
var param = baseLambda.Parameters[0];
var left = baseLambda.Body;
var right = filter.Body.ReplaceParameter(filter.Parameters[0], param);
var result = Expression.AndAlso(left, right);
return Expression.Lambda<Func<TEntity, bool>>(result, param);
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
// Данный файл генерирует класс SampleDto в TextTemplate1.cs файле
@vlapenkov
vlapenkov / crossapply.sql
Created June 29, 2019 14:27
Cross apply
/*
* по каждому производителю выбираем 3 топовых продукта
* смысл в том что producers.producerid - можем передавать в нижестоящий запрос либо в
* нижестоящую функцию возвращающую табличное значение
*/
SELECT producers.*, productso.*
FROM producers
CROSS APPLY
(
@vlapenkov
vlapenkov / joindata.sql
Created June 29, 2019 13:51
Join data from two sql servers
select prRemote.*,prLocal.* from [193.107.181.75].YstTerminal.dbo.Producers prRemote full outer join YstTerminal.dbo.Producers prLocal
on prRemote.Producerid=prLocal.Producerid
where prRemote.producerid is null or prLocal.ProducerId is null
/*
select count(*) from [193.107.181.75].YstTerminal.dbo.Producers
select count(*) from YstTerminal.dbo.Producers
*/
@vlapenkov
vlapenkov / MemoryCacheManager.cs
Created December 21, 2018 12:09
MemoryCacheManager
public class MemoryCacheManager
{
#region Fields
private readonly IMemoryCache _cache;
/// <summary>
/// All keys of cache
/// </summary>
/// <remarks>Dictionary value indicating whether a key still exists in cache</remarks>
@vlapenkov
vlapenkov / Filters.cs
Created December 4, 2018 04:38
Filters asp core
/// <summary>
/// Такой аттрибут надо явно регистрировать в контейнере зависимостей
/// синтаксис использования [ServiceFilter(typeof(SomeActionFilter))]
/// </summary>
public class SomeActionFilter: ActionFilterAttribute
{
private ApplicationDbContext _appDbContext;
public SomeActionFilter(ApplicationDbContext appDbContext)
{
@vlapenkov
vlapenkov / Startup.cs
Created September 25, 2018 04:35
Manually set culture in asp core app
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
// Add framework services.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
@vlapenkov
vlapenkov / script.js
Created September 11, 2018 12:35
Ajax client form validation
/* usage
* ключи обязательно должны быть id или name полей
если не указаны - отображается только ValidationSummary
showErrors($form,
{
"Email": "bad email",
"CompanyName": "bad company name"
}
);
public abstract class BaseController<T> : Controller where T : BaseController<T>
{
private DbCachingService _dbCs;
protected DbCachingService DbCS => _dbCs?? (_dbCs= (DbCachingService)HttpContext.RequestServices.GetService(typeof (DbCachingService)));
private ApplicationDbContext _dbContext;
protected ApplicationDbContext DbContext => _dbContext ?? (_dbContext = (ApplicationDbContext)HttpContext.RequestServices.GetService(typeof(ApplicationDbContext)));