public ActionResult DeleteConfirmed(int id) { LinkDb linkDb = db.LinkDb.Find(id); db.LinkDb.Remove(linkDb); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "id,network_id,source_id,target_id,date_modified")] LinkDb linkDb) { if (ModelState.IsValid) { db.Entry(linkDb).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.network_id = new SelectList(db.NetworkDb, "id", "name", linkDb.network_id); ViewBag.source_id = new SelectList(db.VertexDb, "id", "identifier", linkDb.source_id); ViewBag.target_id = new SelectList(db.VertexDb, "id", "identifier", linkDb.target_id); return(View(linkDb)); }
// GET: LinkDbs/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LinkDb linkDb = db.LinkDb.Find(id); if (linkDb == null) { return(HttpNotFound()); } return(View(linkDb)); }
// GET: LinkDbs/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LinkDb linkDb = db.LinkDb.Find(id); if (linkDb == null) { return(HttpNotFound()); } ViewBag.network_id = new SelectList(db.NetworkDb, "id", "name", linkDb.network_id); ViewBag.source_id = new SelectList(db.VertexDb, "id", "identifier", linkDb.source_id); ViewBag.target_id = new SelectList(db.VertexDb, "id", "identifier", linkDb.target_id); return(View(linkDb)); }
public IHttpActionResult FlickrNetwork([FromBody] FormFlickrFollowers form) { //data rozpoczęcia pobierania var data = DateTime.Now; //liczba wykonanych zapytan int queries = 0; //dodac pobieranie id serwisu z bazy danych var serviceObj = network.ServiceDb.Where <ServiceDb>(x => x.name == "Flickr").ToList(); var serviceId = serviceObj[0].id; //utworzenie uzytkownika Flickr Flickr user = new Flickr(); //podmienic pozniej na credentials z bazy danych var credentials = network.Credentials.Where <Credentials>(x => x.service_id == serviceId).ToList(); user.ApiKey = credentials[0].key; user.ApiSecret = credentials[0].secret; //pobieranie followersow uzytkownika z formularza var flickrFollowers = user.ContactsGetPublicList(form.InitialVertex); int numberOfPages = flickrFollowers.Pages; queries++; //dodanie uzytkownika poczatkowego do tabeli vertex IsUserIdInVertex(form.InitialVertex, serviceObj[0].id); //pobranie id uzytkonika poczatkowego w tabeli vertex var userId = network.VertexDb.Where <VertexDb>(x => x.identifier == form.InitialVertex && x.service_id == serviceId).ToList(); //zapis pierwszej partii do bazy danych foreach (var follower in flickrFollowers) { IsUserIdInVertex(follower.UserId, serviceObj[0].id, follower.UserName); var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.UserId && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //zapis reszty danych for (int i = 2; i <= numberOfPages; i++) { flickrFollowers = user.ContactsGetPublicList(form.InitialVertex, i, 1000); foreach (var follower in flickrFollowers) { IsUserIdInVertex(follower.UserId, serviceObj[0].id, follower.UserName); var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.UserId && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); } //utworzenie listy followersow var followersList = flickrFollowers.ToList(); //lista uzytych followersow List <Contact> usedFollowers = new List <Contact>(); Contact initialUser = new Contact(); initialUser.UserId = form.InitialVertex; usedFollowers.Add(initialUser); //usedFollowers.Add(form.initialVertex); while (queries < form.NumberQueries && followersList.Any()) { queries++; var newInitialVertex = followersList[0]; userId = network.VertexDb.Where <VertexDb>(x => x.identifier == newInitialVertex.UserId && x.service_id == serviceId).ToList(); flickrFollowers = user.ContactsGetPublicList(newInitialVertex.UserId); usedFollowers.Add(newInitialVertex); followersList = followersList.Union(flickrFollowers).Except(usedFollowers).ToList(); foreach (var follower in flickrFollowers) { IsUserIdInVertex(follower.UserId, serviceObj[0].id, follower.UserName); var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.UserId && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //zapis kolejnych partii danych numberOfPages = flickrFollowers.Pages; for (int i = 2; i <= numberOfPages; i++) { flickrFollowers = user.ContactsGetPublicList(newInitialVertex.UserId, i, 1000); followersList = followersList.Union(flickrFollowers).Except(usedFollowers).ToList(); foreach (var follower in flickrFollowers) { IsUserIdInVertex(follower.UserId, serviceObj[0].id, follower.UserName); var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.UserId && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); } } return(Ok()); }
public IHttpActionResult TwitterNetwork([FromBody] FormTwitterNetwork form) { //data utworzenia krawedzi var data = DateTime.Now; //ilosc zapytań int queries = 0; //akredytacja var credentials = network.Credentials.Where <Credentials>(x => x.ServiceDb.name == "Twitter").ToList(); Auth.SetApplicationOnlyCredentials(credentials[0].key, credentials[0].secret, true); //okiełznanie limitów twitter RateLimit.RateLimitTrackerMode = RateLimitTrackerMode.TrackOnly; TweetinviEvents.QueryBeforeExecute += (sender, args2) => { var queryRateLimits = RateLimit.GetQueryRateLimit(args2.QueryURL); // Some methods are not RateLimited. Invoking such a method will result in the queryRateLimits to be null if (queryRateLimits != null) { if (queryRateLimits.Remaining > 0) { // We have enough resource to execute the query return; } else { while (queryRateLimits.Remaining < 1) { foreach (var cred in network.Credentials.Where <Credentials>(x => x.ServiceDb.name == "Twitter").ToList()) { var credential = Auth.SetApplicationOnlyCredentials(cred.key, cred.secret, true); queryRateLimits = RateLimit.GetQueryRateLimit(args2.QueryURL, credential); if (queryRateLimits.Remaining > 0) { args2.TwitterQuery.TwitterCredentials = Auth.SetApplicationOnlyCredentials(cred.key, cred.secret, true); break; } } } } } }; //wybor id serwisu var serviceObj = network.ServiceDb.Where <ServiceDb>(x => x.name == "Twitter").ToList(); var serviceId = serviceObj[0].id; //utworzenie uzytkownika poczatkowego twittera var userName = Tweetinvi.User.GetUserFromId(form.InitialVertex); if (userName != null) { IsUserIdInVertex(form.InitialVertex, serviceObj[0].id, userName.ScreenName); } else { IsUserIdInVertex(form.InitialVertex, serviceObj[0].id); } var userId = network.VertexDb.Where <VertexDb>(x => x.identifier == form.InitialVertex.ToString() && x.service_id == serviceId).ToList(); //tworzenie listy followersow i friendsow wierzcholka poczatkowego var twitterFollowers = Tweetinvi.User.GetFollowerIds(form.InitialVertex, form.QueryLimit); var twitterFriends = Tweetinvi.User.GetFriendIds(form.InitialVertex, form.QueryLimit); queries = queries + 2; //zapis followersow dobazy danych foreach (var follower in twitterFollowers) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(follower); if (followerName != null) { IsUserIdInVertex(follower, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(follower, serviceObj[0].id); } //pobranie id wiersza bazy z wierzcholkami var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //zapis friendsow do bazy danych foreach (var friend in twitterFriends) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(friend); if (followerName != null) { IsUserIdInVertex(friend, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(friend, serviceObj[0].id); } //pobranie id wiersza b azy z wierzcholkami var friendId = network.VertexDb.Where <VertexDb>(x => x.identifier == friend.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = userId[0].id; link.target_id = friendId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //utworzenie list uzytkownikow //List<long> usersTwitter = twitterFollowers.Union(twitterFriends).ToList(); List <long> twitterFollowersList = twitterFollowers.ToList(); List <long> twitterFriendsList = twitterFriends.ToList(); List <long> usedUsers = new List <long>(); usedUsers.Add(form.InitialVertex); //rozpoczynamy pobieranie dla kolejnych wierzcholkow while (queries < form.NumberQueries && (twitterFriendsList.Any() || twitterFollowersList.Any())) { var rand = new Random(); bool bool1 = (twitterFriendsList.Any()) ? true : false; bool bool2 = (twitterFollowersList.Any()) ? true : false; if (rand.Next(100) % 2 == 1 && bool1 == true) { queries = queries + 2; var newInitialVertexId = twitterFriendsList[0]; userId = network.VertexDb.Where <VertexDb>(x => x.identifier == newInitialVertexId.ToString() && x.service_id == serviceId).ToList(); usedUsers.Add(newInitialVertexId); var newUsersFriends = Tweetinvi.User.GetFriendIds(newInitialVertexId, form.QueryLimit); var newUsersFollowers = Tweetinvi.User.GetFollowerIds(newInitialVertexId, form.QueryLimit); twitterFriendsList = twitterFriendsList.Union(newUsersFriends).Except(usedUsers).ToList(); twitterFollowersList = twitterFollowersList.Union(newUsersFollowers).Except(usedUsers).ToList(); //zapis followersow dobazy danych foreach (var follower in newUsersFollowers) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(follower); if (followerName != null) { IsUserIdInVertex(follower, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(follower, serviceObj[0].id); } //pobranie id wiersza b azy z wierzcholkami var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //zapis friendsow do bazy danych foreach (var friend in newUsersFriends) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(friend); if (followerName != null) { IsUserIdInVertex(friend, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(friend, serviceObj[0].id); } //pobranie id wiersza b azy z wierzcholkami var friendId = network.VertexDb.Where <VertexDb>(x => x.identifier == friend.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = userId[0].id; link.target_id = friendId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); } else if (rand.Next(100) % 2 == 0 && bool2 == true) { queries = queries + 2;; var newInitialVertexId = twitterFollowersList[0]; userId = network.VertexDb.Where <VertexDb>(x => x.identifier == newInitialVertexId.ToString() && x.service_id == serviceId).ToList(); usedUsers.Add(newInitialVertexId); var newUsersFriends = Tweetinvi.User.GetFriendIds(newInitialVertexId, form.QueryLimit); var newUsersFollowers = Tweetinvi.User.GetFollowerIds(newInitialVertexId, form.QueryLimit); twitterFriendsList = twitterFriendsList.Union(newUsersFriends).Except(usedUsers).ToList(); twitterFollowersList = twitterFollowersList.Union(newUsersFollowers).Except(usedUsers).ToList(); //zapis followersow dobazy danych foreach (var follower in newUsersFollowers) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(follower); if (followerName != null) { IsUserIdInVertex(follower, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(follower, serviceObj[0].id); } //pobranie id wiersza b azy z wierzcholkami var followerId = network.VertexDb.Where <VertexDb>(x => x.identifier == follower.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = followerId[0].id; link.target_id = userId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); //zapis friendsow do bazy danych foreach (var friend in newUsersFriends) { //dodawnie nowego uzytkownika do wierzcholkow var followerName = Tweetinvi.User.GetUserFromId(friend); if (followerName != null) { IsUserIdInVertex(friend, serviceObj[0].id, followerName.ScreenName); } else { IsUserIdInVertex(friend, serviceObj[0].id); } //pobranie id wiersza b azy z wierzcholkami var friendId = network.VertexDb.Where <VertexDb>(x => x.identifier == friend.ToString() && x.service_id == serviceId).ToList(); var link = new LinkDb(); link.date_modified = data; link.network_id = form.NetworkID; link.source_id = userId[0].id; link.target_id = friendId[0].id; network.LinkDb.Add(link); } network.SaveChanges(); } } return(Ok()); }