Esempio n. 1
0
        [HttpGet] // can be HttpGet
        public JsonResult Test(int hashTagId)
        {
            //  var hashTagId = 1029055333451223041;
            //using (SuuEntities SuuContext = new SuuEntities())
            //{
            //    var EntityHashtagObject = SuuContext.EntityHashtags.Where(s => s.Id == hashTagId).FirstOrDefault();
            //    var StatausObject = SuuContext.Status.Where(w => w.Id == EntityHashtagObject.Id).FirstOrDefault();

            //    // return SuuContext.Status.Where(s => s.Id == StatausObject.Id).ToList();
            //    return Json(new { data = SuuContext.Status.Where(s => s.Id == StatausObject.Id).ToList() }, JsonRequestBehavior.AllowGet);

            //}

            IEnumerable <Status> status = null;

            using (SuuEntities SuuContext = new SuuEntities())
            {
                SuuContext.Configuration.LazyLoadingEnabled = false;
                //   status = SuuContext.Status.ToList() ;
                //  status = SuuContext.EntityHashtags.Where(x => x.hashtag_id == hashTagId).ToList();
                var entity = SuuContext.EntityHashtags.Where(x => x.hashtag_id == hashTagId).Select(s => s.status_id).ToList();
                status = SuuContext.Status.Where(s => entity.Contains(s.Id)).ToList();
                foreach (var statusObject in status)
                {
                    statusObject.User = new Models.User()
                    {
                        profile_image_url = SuuContext.Users.Where(s => s.Id == statusObject.user_id).Select(s => s.profile_image_url).FirstOrDefault(),
                        is_ready          = SuuContext.Users.Where(s => s.Id == statusObject.user_id).Select(s => s.is_ready).FirstOrDefault(),
                    };
                }
            }
            var json = JsonConvert.SerializeObject(status);

            return(Json(new { data = json }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public JsonResult ReriveUserCoordinates(int userId)
        {
            List <UserLocationCount> UserLocationCounts = null;

            using (SuuEntities SuuContext = new SuuEntities())
            {
                UserLocationCounts = SuuContext.UserLocationCounts.Where(m => !string.IsNullOrEmpty(m.lat) && !string.IsNullOrEmpty(m.lon)).ToList();
            };
            var json = JsonConvert.SerializeObject(UserLocationCounts);

            return(Json(new { data = json }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        // GET: DashBoard
        public ActionResult Index()
        {
            using (SuuEntities SuuContext = new SuuEntities())
            {
                ViewBag.Status = SuuContext.Status.ToList();

                var StatusMonthGroupByName = SuuContext.Status.GroupBy(s => s.created_at).Select(n => new
                {
                    Name = n.Key,
                    //	Count = n.Count()
                }).ToList().Take(30).OrderByDescending(m => m.Name);

                var StatusMonthGroupByCount = SuuContext.Status.GroupBy(s => s.created_at).Select(n => new
                {
                    Name  = n.Key,
                    Count = n.Count()
                }).ToList().Take(30).OrderByDescending(m => m.Name);

                ViewData["TweetDataCount"] = $"[{string.Join(",", StatusMonthGroupByCount.Select(s => s.Count).ToList())}]";
                ViewData["TweetDataDate"]  = $"['{string.Join("','", StatusMonthGroupByName.Select(s => s.Name).ToList())}']".ToString();

                String LastSyncDateTime = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.LastSyncDateTime").FirstOrDefault().SettingValue;

                ViewData["LastSyncDateTime"] = CalculateRelativeTime(DateFormatter(LastSyncDateTime));

                var FirstSyncDateTime = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.FirstSyncDateTime").FirstOrDefault();
                var TotalMonth        = 0;
                if (!string.IsNullOrEmpty(FirstSyncDateTime.SettingValue))
                {
                    //FirstSyncDateTime.SettingValue = DateTime.UtcNow.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                    TotalMonth = GetMonthsBetween(DateFormatter(FirstSyncDateTime.SettingValue), DateTime.UtcNow);
                }
                ViewData["TotalMonth"] = TotalMonth;


                //var LastSyncDateTime = SuuContext.OrganizationSettings.Where(s => s.SettingName == "Organization.LastSyncDateTime").FirstOrDefault();


                //.FirstOrDefault().Select(x => x.created_at);
                //.Count();

                ViewBag.User         = SuuContext.Users.OrderByDescending(x => x.count).Take(10).ToList();
                ViewBag.AllUser      = SuuContext.Users.OrderByDescending(x => x.count).Take(50).ToList();
                ViewBag.HashTag      = SuuContext.Hashtags.OrderByDescending(x => x.count).Take(10).ToList();
                ViewBag.MessageWord  = SuuContext.messageCounts.OrderByDescending(x => x.count).Take(10).ToList();
                ViewBag.UserCount    = SuuContext.Users.Count();
                ViewBag.MessageCount = SuuContext.Status.Count();
                ViewBag.HashTagCount = SuuContext.Hashtags.Count();
                return(View());
            }
        }
Esempio n. 4
0
        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();
                    }
                }
            }
        }
Esempio n. 5
0
        public JsonResult ReriveTopTenTweetForUser(int userId)
        {
            IEnumerable <Status> status = null;

            using (SuuEntities SuuContext = new SuuEntities())
            {
                SuuContext.Configuration.LazyLoadingEnabled = false;
                //var entity = SuuContext.EntityHashtags.Where(x => x.hashtag_id == hashTagId).Select(s => s.status_id).ToList();
                //var TopTenTweets = SuuContext.Status.Where(s => s.user_id = userId)
                var currentUserId = SuuContext.Users.Where(a => a.user_id == userId).Select(x => x.Id).FirstOrDefault();
                status = SuuContext.Status.Where(s => s.user_id == currentUserId).ToList();
                foreach (var statusObject in status)
                {
                    statusObject.User = new Models.User()
                    {
                        profile_image_url = SuuContext.Users.Where(s => s.Id == statusObject.user_id).Select(s => s.profile_image_url).FirstOrDefault(),
                        is_ready          = SuuContext.Users.Where(s => s.Id == statusObject.user_id).Select(s => s.is_ready).FirstOrDefault(),
                    };
                }
            }
            var json = JsonConvert.SerializeObject(status);

            return(Json(new { data = json }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 6
0
        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 .......");
        }
Esempio n. 7
0
        //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);
            }
        }