private async Task <bool> CreateOrUpdateItemPreProcessingAsync(UserTrackedItem trackedItem, string userId) { var isNewItem = true; var existingItem = await _elmDb.GetTrackedItem <UserTrackedItem>(trackedItem.Id); if (existingItem != null) { if (existingItem.UserId != userId) { throw new UnauthorizedAccessException("User does not have permission to update this tracked item."); } isNewItem = false; trackedItem.CreatedTime = existingItem.CreatedTime; } else { trackedItem.CreatedTime = DateTime.UtcNow; } trackedItem.UserId = userId; trackedItem.UpdatedTime = DateTime.UtcNow; return(isNewItem); }
private async Task <DbUser> CreateOrUpdateItemPostProcessingAsync(UserTrackedItem trackedItem, DbUser user) { user.MostRecentUpdate = trackedItem.UpdatedTime; return(await _elmDb.UpsertUserAsync(user)); }