Ejemplo n.º 1
0
        public async Task UpdateProgress(Guid id, UpdateProgressParam param, int userId)
        {
            var progress = await _catalogDb.UserVideoProgresses
                           .FirstOrDefaultAsync(uvp => uvp.UserId == userId && uvp.Video.Id == id);

            if (param.Finished)
            {
                if (progress != null)
                {
                    _catalogDb.Remove(progress);
                }
            }
            else
            {
                if (progress == null)
                {
                    var video = await _catalogDb.Videos
                                .FirstOrDefaultAsync(v => v.Id == id);

                    progress = new UserVideoProgress
                    {
                        Video  = video,
                        UserId = userId
                    };
                    await _catalogDb.AddAsync(progress);
                }
                progress.Progress = param.Progress;
            }
            await _catalogDb.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateProgress(Guid id, UpdateProgressParam param)
        {
            var userId = User.UserId();
            var video  = await _catalogService.GetVideoWithProgress(id, userId);

            if (video == null)
            {
                return(NotFound());
            }
            await _catalogService.UpdateProgress(id, param, userId);

            return(Ok());
        }