public IActionResult SaveCurrentTime(int taskId, double time)
        {
            var user = _userData.GetUserWithStats(User.GetUserId());

            var task = _taskData.GetVideoTask(taskId);

            VideoTaskStatistic currentStat = null;

            foreach (var stat in user.CourseStatistics)
            {
                foreach (var videoTaskStatistic in stat.VideoTaskStatistics)
                {
                    if (videoTaskStatistic.TaskId == taskId)
                    {
                        currentStat = videoTaskStatistic;
                        break;
                    }
                }
            }

            if (currentStat != null)
            {
                currentStat.InProgress  = true;
                currentStat.CurrentTime = time;

                _statisticData.UpdateVideoTaskStatistic(currentStat);
                return(Ok());
            }

            return(NotFound());
        }
예제 #2
0
        public async Task <IActionResult> Upload()
        {
            FormValueProvider formModel;
            var tempFileName = _hostingEnv.WebRootPath + $"{Path.DirectorySeparatorChar}videos{Path.DirectorySeparatorChar}tem.mp4";

            using (var stream = System.IO.File.Create(tempFileName))
            {
                formModel = await Request.StreamFile(stream);
            }
            var viewModel = new UploaderViewModel();


            var bindingSuccessful = await TryUpdateModelAsync(viewModel, prefix : "",
                                                              valueProvider : formModel);

            if (!bindingSuccessful)
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
            }

            var rezultFileName = _hostingEnv.WebRootPath + $"{Path.DirectorySeparatorChar}videos{Path.DirectorySeparatorChar}{viewModel.TaskId}.mp4";

            if (System.IO.File.Exists(rezultFileName))
            {
                System.IO.File.Delete(rezultFileName);
            }
            System.IO.File.Move(tempFileName, rezultFileName);
            var task = _taskData.GetVideoTask(viewModel.TaskId);

            task.LocalVideoUrl = rezultFileName;
            task.VideoUrl      = $"/videos/{viewModel.TaskId}.mp4";
            _taskData.UpdateVideoTask(task);
            return(Ok());
        }