Beispiel #1
0
        public static void CreateReports(string profileId, DateTime date)
        {
            List <MongoTwitterMessage>        lstTwitterMessages         = TwitterReports.GetTwitterMessages(profileId, date);
            List <MongoTwitterMessage>        lstreceived                = lstTwitterMessages.Where(x => x.fromId.Contains(profileId)).ToList();
            List <MongoTwitterDirectMessages> lstTwitterDirectMessages   = TwitterReports.GetTwitterDirectMessages(profileId, date);
            List <Domain.Socioboard.Models.ScheduledMessage> lstschedule = GetScheduledMessage(profileId, date);
            MongoRepository mongorepo = new MongoRepository("MongoTwitterDailyReports");

            MongoTwitterDailyReports todayReports = new MongoTwitterDailyReports();

            todayReports.mentions     = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterMention);
            todayReports.newFollowers = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterFollower);
            todayReports.timeStamp    = SBHelper.ConvertToUnixTimestamp(date);
            todayReports.retweets     = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterRetweet);
            //todayReports.newFollowing = lstTwitterMessages.Count(t=>t.type == Domain.Socioboard.Enum.TwitterMessageType.tw)
            todayReports.directMessagesReceived = lstTwitterDirectMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterDirectMessageReceived);
            todayReports.directMessagesSent     = lstTwitterDirectMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterDirectMessageSent);
            todayReports.profileId        = profileId;
            todayReports.id               = ObjectId.GenerateNewId();
            todayReports.messagesReceived = lstreceived.Count() + lstTwitterDirectMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterDirectMessageReceived);
            todayReports.messagesSent     = lstschedule.Count();
            DateTime dayStart = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0, DateTimeKind.Utc);
            DateTime dayEnd   = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59, DateTimeKind.Utc);
            var      result   = mongorepo.Find <MongoTwitterDailyReports>(t => t.profileId.Equals(profileId) && (t.timeStamp > SBHelper.ConvertToUnixTimestamp(dayStart)) && (t.timeStamp < SBHelper.ConvertToUnixTimestamp(dayEnd)));
            var      task     = Task.Run(async() =>
            {
                return(await result);
            });
            IList <MongoTwitterDailyReports> lstDailyReports = task.Result;

            if (lstDailyReports != null && lstDailyReports.Count() > 0)
            {
                lstDailyReports.First().mentions               = todayReports.mentions;
                lstDailyReports.First().newFollowers           = todayReports.newFollowers;
                lstDailyReports.First().newFollowing           = todayReports.newFollowing;
                lstDailyReports.First().profileId              = profileId;
                lstDailyReports.First().timeStamp              = SBHelper.ConvertToUnixTimestamp(date);
                lstDailyReports.First().directMessagesSent     = todayReports.directMessagesSent;
                lstDailyReports.First().directMessagesReceived = todayReports.directMessagesReceived;
                lstDailyReports.First().messagesReceived       = todayReports.messagesReceived;
                lstDailyReports.First().messagesSent           = todayReports.messagesSent;
                mongorepo.UpdateReplace(lstDailyReports.First(), t => t.id == lstDailyReports.First().id);
            }
            else
            {
                mongorepo.Add <MongoTwitterDailyReports>(todayReports);
            }
        }
Beispiel #2
0
        public static void CreateTodayReports(string profileId, long userId, Helper.Cache _redisCache, Helper.AppSettings settings)
        {
            List <MongoTwitterMessage>        lstTwitterMessages       = TwitterReportsRepository.GetTodayMessages(profileId, userId, _redisCache, settings);
            List <MongoTwitterDirectMessages> lstTwitterDirectMessages = TwitterReportsRepository.GetTodayDirectMessages(profileId, userId, _redisCache, settings);
            MongoRepository mongorepo = new MongoRepository("MongoTwitterDailyReports", settings);

            MongoTwitterDailyReports todayReports = new MongoTwitterDailyReports();

            todayReports.mentions     = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterMention);
            todayReports.newFollowers = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterFollower);
            todayReports.retweets     = lstTwitterMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterRetweet);
            todayReports.timeStamp    = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
            //todayReports.newFollowing = lstTwitterMessages.Count(t=>t.type == Domain.Socioboard.Enum.TwitterMessageType.)
            todayReports.directMessagesReceived = lstTwitterDirectMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterDirectMessageReceived);
            todayReports.directMessagesSent     = lstTwitterDirectMessages.Count(t => t.type == Domain.Socioboard.Enum.TwitterMessageType.TwitterDirectMessageSent);
            todayReports.profileId = profileId;
            todayReports.id        = ObjectId.GenerateNewId();
            DateTime dayStart = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0, DateTimeKind.Utc);
            DateTime dayEnd   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 23, 59, 59, DateTimeKind.Utc);
            var      result   = mongorepo.Find <MongoTwitterDailyReports>(t => (t.timeStamp > SBHelper.ConvertToUnixTimestamp(dayStart)) && (t.timeStamp < SBHelper.ConvertToUnixTimestamp(dayEnd)));
            var      task     = Task.Run(async() =>
            {
                return(await result);
            });
            IList <MongoTwitterDailyReports> lstDailyReports = task.Result;

            if (lstDailyReports != null && lstDailyReports.Count() > 0)
            {
                lstDailyReports.First().mentions               = todayReports.mentions;
                lstDailyReports.First().newFollowers           = todayReports.newFollowers;
                lstDailyReports.First().newFollowing           = todayReports.newFollowing;
                lstDailyReports.First().profileId              = profileId;
                lstDailyReports.First().timeStamp              = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                lstDailyReports.First().directMessagesSent     = todayReports.directMessagesSent;
                lstDailyReports.First().directMessagesReceived = todayReports.directMessagesReceived;
                mongorepo.UpdateReplace(lstDailyReports.First(), t => t.id == lstDailyReports.First().id);
            }
            else
            {
                mongorepo.Add <MongoTwitterDailyReports>(todayReports);
            }
        }