public void Execute(IJobExecutionContext context) { using (SuuEntities SuuContext = new SuuEntities()) { var unCountedMessagesList = SuuContext.Status.Where(s => s.is_count == 0).ToList(); var exsitingMessageTextList = SuuContext.messageCounts.Select(g => g.message_text); foreach (var twitterMessage in unCountedMessagesList) { foreach (var MesssageTextword in twitterMessage.text.Split(' ')) { var word = MesssageTextword.Trim(); if (!string.IsNullOrEmpty(word) && !(word[0].ToString() == "@") && (word.Length > 3 && word.Substring(0, 4).ToString() != "http")) { if (!exsitingMessageTextList.Contains(word)) { var messageCount = new FrontEnd.Models.messageCount() { message_text = word, count = 1 }; SuuContext.messageCounts.Add(messageCount); } else { var exsitingMessageCountText = SuuContext.messageCounts.Where(d => d.message_text == word).FirstOrDefault(); var exsitingMessageCountTextOccurence = exsitingMessageCountText.count; var exsitingMessageCountTextLatestOccurence = exsitingMessageCountTextOccurence + 1; exsitingMessageCountText.count = exsitingMessageCountTextLatestOccurence; } } twitterMessage.is_count = 1; SuuContext.SaveChanges(); } } } }
public void Execute(IJobExecutionContext context) { using (SuuEntities SuuContext = new SuuEntities()) { IEnumerable <User> userList = SuuContext.Users.ToList(); foreach (var user in userList) { if (user.is_ready == 0) { WebClient client = new WebClient(); client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted); var filePath = AppDomain.CurrentDomain.BaseDirectory; string SuuProPicPath = ConfigurationManager.AppSettings["filePath"]; var extension = Path.GetExtension(user.profile_image_url); var imageName = $"{user.Id.ToString()}{extension}"; if (!Directory.Exists(SuuProPicPath)) { Directory.CreateDirectory(SuuProPicPath); } try { client.DownloadFile(new Uri(user.profile_image_url), $"{SuuProPicPath}{ imageName}"); user.is_ready = 1; //GetCoordinatesOfUserLocation(user); var currentUserlocation = user.location.ToLower(); if (currentUserlocation.Any()) { var existingLoactionList = SuuContext.UserLocationCounts.Select(g => g.user_location); var latt = 0.00; var lont = 0.00; var locationText = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://open.mapquestapi.com/geocoding/v1/address?key=WBA9ECUGd5XzoEeYlTPMKOivfEEMfTyk&location=" + currentUserlocation); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { var x = reader.ReadToEnd(); //var y = serializer.DeserializeObject(reader.ReadToEnd()); var GeoLocationResponseResponse = JsonConvert.DeserializeObject <GeocodingByAddressDto>(x); latt = GeoLocationResponseResponse.results.FirstOrDefault().locations.FirstOrDefault().displayLatLng.lat; lont = GeoLocationResponseResponse.results.FirstOrDefault().locations.FirstOrDefault().displayLatLng.lng; locationText = GeoLocationResponseResponse.results.FirstOrDefault().locations.FirstOrDefault().adminArea5; } if (!string.IsNullOrEmpty(locationText)) { if (!existingLoactionList.Contains(locationText)) { //var locationCount = new FrontEnd.Models.UserLocationCount() //{ // user_location = currentUserlocation, // count = 1, // lon = lont.ToString(), // lat = latt.ToString() //}; //try //{ var locationCount = new FrontEnd.Models.UserLocationCount() { user_location = locationText, count = 1, lon = lont.ToString(), lat = latt.ToString() }; //} //catch (Exception ex) //{ // Console.WriteLine("Error while get coordinates" + ex.Message); //} SuuContext.UserLocationCounts.Add(locationCount); } else { { var exsitingLocationCountText = SuuContext.UserLocationCounts.Where(d => d.user_location == locationText).FirstOrDefault(); var exsitingLocationCountTextOccurence = exsitingLocationCountText.count; var exsitingLocationCountTextLatestOccurence = exsitingLocationCountTextOccurence + 1; exsitingLocationCountText.count = exsitingLocationCountTextLatestOccurence; } } } } SuuContext.SaveChanges(); } catch (Exception e) { } } //var dbx = new DropboxClient("bwUjLwfs0zAAAAAAAAAAGmL_efee1PRAMvTqewDyfZeu4eV5iLa677oEzwheG49y"); //var t = Task.Run(() => Upload(dbx, "/Suu.TweeterFetcher", imageName, $"{filePath}{ imageName}")); //t.Wait(); //var v = Task.Run(() => Upload(dbx, "/Suu.TweeterFetcher", imageName, $"{filePath}{ imageName}")); //v.Wait(); //////////////////////////// ////client. ////var result = dbx.Sharing.CreateSharedLinkWithSettingsAsync("/Suu.TweeterFetcher"); ////var url = result.Result.Url; ////Console.WriteLine(url.ToString()); //var tempPath = dbx.Files.GetTemporaryLinkAsync($"/Suu.TweeterFetcher{filePath}{ imageName}"); //Console.WriteLine(tempPath); // var x = DownloadThumbnail(string path, ThumbnailFormat format, ThumbnailSize size); } } Console.WriteLine("finish user image and location process cycle ......."); }
//private string maxIdStr = string.Empty; public void Execute(IJobExecutionContext context) { try { var twit = new OAuthTwitterWrapper.OAuthTwitterWrapper(); Search SearchResponse = new Search() { Results = new List <OAuthTwitterWrapper.JsonTypes.Status>() }; using (SuuEntities SuuContext = new SuuEntities()) { var LastMaxId = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.LastMaxId").FirstOrDefault(); if (string.IsNullOrEmpty(LastMaxId.SettingValue)) { var search = twit.GetSearch(); SearchResponse = JsonConvert.DeserializeObject <Search>(search); LastMaxId.SettingValue = SearchResponse.search_metadata.max_id_str; SuuContext.SaveChanges(); } else if (!string.IsNullOrEmpty(LastMaxId.SettingValue)) { var nextSearch = twit.GetSearch(LastMaxId.SettingValue); var SearchResponse1 = JsonConvert.DeserializeObject <Search>(nextSearch); var SearchResponse1Result = JsonConvert.DeserializeObject <Search>(nextSearch).Results; LastMaxId.SettingValue = SearchResponse1.search_metadata.max_id_str; SuuContext.SaveChanges(); SearchResponse.Results.AddRange(SearchResponse1Result); // var xxxx = new SearchResponse. //var xxx = SearchResponse.Results; } if (SearchResponse.Results.Any()) { var FirstSyncDateTime = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.FirstSyncDateTime").FirstOrDefault(); if (string.IsNullOrEmpty(FirstSyncDateTime.SettingValue)) { FirstSyncDateTime.SettingValue = DateTime.UtcNow.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); } var LastSyncDateTime = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.LastSyncDateTime").FirstOrDefault(); LastSyncDateTime.SettingValue = DateTime.UtcNow.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); SuuContext.SaveChanges(); for (int a = 0; a < SearchResponse.Results.Count; a++) { var results = SearchResponse.Results; if (results[a].Text.Trim().Substring(0, 2).ToString() != "RT") { //var userLocationLower = results[a].User.Location.ToLower(); //var userLocation = string.Empty; var status = new FrontEnd.Models.Status() { Id = results[a].id, created_at = DateFormatter(results[a].CreatedAt), text = results[a].Text, truncated = results[a].truncated, //entities //metadata source = results[a].source, in_reply_to_status_id = results[a].in_reply_to_status_id, in_reply_to_user_id = results[a].in_reply_to_user_id, in_reply_to_screen_name = results[a].in_reply_to_screen_name, //user //geo = results[a].geo, // coordinates = results[a].coordinates, // place = results[a].place ? results[a].place. : , contributors = results[a].contributors, is_quote_status = results[a].is_quote_status, retweet_count = results[a].retweet_count, favorite_count = results[a].favorite_count, favorited = results[a].favorited, retweeted = results[a].retweeted, lang = results[a].lang, is_count = 0, User = new FrontEnd.Models.User() { Id = results[a].User.Id, name = results[a].User.Name, screen_name = results[a].User.ScreenName, location = results[a].User.Location.ToLower(), description = results[a].User.Description, url = results[a].User.Url, //entities ///->protected followers_count = results[a].User.FollowersCount, friends_count = results[a].User.FriendsCount, listed_count = results[a].User.ListedCount, created_at = DateFormatter(results[a].User.CreatedAt), favourites_count = results[a].User.FavouritesCount, utc_offset = results[a].User.UtcOffset, time_zone = results[a].User.TimeZone, geo_enabled = results[a].User.GeoEnabled, verified = results[a].User.Verified, statuses_count = results[a].User.StatusesCount, lang = results[a].User.Lang, contributors_enabled = results[a].User.ContributorsEnabled, is_translator = results[a].User.IsTranslator, is_translation_enabled = results[a].User.IsTranslationEnabled, profile_background_color = results[a].User.ProfileBackgroundColor, profile_background_image_url = results[a].User.ProfileBackgroundImageUrl, profile_background_image_url_https = results[a].User.ProfileBackgroundImageUrlHttps, // profile_banner_url = results[a].User.profile profile_link_color = results[a].User.ProfileLinkColor, profile_sidebar_border_color = results[a].User.ProfileSidebarBorderColor, profile_sidebar_fill_color = results[a].User.ProfileSidebarFillColor, profile_text_color = results[a].User.ProfileTextColor, profile_use_background_image = results[a].User.ProfileUseBackgroundImage, // has_extended_profile = results[a].User.has default_profile = results[a].User.DefaultProfile, default_profile_image = results[a].User.DefaultProfileImage, following = results[a].User.Following, follow_request_sent = results[a].User.FollowRequestSent, notifications = results[a].User.Notifications, //translator_type = results[a].User.tr profile_image_url = results[a].User.ProfileImageUrl, count = 1, is_ready = 0 } }; var UserIdList = SuuContext.Users.ToList().Select(s => s.Id); var StatusList = SuuContext.Status.ToList().Select(s => s.Id); var HashTagTextList = SuuContext.Hashtags.ToList().Select(s => s.text); if (!StatusList.Contains(status.Id)) { if (UserIdList.Contains(status.User.Id)) { status.user_id = status.User.Id; //status.User = null; //if(string.IsNullOrEmpty(status.User.count) ) var currentUser = SuuContext.Users.ToList().Where(s => s.Id == status.User.Id).FirstOrDefault(); var curentUserCurrentOccrence = currentUser.count; var UserlatestOccurence = curentUserCurrentOccrence = curentUserCurrentOccrence + 1; currentUser.count = UserlatestOccurence; SuuContext.SaveChanges(); status.User = null; } foreach (var x in results[a].entities.Hashtags) { if (!HashTagTextList.Contains(x.Text)) { var EntityHashtag = new EntityHashtag() { status_id = status.Id, Hashtag = new FrontEnd.Models.Hashtag() { text = x.Text, count = 1 }, Status = null }; SuuContext.EntityHashtags.Add(EntityHashtag); } else { //var EntityHashtag = new EntityHashtag() //{ // status_id = status.Id, // Hashtag = new FrontEnd.Models.Hashtag() // { // text = x.Text, // }, // Status = null //}; var currentHashTag = SuuContext.Hashtags.ToList().Where(s => s.text == x.Text).FirstOrDefault(); var curentHashTagCurrentOccrence = currentHashTag.count; var HashTaglatestOccurence = curentHashTagCurrentOccrence = curentHashTagCurrentOccrence + 1; currentHashTag.count = HashTaglatestOccurence; //SuuContext.SaveChanges(); var EntityHashtag = new EntityHashtag() { status_id = status.Id, hashtag_id = currentHashTag.Id }; SuuContext.EntityHashtags.Add(EntityHashtag); // SuuContext.EntityHashtags.Add(EntityHashtag); } } ; SuuContext.Status.Add(status); SuuContext.SaveChanges(); } } } } } Console.WriteLine("finish save to db cycle ........."); } catch (Exception ex) { Console.WriteLine(ex.Message); } }