/// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            var context = new TwitterDbContext();

            kernel.Bind<ITwitterDbContext>().To<TwitterDbContext>();
            kernel.Bind<ITwitterData>().To<TwitterData>().WithConstructorArgument("context", context);
        }        
        public override void Download(string user)
        {
            // get user profiles

            var api_path = "https://api.twitter.com/1.1/users/show.json?screen_name={0}&include_entities={1}";

            using (TwitterDbContext db = new TwitterDbContext())
            {


                string query = string.Format(api_path, user, true);
                var jsonObject = TwitterAccessor.GetQueryableJsonObjectFromGETQuery(query);
                var twitterUser = db.Users.Where(tu => tu.ScreenName.Equals(user)).SingleOrDefault();

                if (twitterUser == null)
                {
                    twitterUser = new TwitterProfile();
                    db.Users.Add(twitterUser);
                }

                twitterUser.Id = (long)jsonObject["id"];
                twitterUser.Name = (string)jsonObject["name"];
                twitterUser.ScreenName = (string)jsonObject["screen_name"];
                twitterUser.CreatedAt = DateTime.ParseExact((string)jsonObject["created_at"], "ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture);
                twitterUser.StatusesCount = (long)jsonObject["statuses_count"];
                twitterUser.FavouritesCount = (long)jsonObject["favourites_count"];
                twitterUser.FollowersCount = (long)jsonObject["followers_count"];
                twitterUser.FriendsCount = (long)jsonObject["friends_count"];
                twitterUser.ListedCount = (long)jsonObject["listed_count"];
                //twitterUser.Json = jsonObject.ToString();


                db.SaveChanges();
            }
        }
Example #3
0
        public bool RegisterUser(Person person)
        {
            using (TwitterDbContext dbContext = new TwitterDbContext())
            {
                try
                {
                    dbContext.person.Add(person);
                    dbContext.SaveChanges();
                    return(true);
                }
                catch (DbEntityValidationException ex)
                {
                    // Retrieve the error messages as a list of strings.
                    var errorMessages = ex.EntityValidationErrors
                                        .SelectMany(x => x.ValidationErrors)
                                        .Select(x => x.ErrorMessage);

                    // Join the list to a single string.
                    var fullErrorMessage = string.Join("; ", errorMessages);

                    // Combine the original exception message with the new one.
                    var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                    // Throw a new DbEntityValidationException with the improved exception message.
                    throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
                }
            }
        }
Example #4
0
        protected override void Seed(TwitterDbContext context)
        {
            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Admin"
                };

                manager.Create(role);
            }

            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var store   = new UserStore <User>(context);
                var manager = new UserManager <User>(store);
                var user    = new User {
                    UserName = "******"
                };

                manager.Create(user, "123456");
                manager.AddToRole(user.Id, "Admin");

                this.SeedTags(context);
                this.SeedTweets(context);
            }
        }
Example #5
0
        public static void LoadNews(string filename)
        {

            using (TwitterDbContext db = new TwitterDbContext())
            {
                long? minId = (from t in db.Tweets where t.ProfileId == -1 select (long?)t.Id).Min();

                if (!minId.HasValue)
                    minId = 0;

                using (StreamReader sr = new StreamReader(filename))
                {
                    while (!sr.EndOfStream)
                    {
                        string title = sr.ReadLine();
                        string[] tokens = title.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);

                        if (tokens.Length != 3)
                            continue;

                        TwitterTweet tweet = new TwitterTweet { Id = (--minId).Value, ProfileId = -2, CreatedBy = tokens[0], CreatedAt = DateTime.Parse(tokens[1]), Text = tokens[2] };
                        db.Entry<TwitterTweet>(tweet).State = System.Data.Entity.EntityState.Added;
                    }


                }

                db.SaveChanges();
            }


        }
Example #6
0
        private void SeedTags(TwitterDbContext context)
        {
            if (!context.Tags.Any())
            {
                context.Tags.Add(new Tag()
                {
                    Name = "code"
                });

                context.Tags.Add(new Tag()
                {
                    Name = "programming"
                });

                context.Tags.Add(new Tag()
                {
                    Name = "fun"
                });

                context.Tags.Add(new Tag()
                {
                    Name = "helloworld"
                });

                context.SaveChanges();
            }
        }
 public void Add(List <Status> results)
 {
     using (TwitterDbContext db = new TwitterDbContext())
     {
         db.t_TwitterResults.AddRange(results);
         db.SaveChanges();
     }
 }
 public List <Status> Get()
 {
     using (TwitterDbContext db = new TwitterDbContext())
     {
         var twitts = db.t_TwitterResults.ToList();
         return(twitts);
     }
 }
Example #9
0
 public ActionResult SignUp(Person model)
 {
     using (var context = new TwitterDbContext())
     {
         context.Person.Add(model);
         context.SaveChanges();
     }
     return(RedirectToAction("login"));
 }
Example #10
0
        public static async void SaveUsers()
        {
            TwitterDbContext db = new TwitterDbContext();
            var users           = await GetUsersAsync(S_NAME);

            db.Users.AddRange(users);
            if (await db.SaveChangesAsync() > 0)
            {
                userCount += users.Count;
                Console.WriteLine("Users Saved : " + DateTime.Now + " Total(" + userCount.ToString() + ") ");
            }
        }
        public override void Export(string path, TwitterDbContext db, int interval = 7, string gtNews="")
        {
            var query = from t in db.Users
                        //where t.ScreenName.Equals("MashiRafael") 
                        where t.Id > 0
                        orderby t.ScreenName ascending
                        select new
                        {
                            // CreatedAt = t.CreatedAt,
                            CreatedBy = t.ScreenName,
                        };


            string previousCreatedBy = "";
            DateTime previousCreatedAt = new DateTime(2015, 6, 1);
            DateTime targetDate = new DateTime(2015, 8, 23);
            //StreamWriter sw = null;
            //StreamWriter swWegiths = null;
            StreamWriter swList = new StreamWriter(OutputFile);
            

            foreach (var tweet in query)
            {
                if (!tweet.CreatedBy.Equals(previousCreatedBy))
                {
                    previousCreatedBy = tweet.CreatedBy;
                    previousCreatedAt = new DateTime(2015, 6, 1);
                }

                while (previousCreatedAt <= targetDate)
                {
                    DateTime dfrom = previousCreatedAt;
                    DateTime dto = previousCreatedAt.AddDays(interval - 1);
                    string template = "{0}{1}.D" + interval.ToString("00")
                        + dfrom.ToString(".yyyyMMdd") + dto.ToString(".yyyyMMdd") + ".tweets";
                    string filename = string.Format(template, path, tweet.CreatedBy);
                    string luserfile = string.Format(template, string.Empty, tweet.CreatedBy);
                    string nfile = string.Format(template, string.Empty, gtNews).Replace(".tweets", ".news");
                    string line = "{0},{1},{2},{3},{4},{5}";
                    //swList.WriteLine()
                    line = string.Format(line, luserfile, nfile, dfrom.ToShortDateString(), dto.ToShortDateString(), tweet.CreatedBy, gtNews);
                    swList.WriteLine(line);


                    previousCreatedAt = previousCreatedAt.AddDays(interval);
                }
               
            }

           
            swList.Close();
        }
Example #12
0
        public static async void SaveTweets()
        {
            TwitterDbContext db = new TwitterDbContext();
            var tweets          = await GetTweetsAsync();

            db.Tweets.AddRange(tweets);

            if (await db.SaveChangesAsync() > 0)
            {
                tweetCount += tweets.Count;
                Console.WriteLine("Tweets Saved : " + DateTime.Now + " Total(" + tweetCount.ToString() + ") ");
            }
        }
        public override void Export(string path, TwitterDbContext db, int interval = 7, string filter = "")
        {
            var query = from t in db.Tweets
                        
                        join p in db.Users on t.ProfileId equals p.Id
                        where t.CreatedBy.Equals("MashiRafael")
                        where t.CreatedAt >= new DateTime(2015, 7, 1)
                        && p.IsLeader && !t.Text.StartsWith("RT @") && t.RetweetCount > 2
                        orderby t.CreatedBy ascending, t.CreatedAt ascending
                        select new
                        {
                            CreatedAt = t.CreatedAt,
                            CreatedBy = t.CreatedBy,
                            Text = t.Text,
                        };


            string previousCreatedBy = "";
            DateTime previousCreatedAt = new DateTime(2015, 7, 1);
            StreamWriter sw = null;
            string tweetText = string.Empty;

            foreach (var tweet in query)
            {
                if (!tweet.CreatedBy.Equals(previousCreatedBy))
                {
                    previousCreatedBy = tweet.CreatedBy;
                    previousCreatedAt = new DateTime(2015, 7, 1);

                    if (sw != null)
                    {
                        sw.Close();
                       

                        tweetText = string.Empty;
                    }

                    string filename = path + tweet.CreatedBy + ".tweets";
                    sw = new StreamWriter(filename);
                }

                //log.Info("processing tweets by {0} from {1}", tweet.CreatedBy, tweet.CreatedAt);
                Console.WriteLine("processing tweets by {0} from {1}", tweet.CreatedBy, tweet.CreatedAt);

                ExportTweet(sw, tweet.Text);
                //tweetText += tweet.Text;

            }

            sw.Close();
        }
        public override void Export(string path, TwitterDbContext db, int interval = 7, string filter="")
        {
            var query = from t in db.Tweets
                        where t.CreatedBy.Equals(filter) && t.CreatedAt >= new DateTime(2015, 6, 1) && t.ProfileId < 0
                        orderby t.CreatedBy ascending, t.CreatedAt ascending
                        select new
                        {
                            CreatedAt = t.CreatedAt,
                            CreatedBy = t.CreatedBy,
                            Text = t.Text,
                            Retweets = t.RetweetCount
                        };


            string previousCreatedBy = "";
            DateTime previousCreatedAt = new DateTime(2015, 6, 1);
            StreamWriter sw = null;
            

            foreach (var tweet in query)
            {
                if (!tweet.CreatedBy.Equals(previousCreatedBy))
                {
                    previousCreatedBy = tweet.CreatedBy;
                    previousCreatedAt = new DateTime(2015, 6, 1);
                }

                if (tweet.CreatedAt.Date >= previousCreatedAt)
                {
                    log.Info("processing tweets by {0} from {1}", tweet.CreatedBy, tweet.CreatedAt);
                    string filename = path + tweet.CreatedBy + ".D" +interval.ToString("00")
                        + previousCreatedAt.ToString(".yyyyMMdd") + previousCreatedAt.AddDays(interval-1).ToString(".yyyyMMdd") + ".news";


                    if (sw != null)
                        sw.Close();

                    sw = new StreamWriter(filename);
                    previousCreatedAt = previousCreatedAt.AddDays(interval);


                }

                string tweetText = tweet.Text;
                ExportTweet(sw, tweetText);
            }

            sw.Close();
        }
        private static void InsertUsersInBase(TwitterDbContext twitterDb)
        {
            twitterDb.Users.Add(new User
            {
                Name = "Dimitar",
                Profile = new Profile
                {
                    Content = "Profile 1"
                }
            });
                
            twitterDb.Users.Add(new User
            {
                Name = "Angel",
                Profile = new Profile
                {
                    Content = "Profile 2"
                }
            });

            twitterDb.Users.Add(new User
            {
                Name = "Kiro",
                Profile = new Profile
                {
                    Content = "Profile 3"
                }
            });

            twitterDb.Users.Add(new User
            {
                Name = "Biliana",
                Profile = new Profile
                {
                    Content = "Profile 4"
                }
            });

            twitterDb.Users.Add(new User
            {
                Name = "Ivan",
                Profile = new Profile
                {
                    Content = "Profile 5"
                }
            });

            twitterDb.SaveChanges();
        }
        private static void Main()
        {
            TwitterDbContext twitterDb = new TwitterDbContext();

            // Users

            InsertUsersInBase(twitterDb);

            // Follwing table

            InsertFollwersAndFollwingUsers(twitterDb);

            // Tweets

            InsertTweets(twitterDb);

            // Edit profile

            EditProfile(twitterDb);

            // Users send messages to other users

            SendMessages(twitterDb);

            //Favourite tweets

            FavouriteManyTweets(twitterDb);

            //Retweet tweets

            RetweetManyTweets(twitterDb);

            //Report tweets as corrupt

            ReportManyTweetsAsCorrupt(twitterDb);

            //Shared to facebook tweet

            ReportManyTweetsToFacebook(twitterDb);

            //Reply tweets

            ReplyManyTweets(twitterDb);

            //Notifications

            AddNotifications(twitterDb);
        }
        public override void Export(string path, TwitterDbContext db, int interval = 7, string filter = "")
        {
            var query = from t in db.Tweets
                        where t.CreatedBy.Equals("MashiRafael") 
                        where t.CreatedAt >= new DateTime(2015, 6, 1)
                        orderby t.CreatedBy ascending, t.CreatedAt ascending
                        select new
                        {
                            CreatedAt = t.CreatedAt,
                            CreatedBy = t.CreatedBy,
                            Text = t.Text,
                        };


            string previousFilename = "";
            DateTime previousCreatedAt = new DateTime(2015, 6, 1);
            DateTime refCreatedAt = previousCreatedAt.AddDays(14);
            string filename = path + refCreatedAt.Date.ToString("yyyyMMdd") + ".tweets";
            StreamWriter sw = new StreamWriter(filename);
            

            foreach (var tweet in query)
            {
                if (tweet.CreatedAt.Date >= refCreatedAt)
                {
                    log.Info("processing tweets from {0]", tweet.CreatedAt);
                    refCreatedAt.AddDays(14);
                    previousCreatedAt = tweet.CreatedAt.Date;
                    filename = path + refCreatedAt.Date.ToString("yyyyMMdd") + ".tweets";


                    if (!filename.Equals(previousFilename))
                    {
                        if (sw != null)
                            sw.Close();

                        sw = new StreamWriter(filename);
                        previousFilename = filename;
                    }
                }

                string tweetText = tweet.Text;
                ExportTweet(sw, tweetText);
            }

            sw.Close();
        }
Example #18
0
        public ActionResult Login(Person person)
        {
            using (var context = new TwitterDbContext())
            {
                bool isValid = context.Person.Any(x => x.user_id == person.user_id && x.password == person.password);

                if (isValid)
                {
                    var p = context.Person.FirstOrDefault(x => x.user_id == person.user_id && x.password == person.password);
                    FormsAuthentication.SetAuthCookie(person.user_id, false);
                    return(RedirectToAction("Index", "Home", p));
                }

                ModelState.AddModelError("", "Invalid Used details");
            }
            return(View());
        }
Example #19
0
        private static void ExportTweetsToFile()
        {
            string dir = AppDomain.CurrentDomain.BaseDirectory + "Tweets" + Path.DirectorySeparatorChar;

            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            using (TwitterDbContext db = new TwitterDbContext())
            {
                foreach (var tweet in db.Tweets)
                {
                    string userdir = dir + tweet.ProfileId + Path.DirectorySeparatorChar;
                    string fname = userdir + tweet.Id + ".txt";
                    //File.AppendAllText(fname, tweet.Json);
                }
            }
        }
Example #20
0
        private void SeedTweets(TwitterDbContext context)
        {
            if (!context.Tweets.Any())
            {
                var tags   = context.Tags.ToList();
                var user   = context.Users.FirstOrDefault();
                var random = new Random();

                context.Tweets.Add(new Tweet()
                {
                    Content   = "I love code #fun",
                    CreatedOn = DateTime.Now,
                    User      = user,
                    Tags      = new List <Tag>()
                    {
                        tags.FirstOrDefault(t => t.Name == "fun")
                    }
                });

                context.Tweets.Add(new Tweet()
                {
                    Content   = "#programming Sunny day behind the PC ",
                    CreatedOn = DateTime.Now,
                    User      = user,
                    Tags      = new List <Tag>()
                    {
                        tags.FirstOrDefault(t => t.Name == "programming")
                    }
                });

                context.Tweets.Add(new Tweet()
                {
                    Content   = "My first app #helloworld",
                    CreatedOn = DateTime.Now,
                    User      = user,
                    Tags      = new List <Tag>()
                    {
                        tags.FirstOrDefault(t => t.Name == "helloworld")
                    }
                });
            }
        }
Example #21
0
        private static void ExportUsersToMongo()
        {
            IMongoClient mclient;
            IMongoDatabase mdb;

            mclient = new MongoClient();
            mdb = mclient.GetDatabase("twitter");
            var collection = mdb.GetCollection<BsonDocument>("users");

            using (TwitterDbContext db = new TwitterDbContext())
            {
                foreach (var user in db.Users)
                {
                    //if (user.Json == null)
                    //    continue;

                    //var doc = BsonDocument.Parse(user.Json);
                    //collection.InsertOneAsync(doc).Wait();
                }
            }
        }
        public override void Download(string screenname)
        {
            using (TwitterDbContext db = new TwitterDbContext())
            {
                foreach (var user in db.Users)
                {
                    var queryResult = (from t in db.Tweets where t.ProfileId == user.Id  select t).OrderByDescending(i => i.Id);

                    foreach (TwitterTweet tweet in queryResult)
                    {
                        //int numberOfObjectsPerPage = 10;
                        //var queryResultPage = queryResult.Skip(numberOfObjectsPerPage * 1).Take(numberOfObjectsPerPage);

                        var cursor = -1;
                        //var count = 100;
                        var api_path = "https://api.twitter.com/1.1/statuses/retweeters/ids.json?id={0}&cursor={1}&stringify_ids=true";

                        while (cursor != 0)
                        {
                            //int page = i / pagesize + 1;
                            //var results = TwitterAccessor.ExecuteCursorGETCursorQueryResult<IIdsCursorQueryResultDTO>(query, 100, page );
                            //var userIds = results.SelectMany(x => x.Ids);
                            //var retweeters = TwitterAccessor.ExecuteCursorGETQuery<long, IIdsCursorQueryResultDTO>(query, 100);
                            string query = string.Format(api_path, tweet.Id, cursor);
                            var jsonObject = TwitterAccessor.GetQueryableJsonObjectFromGETQuery(query);

                            if (jsonObject != null)
                            {
                                cursor = (int)jsonObject["next_cursor"];
                                var ids = jsonObject["ids"];

                                //tweet.RetweetersIds += ids.ToString();
                            }
                        }

                        db.SaveChanges();
                    }
                }
            }
        }
Example #23
0
        static async Task <List <TwitterUser> > GetUsersAsync(string screenName)
        {
            TwitterDbContext db = new TwitterDbContext();

            TwitterUserList.Clear();

            await Task.Run(() =>
            {
                var screen        = Tweetinvi.User.GetUserFromScreenName(screenName);
                var _twitterUsers = screen == null ? null : screen.GetFriends();
                var _dbUsers      = db.Users.AsEnumerable();

                if (_dbUsers != null && _dbUsers.Count() > 0 && _twitterUsers != null && _twitterUsers.Count() > 0)
                {
                    foreach (var user in _twitterUsers)
                    {
                        if (!_dbUsers.Any(t => t.TwitterId == user.Id))
                        {
                            TwitterUserList.Add(new TwitterUser {
                                Name = user.Name, TwitterId = user.Id, Location = user.Location, UserName = user.ScreenName
                            });
                        }
                    }
                }
                else
                {
                    if (_twitterUsers != null && _twitterUsers.Count() > 0)
                    {
                        foreach (var user in _twitterUsers)
                        {
                            TwitterUserList.Add(new TwitterUser {
                                Name = user.Name, TwitterId = user.Id, Location = user.Location, UserName = user.ScreenName
                            });
                        }
                    }
                }
            });

            return(TwitterUserList);
        }
Example #24
0
        static async Task <List <TweetModel> > GetTweetsAsync()
        {
            TwitterDbContext db = new TwitterDbContext();

            Tweets.Clear();
            await Task.Run(() =>
            {
                var tweets    = Timeline.GetHomeTimeline();
                var _dbTweets = db.Tweets.AsEnumerable();

                if (_dbTweets != null && _dbTweets.Count() > 0 && tweets != null)
                {
                    foreach (var tweet in tweets)
                    {
                        if (!_dbTweets.Any(t => t.TweetId == tweet.Id || t.Text.ToLower() == tweet.Text.ToLower()))
                        {
                            Tweets.Add(new TweetModel {
                                TweetId = tweet.Id, Text = tweet.Text, Retweet = tweet.Retweeted, CreatorId = tweet.CreatedBy.Id
                            });
                        }
                    }
                }
                else
                {
                    if (tweets != null)
                    {
                        foreach (var tweet in tweets)
                        {
                            Tweets.Add(new TweetModel {
                                TweetId = tweet.Id, Text = tweet.Text, Retweet = tweet.Retweeted, CreatorId = tweet.CreatedBy.Id
                            });
                        }
                    }
                }
            });

            return(Tweets);
        }
 public override void Export(string path, TwitterDbContext db, int interval = 7, string filter = "")
 {
     //throw new NotImplementedException();
 }
Example #26
0
 public MSSQLConsumer(ConsumerConfig config) : base(config)
 {
     _context = new TwitterDbContext();
 }
Example #27
0
        private static void ExportUsers()
        {
            string dir = AppDomain.CurrentDomain.BaseDirectory + "Profiles" + Path.DirectorySeparatorChar;

            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            using (TwitterDbContext db = new TwitterDbContext())
            {
                foreach (var user in db.Users)
                {
                    string fname = dir + user.Id + ".txt";
                    //File.AppendAllText(fname, user.Json);
                }
            }
        }
        private static void SendMessages(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();

            users[0].Messages.Add(new Message
            {
                Title = "Parfume",
                Content = "Farenhaint my favorite parfume",
                SentDate = DateTime.Now,
            });

            twitterDb.SaveChanges();
        }
        private static void ReportManyTweetsToFacebook(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();
            var tweets = twitterDb.Tweets.ToList();

            users[0].ReportedTweetsToFacebook.Add(tweets[0]);
            users[0].ReportedTweetsToFacebook.Add(tweets[1]);
            users[0].ReportedTweetsToFacebook.Add(tweets[2]);

            twitterDb.SaveChanges();
        }
        private static void EditProfile(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();
            users[0].Profile.Content = "Changed";

            twitterDb.SaveChanges();
        }
Example #31
0
        private static void Migrate()
        {
            var context = new TwitterDbContext();

            context.Database.Migrate();
        }
 public HomeController(TwitterDbContext db)
 {
     _db = db;
 }
 public LoginController(TwitterDbContext db)
 {
     _db = db;
 }
Example #34
0
 public UserController(TwitterDbContext db)
 {
     _db = db;
 }
 public LoginController(TwitterDbContext _context, IWebHostEnvironment hostEnvironment)
 {
     context            = _context;
     webHostEnvironment = hostEnvironment;
 }
Example #36
0
 public UnitOfWorkData(TwitterDbContext context)
 {
     this.dbContext = context;
 }
Example #37
0
 public ProfileController(TwitterDbContext db)
 {
     _db = db;
 }
        public override void Export(string path, TwitterDbContext db, int interval = 7, string filter = "")
        {
            var query = from t in db.Tweets
                        join p in db.Users on t.ProfileId equals p.Id
                         //where t.CreatedBy.Equals(filter) 
                        where t.CreatedAt >= new DateTime(2015, 6, 1) 
                        && t.CreatedAt <= new DateTime(2015, 8,23)
                        && t.ProfileId > 0
                        && p.IsLeader  
                        && !t.Text.StartsWith("RT @") //&& t.RetweetCount > 2 
                        orderby t.CreatedBy ascending, t.CreatedAt ascending
                        select new
                        {
                            CreatedAt = t.CreatedAt,
                            CreatedBy = t.CreatedBy,
                            Text = t.Text,
                            Retweets = t.RetweetCount
                        };


            string previousCreatedBy = "";
            DateTime previousCreatedAt = new DateTime(2015, 6, 1);
            StreamWriter sw = null;
            StreamWriter swWegiths = null;
            StreamWriter swStats = new StreamWriter(path+"stats.txt");
            long numRetweets = 0;
            //StreamWriter swList = new StreamWriter("FileList.txt");
            

            foreach (var tweet in query)
            {
                if (!tweet.CreatedBy.Equals(previousCreatedBy))
                {
                    previousCreatedBy = tweet.CreatedBy;

                    
                    previousCreatedAt = new DateTime(2015, 6, 1);

                    while (tweet.CreatedAt.AddDays(-interval) > previousCreatedAt)
                        previousCreatedAt=previousCreatedAt.AddDays(interval);
                    
                    numRetweets = 0;
                    if (sw != null)
                    {
                        sw.Close();
                        swWegiths.Close();
                        sw = null;
                        swWegiths = null;
                    }
                }

                if (tweet.CreatedAt.Date >= previousCreatedAt)
                {
                    Console.WriteLine("processing tweets by {0} from {1}", tweet.CreatedBy, tweet.CreatedAt);
                    DateTime dfrom = previousCreatedAt;
                    DateTime dto = previousCreatedAt.AddDays(interval - 1);
                    string template = "{0}{1}.D" +interval.ToString("00")
                        + dfrom.ToString(".yyyyMMdd") + dto.ToString(".yyyyMMdd") + ".tweets";
                    string filename = string.Format(template, path, tweet.CreatedBy);
                    string luserfile = string.Format(template, string.Empty, tweet.CreatedBy);
                    string nfile = string.Format(template, string.Empty, filter).Replace(".tweets", ".news");
                    //string line = "{0},{1},{2},{3},{4},{5}";
                    //swList.WriteLine()
                    //line = string.Format(line, luserfile, nfile, dfrom.ToShortDateString(), dto.ToShortDateString(), tweet.CreatedBy, gtNews);
                    //swList.WriteLine(line);

                    if (sw != null)
                    {
                        string stat = previousCreatedBy + "," + previousCreatedAt.AddDays(-7).ToShortDateString() + "," + numRetweets;
                        swStats.WriteLine(stat);
                        numRetweets = 0;
                        sw.Close();
                        swWegiths.Close();
                    }

                    sw = new StreamWriter(filename);
                    swWegiths = new StreamWriter(filename + ".weights");
                    

                    previousCreatedAt = previousCreatedAt.AddDays(interval);


                }

                numRetweets += tweet.Retweets;
                string tweetText = tweet.Text;
                ExportTweet(sw, tweetText, swWegiths, tweet.Retweets);
            }

            sw.Close();
            swWegiths.Close();
            swStats.Close();
        }
        private static void InsertFollwersAndFollwingUsers(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();

            users[3].Followings.Add(users[0]);
            users[0].Followers.Add(users[3]);
            users[3].Followings.Add(users[1]);
            users[1].Followers.Add(users[3]);
            users[3].Followings.Add(users[2]);
            users[2].Followers.Add(users[3]);

            twitterDb.SaveChanges();
        }
Example #40
0
 public GenericRepository(TwitterDbContext context)
 {
     this.Context = context;
     this.DbSet   = this.Context.Set <T>();
 }
Example #41
0
 public abstract void Export(string path, TwitterDbContext db, int interval = 7, string filter = "");
Example #42
0
 public TwitterSystemData(TwitterDbContext context)
 {
     this.context      = context;
     this.repositories = new Dictionary <Type, object>();
 }
Example #43
0
        public static void ExportData(string[] args)
        {
            string path = args[1] + Path.DirectorySeparatorChar;

            using (TwitterDbContext db = new TwitterDbContext())
            {
                //for (int i = 7; i <= 7; i++)
                //{
                //ExportHandler newsExporter = new ExportHandlerNewsByUserDate();
                //newsExporter.Export(path, db, 7, "Universo");
                //newsExporter.Export(path, db, 7, "Telegrafo");
                ExportHandler tweetsExporter = new ExportHandlerTweetsByUserDate();
                tweetsExporter.Export(path, db, 7, "Telegrafo");
                //ExportHandlerTweetsByUserDateGrouped exporter = new ExportHandlerTweetsByUserDateGrouped();
                //exporter.Export(path, db, 90);


                //ExportHandlerTweetsGtMappings mappings = new ExportHandlerTweetsGtMappings();
                //mappings.OutputFile = @"H:\dev\twitter\Universo.mappings";
                //mappings.Export(path, db, 7, "Universo");
                //mappings.OutputFile = @"H:\dev\twitter\Telegrafo.mappings";
                //mappings.Export(path, db, 7, "Telegrafo");
            }
        }
        private static void ReplyManyTweets(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();
            var tweets = twitterDb.Tweets.ToList();

            users[0].ReplyTweets.Add(tweets[0]);
            users[0].ReplyTweets.Add(tweets[1]);
            users[0].ReplyTweets.Add(tweets[2]);

            twitterDb.SaveChanges();    
        }
        private static void InsertTweets(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();

            users[0].Tweets.Add(new Twiit());
            users[0].Tweets.Add(new Twiit());
            users[0].Tweets.Add(new Twiit());

            twitterDb.SaveChanges();
        }
Example #46
0
 public static void Init()
 {
     Database.SetInitializer(new MigrateDatabaseToLatestVersion <TwitterDbContext, Configuration>());
     TwitterDbContext.Create().Database.Initialize(true);
 }
        private static void AddNotifications(TwitterDbContext twitterDb)
        {
            var users = twitterDb.Users.ToList();

            users[0].Notifications.Add(new Notification { Content = "Notification 1"});
            users[0].Notifications.Add(new Notification { Content = "Notification 2"});
            users[0].Notifications.Add(new Notification { Content = "Notification 3"});

            twitterDb.SaveChanges();
        }