/// <summary> /// Insert Async. /// </summary> /// <param name="entity" /> /// <param name="connectionString" /> public static async Task <ReferenceDao> InsertAsync(this ReferenceDao entity, string connectionString) { // Sql string sql = @"INSERT INTO [Utility].[Reference] ([Id], [Name], [Description], [CountryCode], [Archived], [CreatedOn], [ChangedOn]) OUTPUT [INSERTED].Id VALUES(@Id, @Name, @Description, @CountryCode, @Archived, @CreatedOn, @ChangedOn)" ; // Parameters DynamicParameters para = new DynamicParameters(); para.Add("@Id", entity.Id); para.Add("@Name", entity.Name); para.Add("@Description", entity.Description); para.Add("@CountryCode", entity.CountryCode); para.Add("@Archived", entity.Archived); para.Add("@CreatedOn", entity.CreatedOn); para.Add("@ChangedOn", entity.ChangedOn); // Db Operation using (var con = new SqlConnection(connectionString)) { await con.OpenAsync(); // Transaction using (IDbTransaction tn = con.BeginTransaction()) { try { var item = await con.QuerySingleAsync <Guid>(sql, para, tn); tn.Commit(); entity.Id = item; return(entity); } catch (Exception e) { tn.Rollback(); if (con.State != ConnectionState.Closed) { con.Close(); } return(null); } } } }
/// <summary> /// Update Async. /// </summary> /// <param name="entity" /> /// <param name="connectionString" /> public static async Task <ReferenceDao> UpdateAsync(this ReferenceDao entity, string connectionString) { // Sql string sql = @"UPDATE [Utility].[Reference] SET Name=@Name,Description=@Description,CountryCode=@CountryCode,Archived=@Archived,CreatedOn=@CreatedOn,ChangedOn=@ChangedOn WHERE Id=@Id;" ; // Parameters DynamicParameters para = new DynamicParameters(); para.Add("@Id", entity.Id); para.Add("@Name", entity.Name); para.Add("@Description", entity.Description); para.Add("@CountryCode", entity.CountryCode); para.Add("@Archived", entity.Archived); para.Add("@CreatedOn", entity.CreatedOn); para.Add("@ChangedOn", entity.ChangedOn); // Db Operation using (var con = new SqlConnection(connectionString)) { await con.OpenAsync(); // Transaction using (IDbTransaction tn = con.BeginTransaction()) { try { var item = await con.ExecuteAsync(sql, para, tn); tn.Commit(); return(entity); } catch (Exception e) { tn.Rollback(); if (con.State != ConnectionState.Closed) { con.Close(); } return(null); } } } }