コード例 #1
0
ファイル: DBMapper.cs プロジェクト: 1909-sep30-net/YoutubeJam
 /// <summary>
 /// Method that takes in a Channel Author and Channel Name from API and creates a Channel Object for the DB
 /// </summary>
 /// <param name="c"></param>
 /// <param name="channelName"></param>
 /// <returns></returns>
 public async Task <Channel> ParseChannelAsync(BL.Creator c, string channelName)
 {
     return(new Channel()
     {
         ChannelName = channelName,
         ChannelAuthor = await GetCreatorByEmailAsync(c.Email)
     });
 }
コード例 #2
0
ファイル: DBMapper.cs プロジェクト: 1909-sep30-net/YoutubeJam
 /// <summary>
 /// Method that converts Business Logic Creator Objects for API to Entity Creator Objects for DB and vice versa
 /// </summary>
 /// <param name="creator"></param>
 /// <returns></returns>
 public async Task <Creator> ParseCreatorAsync(BL.Creator creator)
 {
     return(await Task.FromResult(new Creator()
     {
         FirstName = creator.FirstName,
         LastName = creator.LastName,
         Email = creator.Email
     }));
 }
コード例 #3
0
 public async Task AddCreatorandChannelAsync(BL.Creator c, string channelName)
 {
     if (await CheckIfChannelNameExistsAsync(channelName))
     {
         throw new ChannelNameTakenException("Channel Name Already Taken");
     }
     else
     {
         await AddCreatorAsync(c);
         await AddChannelAsync(c, channelName);
     }
 }
コード例 #4
0
        /// <summary>
        /// Method for adding analysis to the db
        /// </summary>
        /// <param name="sentimentAverage"></param>
        /// <param name="c"></param>
        public async Task AddAnalysisAsync(BL.AverageSentiment sentimentAverage, BL.Creator c)
        {
            if (await _context.Creator.FirstOrDefaultAsync(creator => creator.Email == c.Email) == null)
            {
                throw new CreatorDoesNotExistException();
            }
            if (await _context.Video.FirstOrDefaultAsync(v => v.URL == sentimentAverage.VideoURL) == null)
            {
                await AddVideoAsync(sentimentAverage.VideoURL, c.ChannelName);
            }
            await _context.Analysis1.AddAsync(await _map.ParseAnalysisAsync(sentimentAverage, c));

            await _context.SaveChangesAsync();
        }
コード例 #5
0
        /// <summary>
        /// Method that updates channel name of a creator
        /// </summary>
        /// <param name="newChannelName"></param>
        /// <param name="channelAuth"></param>
        public async Task UpdateChannelNameAsync(string newChannelName, BL.Creator channelAuth)
        {
            Channel toUpdate = await _context.Channel.FirstOrDefaultAsync(c => c.ChannelAuthor.Email == channelAuth.Email);

            if (await CheckIfChannelNameExistsAsync(newChannelName))
            {
                throw new ChannelNameTakenException("Channel Name Already Taken. Input a unique one");
            }
            else
            {
                toUpdate.ChannelName = newChannelName;
                await _context.SaveChangesAsync();
            }
        }
コード例 #6
0
        /// <summary>
        /// Method that gets the Analysis History of a certain video by a creator
        /// </summary>
        /// <param name="videourl"></param>
        /// <param name="c"></param>
        /// <returns></returns>
        public async Task <List <BL.AverageSentiment> > GetAnalysisHistoryAsync(string videourl, BL.Creator c)
        {
            List <BL.AverageSentiment> analHist       = new List <BL.AverageSentiment>();
            List <Analysis1>           analHistfromDB = await _context.Analysis1.Where(a => a.Vid.URL == videourl && a.Creatr.Email == c.Email).Include(a => a.Vid).ToListAsync();

            foreach (Analysis1 item in analHistfromDB)
            {
                analHist.Add(await _map.ParseAnalysisAsync(item));
            }
            return(analHist);
        }
コード例 #7
0
        /// <summary>
        /// Method for adding creator to table
        /// </summary>
        /// <param name="c"></param>
        public async Task AddCreatorAsync(BL.Creator c)
        {
            await _context.Creator.AddAsync(await _map.ParseCreatorAsync(c));

            await _context.SaveChangesAsync();
        }
コード例 #8
0
        /// <summary>
        /// Adding a channel to the DB, must have a creator in the DB first
        /// </summary>
        /// <param name="c"></param>
        /// <param name="channelName"></param>
        public async Task AddChannelAsync(BL.Creator c, string channelName)
        {
            await _context.Channel.AddAsync(await _map.ParseChannelAsync(c, channelName));

            await _context.SaveChangesAsync();
        }
コード例 #9
0
ファイル: DBMapper.cs プロジェクト: 1909-sep30-net/YoutubeJam
 /// <summary>
 /// Method that converts Business Logic Analysis Objects for API to Entity Analysis Objects for DB and vice versa
 /// </summary>
 /// <param name="sentimentAverage"></param>
 /// <param name="c"></param>
 /// <returns></returns>
 public async Task <Analysis1> ParseAnalysisAsync(BL.AverageSentiment sentimentAverage, BL.Creator c)
 {
     return(await Task.FromResult(new Analysis1()
     {
         Creatr = await GetCreatorByEmailAsync(c.Email),
         Vid = await GetVideoByURLAsync(sentimentAverage.VideoURL),
         AnalDate = DateTime.Now,
         SentAve = (decimal)sentimentAverage.AverageSentimentScore
     }));
 }