/// <summary> /// This handled optional save to database with various validation and/or handlers /// Note: if it did save successfully to the database it alters the message /// </summary> /// <param name="db"></param> /// <param name="bizStatus"></param> /// <returns></returns> protected void SaveChangedIfRequiredAndNoErrors(DbContext db, IBizActionStatus bizStatus) { if (!bizStatus.HasErrors && RequiresSaveChanges) { bizStatus.CombineStatuses(db.SaveChangesWithOptionalValidation( bizStatus.ShouldValidateSaveChanges(WrappedConfig.Config), WrappedConfig.Config)); WrappedConfig.Config.UpdateSuccessMessageOnGoodWrite(bizStatus, WrappedConfig.Config); } }
/// <summary> /// This handled optional save to database with various validation and/or handlers /// Note: if it did save successfully to the database it alters the message /// </summary> /// <param name="db"></param> /// <param name="bizStatus"></param> /// <returns></returns> protected async Task SaveChangedIfRequiredAndNoErrorsAsync(DbContext db, IBizActionStatus bizStatus) { if (!bizStatus.HasErrors && RequiresSaveChanges) { bizStatus.CombineStatuses(await db.SaveChangesWithOptionalValidationAsync( bizStatus.ShouldValidateSaveChanges(WrappedConfig.Config), WrappedConfig.Config) .ConfigureAwait(false)); WrappedConfig.Config.UpdateSuccessMessageOnGoodWrite(bizStatus, WrappedConfig.Config); } }
/// <summary> /// This handled optional save to database with various validation and/or handlers /// Note: if it did save successfully to the database it alters the message /// Note: Only be used if type of DbContext is being used and supplied via IRepository /// </summary> /// <param name="repository"></param> /// <param name="bizStatus"></param> /// <returns></returns> protected void SaveChangedIfRequiredAndNoErrors(object repository, IBizActionStatus bizStatus) { if (repository.GetType().IsSubclassOf(typeof(DbContext))) { try { DbContext db = (DbContext)repository; if (!bizStatus.HasErrors && RequiresSaveChanges && db != null) { bizStatus.CombineStatuses(db.SaveChangesWithOptionalValidation( bizStatus.ShouldValidateSaveChanges(WrappedConfig.Config), WrappedConfig.Config)); WrappedConfig.Config.UpdateSuccessMessageOnGoodWrite(bizStatus, WrappedConfig.Config); } } catch (Exception) { throw; } } }