Skip to content

Instantly share code, notes, and snippets.

View ArseniySavin's full-sized avatar
😏

savars ArseniySavin

😏
View GitHub Profile
@ArseniySavin
ArseniySavin / OracleDynamicParameters.cs
Created August 6, 2016 02:58 — forked from vijayganeshpk/OracleDynamicParameters.cs
OracleDynamicParameters class for Dapper
using Dapper;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
public class OracleDynamicParameters : Dapper.SqlMapper.IDynamicParameters {
private static Dictionary<SqlMapper.Identity, Action<IDbCommand, object>> paramReaderCache = new Dictionary<SqlMapper.Identity, Action<IDbCommand, object>>( );
@ArseniySavin
ArseniySavin / TruncationString.cs
Last active August 23, 2016 08:33
Truncation string
public static string TruncateString(this string value, int maxLength)
{
int valueLength = value.Length;
const string CHARACTER_REPLACE = "...";
int startPosition = (maxLength / 3);
if(valueLength > maxLength)
{
try
{
@ArseniySavin
ArseniySavin / ConditionalExtensions.cs
Last active August 23, 2016 08:32
Unification ternary operation
public static class ConditionalExtensions
{
/// <summary>
/// Unification ternary operation
/// </summary>
/// <typeparam name="T">in type</typeparam>
/// <typeparam name="V">out type</typeparam>
/// <param name="baseObject">this object</param>
/// <param name="exp">boolean expression</param>
/// <param name="firstValue">true value</param>
@ArseniySavin
ArseniySavin / RulePrototype.cs
Last active July 25, 2022 09:29
Rule prototype pattern for validation
var phone = "+77771112233"
var record = GetRecordById(Id);
new RulePrototypeConcrete()
.With(new ChangePhoneRule(phone))
.With(new DeletePhoneRule(phone))
.With(new ExistsPhoneRule(phone))
.Execute(record);
public abstract class RulePrototype : IDisposable
@ArseniySavin
ArseniySavin / DataBaseWriterTraseListiner.cs
Created September 22, 2016 08:33
TraceListener with writing message to data base
/* Config setting
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
@ArseniySavin
ArseniySavin / ViewingJobsAtSqlServer_SQLPTR.sql
Created December 20, 2016 08:00
Viewing jobs at sqlServer
SELECT
j.name AS job_name
,ja.start_execution_date
,ISNULL(last_executed_step_id, 0) + 1 AS current_executed_step_id
,js.step_name
,ja.session_id
,js.command
,js.last_run_duration
,ja.job_id
FROM msdb.dbo.sysjobactivity ja
@ArseniySavin
ArseniySavin / ViewingDeadlockAtSqlServer_SQLPTR.sql
Created December 20, 2016 08:04
Viewing deadlock at sqlserver
SELECT cast(TextData AS XML)
,DatabaseName
,TransactionID
,HostName
,ApplicationName
,LoginName
,SPID
,Duration
,StartTime
,EndTime
#region MEF dll example
namespace MEF
{
public interface ICore
{
String PerformOperations(string data, string command);
string Operation(string data, IOperation oper);
}
@ArseniySavin
ArseniySavin / StringExtension.cs
Created March 29, 2018 03:31
Format placeholder in string
/// <summary>
/// Format placeholder in string
/// </summary>
public static class StringExtension
{
public static string FormatPlaceholder(this string inString, params string[] param)
{
int placeholderCounter = 0;
string[] placeholder = new string[param.Length];
class Program
{
static void Main(string[] args)
{
using (var log = new LogScope())
{
try
{
var tM = new TestModel
{