Пример #1
0
 public static async Task <Result <T> > QuerySingle <T>(this DapperSqlDb db, string sql, object queryParams = null)
 {
     return(await db.Query <T>(sql, queryParams ?? new { })
            .Then(x => x.ToList())
            .Then(x =>
                  x.Count.Equals(1)
                 ? x.First()
                 : x.Count.Equals(0)
                     ? Result <T> .Errored(ResultStatus.MissingResource, $"No matching sql records found for {typeof(T).Name}")
                     : Result <T> .Errored(ResultStatus.ProcessingError, $"Expected exactly one sql record, but {x.Count} were returned.")));
 }
Пример #2
0
        public static async Task <Result <T> > QueryFirst <T>(this DapperSqlDb db, string sql, string itemContext, object queryParams = null)
        {
            if (string.Equals(itemContext, "string", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new ArgumentException("Developer Error: Item Context must be supplied when returning a primitive value from SQL.");
            }

            return(await db.Query <T>(sql, queryParams ?? new { })
                   .Then(x => x.ToList())
                   .Then(x =>
                         x.Any()
                        ? x.First()
                        : Result <T> .Errored(ResultStatus.MissingResource, $"No matching sql records found for {itemContext}")));
        }
Пример #3
0
 public static async Task <Result <IEnumerable <T> > > Query <T>(this DapperSqlDb db, string sql, DataTable dt, string tableValueParameterName, string tableValueParameterType)
 => await db.Query <T>(sql, new Dictionary <string, object> {
     { tableValueParameterName, dt.AsTableValuedParameter(tableValueParameterType) }
 });
Пример #4
0
 public static async Task <Result> Execute(this DapperSqlDb db, string sql, DataTable dt, string tableValueParameterName, string tableValueParameterType)
 => await db.Execute(sql, new Dictionary <string, object> {
     { tableValueParameterName, dt.AsTableValuedParameter(tableValueParameterType) }
 });
Пример #5
0
 public static async Task <Result <T> > QueryFirst <T>(this DapperSqlDb db, string sql, object queryParams = null)
 => await QueryFirst <T>(db, sql, typeof(T).Name, queryParams);