/// <summary> /// Saves an entity. /// </summary> /// <param name="entity">The resource entity to save.</param> /// <param name="cancellationToken">The optional token to monitor for cancellation requests.</param> /// <returns>The changing result information.</returns> public override async Task <ChangingResultInfo> SaveAsync(SentMailEntity entity, CancellationToken cancellationToken = default) { if (entity == null) { return(new ChangingResultInfo(ChangeErrorKinds.Argument, EntityNullTips)); } if (string.IsNullOrWhiteSpace(UserId)) { return(new ChangingResultInfo(ChangeErrorKinds.Unauthorized, LoginErrorTips)); } if (entity.IsNew) { var mailList = entity.ToReceiveMails().ToList(); _ = Task.Run(async() => { foreach (var m in mailList) { await DataProvider.SaveAsync(m, cancellationToken); } }, cancellationToken); } if (string.IsNullOrWhiteSpace(entity.OwnerId) && entity.IsNew) { entity.OwnerId = UserId; } try { var result = await DataProvider.SaveAsync(entity, cancellationToken); if (ResourceEntityExtensions.IsSuccessful(result)) { return(new ChangingResultInfo <SentMailEntity>(result, entity, result.ToString() + " sent mail entity.")); } return(result); } catch (Exception ex) { var err = ResourceEntityExtensions.TryCatch(ex); if (err != null) { return(err); } throw; } }
/// <summary> /// Saves an entity. /// </summary> /// <param name="entity">The resource entity to save.</param> /// <param name="cancellationToken">The optional token to monitor for cancellation requests.</param> /// <returns>The changing result information.</returns> public Task <ChangeMethods> SaveAsync(SentMailEntity entity, CancellationToken cancellationToken = default) { var context = GetContext(false); return(DbResourceEntityExtensions.SaveAsync(context.SentMails, context.SaveChangesAsync, entity, cancellationToken)); }
public Task <IActionResult> SaveAsync([FromBody] SentMailEntity entity) { return(this.SaveSnsEntityAsync(entity, (sns, e, cancellationToken) => sns.SaveAsync(entity, cancellationToken), Logger, new EventId(17001426, "SaveEntity"))); }