Skip to content

Instantly share code, notes, and snippets.

View lluisfranco's full-sized avatar
🖥️
Compiling...

Lluis Franco lluisfranco

🖥️
Compiling...
View GitHub Profile
private static void SFTP_Connect_And_Download_Sample()
{
var host = "sftp_server_address.com";
var port = 999;
var username = "your_username";
var passphrase = "your_passphrase";
var privateKeyLocalFilePath = @"your_localpath\...\PrivateKeyOpenSSH.ppk";
var remoteFolderPath = "/";
var localFolferPath = @"D:\locafiles\";
using (var conn = new AdomdConnection(connectionString))
{
conn.Open();
var commandText = @"SELECT
{
[Measures].[Gains Period],
[Measures].[Gains YTD],
[Measures].[Amount]
} ON COLUMNS,
[Valuation Dates Accumulated].[Hierarchy].[Year].Members ON ROWS
internal class MyResultDTO
{
[OLAPMemberNameAttribute("[Valuation Dates Accumulated].[Hierarchy].[Year].[MEMBER_CAPTION]")]
public string Year { get; set; }
[OLAPMemberNameAttribute("[Measures].[Gains Period]")]
public decimal? GainsPeriod { get; set; }
[OLAPMemberNameAttribute("[Measures].[Gains YTD]")]
public decimal? GainsYTD { get; set; }
public static List<T> Query<T>(this AdomdConnection conn, string commandText, params object[] parameters)
{
var commandTextParameters = ReplaceCommandTextParameters(commandText, parameters);
var cmd = new AdomdCommand(commandTextParameters, conn);
var dr = cmd.ExecuteReader();
return dr.ToList<T>();
}
public static List<T> ToList<T>(this IDataReader dr)
{
var list = new List<T>();
var obj = default(T);
while (dr.Read())
{
obj = Activator.CreateInstance<T>();
foreach (var prop in obj.GetType().GetProperties())
{
var columnDescription = getPropertyDescription(obj, prop.Name);
public class OLAPMemberNameAttribute : System.Attribute
{
string _Description = string.Empty;
public OLAPMemberNameAttribute(string description)
{
_Description = description;
}
public string Description { get { return _Description; } }
}
@lluisfranco
lluisfranco / ClassExtensions01.cs
Last active April 14, 2023 11:30
Map - Copy base class properties to derived class
public static TT Map<TT, ST>(this TT target, ST source) where TT : class
{
var tprops = typeof(TT).GetProperties().Where(x => x.CanWrite).ToList();
tprops.Where(x => x.CanWrite).ToList().ForEach(prop =>
{
var sp = source.GetType().GetProperty(prop.Name);
var tp = target.GetType().GetProperty(prop.Name);
if (sp != null && tp != null)
{
var value = sp.GetValue(source, null);