コード例 #1
0
        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);
        }
コード例 #2
0
 private async Task <DbUser> CreateOrUpdateItemPostProcessingAsync(UserTrackedItem trackedItem, DbUser user)
 {
     user.MostRecentUpdate = trackedItem.UpdatedTime;
     return(await _elmDb.UpsertUserAsync(user));
 }