Exemplo n.º 1
0
        public AddVideoResponse AddVideoToLibrary(AddVideoRequest request)
        {
            var response = new AddVideoResponse();

            try
            {
                var user = ApplicationUserRepository.FindOne(u => u.Username == request.User);
                if (user.Videos.Any(x => x.Id == request.VideoId))
                {
                    response.AddVideoStatus = AddVideoStatus.VideoAlreadyAdded;
                    return(response);
                }
                var video = VideoRepository.FindOne(v => v.Id == request.VideoId);
                if (user.Credits < video.Credits)
                {
                    response.AddVideoStatus = AddVideoStatus.InsufficientCredits;
                    return(response);
                }
                user.Credits -= video.Credits;
                user.Videos.Add(video);
                ApplicationUserRepository.Save(user);
                response.Credits        = user.Credits;
                response.AddVideoStatus = AddVideoStatus.Success;
            }
            catch (Exception ex)
            {
                response.AddVideoStatus = AddVideoStatus.Error;
                response.Message        = ex.Message;
            }
            return(response);
        }
Exemplo n.º 2
0
        public PlayVideoResponse PlayVideo(PlayVideoRequest request)
        {
            var response = new PlayVideoResponse();

            try
            {
                var user  = ApplicationUserRepository.FindOne(u => u.Username == request.User);
                var video = VideoRepository.FindOne(v => v.Id == request.VideoId);
                if (user.Credits < video.RideCredits)
                {
                    response.Status = PlayVideoStatus.InsufficientCredits;
                    return(response);
                }
                user.Credits -= video.RideCredits;
                ApplicationUserRepository.Save(user);
                response.Credits = user.Credits;
                response.Status  = PlayVideoStatus.Success;
            }
            catch (Exception ex)
            {
                response.Status  = PlayVideoStatus.Error;
                response.Message = ex.Message;
            }
            return(response);
        }