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); }
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); }