コード例 #1
0
 public static Tasks AddTask(TasksViewModel _TasksViewModel, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
 {
     try
     {
         Tasks _Tasks = new Tasks();
         _Tasks.Id                  = ObjectId.GenerateNewId();
         _Tasks.strId               = ObjectId.GenerateNewId().ToString();
         _Tasks.recipientUserId     = _TasksViewModel.recipientUserId;
         _Tasks.senderUserId        = _TasksViewModel.senderUserId;
         _Tasks.groupId             = _TasksViewModel.groupId;
         _Tasks.readStaus           = Domain.Socioboard.Enum.ReadStaus.Unread;
         _Tasks.taskMessage         = _TasksViewModel.taskMessage;
         _Tasks.taskMessageImageUrl = _TasksViewModel.taskMessageImageUrl;
         _Tasks.taskStatus          = Domain.Socioboard.Enum.TaskStatus.Pending;
         _Tasks.cratedOn            = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
         _Tasks.completeddOn        = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
         _Tasks.feedTableType       = _TasksViewModel.feedTableType;
         _Tasks.feedTableId         = _TasksViewModel.feedId;
         MongoRepository mongorepo = new MongoRepository("Tasks", _appSettings);
         mongorepo.Add <Tasks>(_Tasks);
         return(_Tasks);
     }
     catch (Exception ex)
     {
         throw;
     }
 }
コード例 #2
0
        public static List <Domain.Socioboard.Models.Mongo.GroupShareathon> GroupShareathonByUserId(long userId, Helper.AppSettings _appSettings, Helper.Cache _redisCache)
        {
            List <Domain.Socioboard.Models.Mongo.GroupShareathon> iMmemGroupShareathon = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.GroupShareathon> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupShareathonByUserId + userId);

            if (iMmemGroupShareathon != null)
            {
                return(iMmemGroupShareathon);
            }
            else
            {
                MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings);
                var             ret  = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.GroupShareathon>(t => t.Userid == userId && t.FacebookStatus == 1);
                var             task = Task.Run(async() =>
                {
                    return(await ret);
                });
                _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupShareathonByUserId + userId, task.Result.ToList());
                return(task.Result.ToList());
            }
        }
コード例 #3
0
        public static string EditgroupShareathon(string GroupShareathodId, long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            string[] groupids  = null;
            string   groupId   = "";
            string   groupName = "";

            Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
            string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken);

            groupids = FacebookGroupId.Split(',');
            foreach (var item in groupids)
            {
                string[] grpId = Regex.Split(item, "<:>");
                groupId   = grpId[1] + ',' + groupId;
                groupName = grpId[0] + ',' + groupName;
            }
            try
            {
                MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings);
                var             builders = Builders <BsonDocument> .Filter;
                FilterDefinition <BsonDocument> filter = builders.Eq("strId", GroupShareathodId);
                var update = Builders <BsonDocument> .Update.Set("Facebookaccountid", _Facebookaccounts.FbUserId).Set("Facebookusername", _Facebookaccounts.FbUserName).Set("FacebookPageId", pageid.TrimEnd(','))
                             .Set("Facebookgroupid", groupId.TrimEnd(',')).Set("FacebookPageUrl", FacebookUrl).Set("Facebookgroupname", groupName.TrimEnd(',')).Set("Facebooknameid", FacebookGroupId)
                             .Set("Timeintervalminutes", Timeintervalminutes);

                _ShareathonRepository.Update <Domain.Socioboard.Models.Mongo.GroupShareathon>(update, filter);
                return("Success");
            }
            catch (Exception ex)
            {
                return("Error");
            }
        }
コード例 #4
0
        public static List <Domain.Socioboard.Models.Listening.LinkedGroupPost> GetFacebookGroupFeeds(string keyword, int skip, int count, Helper.Cache _redisCache, Helper.AppSettings _appSettings, ILogger _logger)
        {
            try
            {
                MongoRepository mongorepo  = new MongoRepository("LinkedGroupPost", _appSettings);
                MongoRepository mongoreppo = new MongoRepository("GroupPostKeyWords", _appSettings);
                Domain.Socioboard.Models.Mongo.GroupPostKeyWords _GroupPostKeyWords = new Domain.Socioboard.Models.Mongo.GroupPostKeyWords();
                _GroupPostKeyWords.id          = ObjectId.GenerateNewId();
                _GroupPostKeyWords.strId       = ObjectId.GenerateNewId().ToString();
                _GroupPostKeyWords.keyword     = keyword;
                _GroupPostKeyWords.createdTime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                var retkeyword  = mongoreppo.Find <Domain.Socioboard.Models.Mongo.GroupPostKeyWords>(t => t.keyword.Contains(keyword));
                var taskkeyword = Task.Run(async() =>
                {
                    return(await retkeyword);
                });
                int countkeyword = taskkeyword.Result.Count;
                if (count < 1)
                {
                    mongoreppo.Add <Domain.Socioboard.Models.Mongo.GroupPostKeyWords>(_GroupPostKeyWords);
                }

                var builder = Builders <Domain.Socioboard.Models.Listening.LinkedGroupPost> .Sort;
                var sort    = builder.Descending(t => t.DateTimeOfPost);
                var result  = mongorepo.FindWithRange <Domain.Socioboard.Models.Listening.LinkedGroupPost>(t => t.Message.Contains(keyword), sort, skip, count);
                var task    = Task.Run(async() =>
                {
                    return(await result);
                });
                IList <Domain.Socioboard.Models.Listening.LinkedGroupPost> lstLinkFeeds = task.Result;

                for (int i = 0; i < lstLinkFeeds.Count; i++)
                {
                    //lstLinkFeeds[i].Message = lstLinkFeeds[i].Message.Replace("%3F", " ").Replace("% 21", " ").Replace("%2C", " ");
                    //lstLinkFeeds[i].Message = Regex.Replace(lstLinkFeeds[i].Message, "[|%21 %27 %21 %22]"," ");
                    //                                  // lstLinkFeeds[i].Message = Regex.Replace(lstLinkFeeds[i].Message, @"\r\n?|\n", " ");
                    lstLinkFeeds[i].Message = lstLinkFeeds[i].Message.Replace("\\n", " ").Replace("\\r", " ");
                    lstLinkFeeds[i].Message = System.Compat.Web.HttpUtility.UrlDecode(lstLinkFeeds[i].Message);
                }

                lstLinkFeeds.Select(s => { s.Message = WebUtility.HtmlDecode(s.Message); return(s); }).ToList();
                return(lstLinkFeeds.ToList());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.StackTrace);
                return(null);
            }
        }
コード例 #5
0
        public static string AddPageShareathon(long userId, string FacebookUrl, string FacebookPageId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            Domain.Socioboard.Models.Facebookaccounts objfacebook = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
            string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, objfacebook.AccessToken);

            string[] profileids = null;
            profileids = FacebookPageId.Split(',');
            string facebookpagename = "";

            Domain.Socioboard.Models.Mongo.PageShareathon _Shareathon = new Domain.Socioboard.Models.Mongo.PageShareathon();
            _Shareathon.Id                = ObjectId.GenerateNewId();
            _Shareathon.strId             = ObjectId.GenerateNewId().ToString();
            _Shareathon.Facebookaccountid = objfacebook.FbUserId;
            _Shareathon.Facebookusername  = objfacebook.FbUserName;
            _Shareathon.Facebookpageid    = FacebookPageId;
            _Shareathon.FacebookPageUrl   = FacebookUrl;
            _Shareathon.FacebookPageUrlId = pageid.TrimEnd(',');
            foreach (var item in profileids)
            {
                Domain.Socioboard.Models.Facebookaccounts objfacebookpage = Repositories.FacebookRepository.getFacebookAccount(item, _redisCache, dbr);
                if (objfacebookpage != null)
                {
                    facebookpagename = objfacebookpage.FbUserName + ',' + facebookpagename;
                }
            }
            _Shareathon.Facebookpagename    = facebookpagename.TrimEnd(',');
            _Shareathon.FacebookStatus      = 1;
            _Shareathon.Timeintervalminutes = Timeintervalminutes;
            _Shareathon.Userid             = userId;
            _Shareathon.Lastsharetimestamp = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
            MongoRepository _ShareathonRepository = new MongoRepository("Shareathon", _appSettings);
            var             ret  = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.PageShareathon>(t => t.Facebookpageid == FacebookPageId && t.Facebookaccountid == Facebookaccountid && t.FacebookPageUrl == FacebookUrl && t.Userid == userId && t.FacebookStatus == 1);
            var             task = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count > 0)
            {
                return("already added");
            }
            else
            {
                _ShareathonRepository.Add(_Shareathon);
                return("added successfully");
            }
        }
コード例 #6
0
        public static List <Domain.Socioboard.ViewModels.DiscoveryViewModal> DiscoverySearchGplus(long userId, long groupId, string keyword, Helper.Cache _redisCache, Helper.AppSettings _appSeetings, Model.DatabaseRepository dbr)
        {
            List <Domain.Socioboard.ViewModels.DiscoveryViewModal> iMmemDiscoveryViewModal = _redisCache.Get <List <Domain.Socioboard.ViewModels.DiscoveryViewModal> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryGplus + keyword);

            if (iMmemDiscoveryViewModal != null && iMmemDiscoveryViewModal.Count > 0)
            {
                return(iMmemDiscoveryViewModal);
            }
            else
            {
                List <Domain.Socioboard.ViewModels.DiscoveryViewModal> lstDiscoveryViewModal = Helper.GplusDiscoverySearchHelper.DiscoverySearchGplus(userId, keyword, _appSeetings.GoogleApiKeyForRssFeed);
                _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryGplus + keyword, lstDiscoveryViewModal);
                return(lstDiscoveryViewModal);
            }
        }
コード例 #7
0
        public static string ParseFeedUrl(string TextUrl, string keywords, string userId, Helper.AppSettings _appSettings)
        {
            MongoRepository _RssFeedRepository = new MongoRepository("RssNewsContentsFeeds", _appSettings);

            try
            {
                XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object
                xmlDoc.Load(TextUrl);
                var abc = xmlDoc.DocumentElement.GetElementsByTagName("item");

                foreach (XmlElement item in abc)
                {
                    Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds objRssFeeds = new Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds();
                    try
                    {
                        objRssFeeds.Id = ObjectId.GenerateNewId();
                        // objRssFeeds.strId = ObjectId.GenerateNewId().ToString();



                        try
                        {
                            objRssFeeds.Message = item.ChildNodes[9].InnerText;
                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                        }
                        catch (Exception ex)
                        {
                            try
                            {
                                if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http"))
                                {
                                    objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                }
                                else
                                {
                                    objRssFeeds.Message = item.ChildNodes[2].InnerText;
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                }
                            }
                            catch
                            {
                                objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                            }
                        }


                        try
                        {
                            objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                        }
                        catch (Exception ex)
                        {
                            objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                        }

                        objRssFeeds.Title = item.ChildNodes[0].InnerText;

                        if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http"))
                        {
                            try
                            {
                                objRssFeeds.Image = item.ChildNodes[1].InnerText;
                                objRssFeeds.Image = getBetween(objRssFeeds.Image, "src=\"", "\"");
                                objRssFeeds.Link  = item.ChildNodes[1].InnerText;
                                objRssFeeds.Link  = getBetween(objRssFeeds.Link, "<a href=\"", "\">");
                            }
                            catch (Exception ex)
                            {
                                objRssFeeds.Link = item.ChildNodes[2].InnerText;
                                objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">");
                            }
                        }
                        else
                        {
                            objRssFeeds.Link = item.ChildNodes[2].InnerText;


                            //  objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">");
                        }
                        if (item.BaseURI.Contains("http://feeds.bbci.co.uk") || item.BaseURI.Contains("http://www.hindustantimes.com"))
                        {
                            objRssFeeds.Image = item.ChildNodes[5].OuterXml;
                            objRssFeeds.Image = getBetween(objRssFeeds.Image, "url=\"", "\"");//media:content url="
                        }



                        objRssFeeds.RssFeedUrl = TextUrl;
                        objRssFeeds.UserId     = userId;
                        objRssFeeds.keywords   = keywords;


                        var ret  = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds>(t => t.Link == objRssFeeds.Link && t.UserId == userId);
                        var task = Task.Run(async() =>
                        {
                            return(await ret);
                        });
                        int count = task.Result.Count;
                        if (count < 1)
                        {
                            _RssFeedRepository.Add(objRssFeeds);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                return("ok");
            }
            catch (Exception ex)
            {
                return("invalid url");
            }
        }
コード例 #8
0
        public static string PostRssfeed(Domain.Socioboard.Enum.SocialProfileType profiletype, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr, Helper.Cache _redisCache)
        {
            string          ret = "";
            MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings);
            List <Domain.Socioboard.Models.Mongo.RssFeed> objrssdata = new List <Domain.Socioboard.Models.Mongo.RssFeed>();
            var rt   = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Status == false && t.ProfileType.Equals(profiletype));
            var task = Task.Run(async() =>
            {
                return(await rt);
            });
            IList <Domain.Socioboard.Models.Mongo.RssFeed> _objrssdata = task.Result;

            objrssdata = _objrssdata.ToList();
            foreach (var item in objrssdata)
            {
                if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Facebook)
                {
                    try
                    {
                        Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(item.ProfileId, _redisCache, dbr);
                        ret = Helper.FacebookHelper.FacebookComposeMessageRss(item.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, item.Title, item.Link, item.strId, _appSettings);
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }
                }
                else if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Twitter)
                {
                    try
                    {
                        string message        = "";
                        string UrlShortendata = GetShortenUrl(item.Link, _appSettings);
                        string shortenUrl     = string.Empty;
                        try
                        {
                            JObject JData = JObject.Parse(UrlShortendata);
                            if (JData["status_txt"].ToString() == "OK")
                            {
                                shortenUrl = JData["data"]["url"].ToString();
                            }
                        }
                        catch (Exception ex)
                        {
                        }

                        if (item.Message.Length > 115)
                        {
                            message = item.Message.Substring(0, 115);
                        }
                        else
                        {
                            message = item.Message;
                        }
                        message += " " + shortenUrl;
                        Domain.Socioboard.Models.TwitterAccount _TwitterAccount = Repositories.TwitterRepository.getTwitterAccount(item.ProfileId, _redisCache, dbr);
                        ret = Helper.TwitterHelper.TwitterComposeMessageRss(message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, item.strId, _appSettings);
                    }
                    catch (Exception ex)
                    {
                        return("");
                    }
                }
            }
            return(ret);
        }
コード例 #9
0
        public static string EditFeedUrl(string NewFeedUrl, string OldFeedUrl, string RssId, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl = new Domain.Socioboard.Models.RssFeedUrl();
            _RssFeedUrl        = dbr.Find <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(OldFeedUrl)).FirstOrDefault();
            _RssFeedUrl.rssurl = NewFeedUrl;
            dbr.Update <Domain.Socioboard.Models.RssFeedUrl>(_RssFeedUrl);
            _RssFeedUrl = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(NewFeedUrl));
            try
            {
                MongoRepository _RssRepository         = new MongoRepository("Rss", _appSettings);
                var             builders               = Builders <BsonDocument> .Filter;
                FilterDefinition <BsonDocument> filter = builders.Eq("strId", RssId);
                var update = Builders <BsonDocument> .Update.Set("RssFeedUrl", NewFeedUrl).Set("rssFeedUrl", _RssFeedUrl);

                _RssRepository.Update <Domain.Socioboard.Models.Mongo.Rss>(update, filter);
                return("Success");
            }
            catch (Exception ex)
            {
                return("Error");
            }
        }
コード例 #10
0
        public static List <TaskCommentsViewModel> GetAllCompletedTasksOfUserAndGroup(Int64 recipientUserId, Int64 groupId, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository _dbr)
        {
            try
            {
                List <TaskCommentsViewModel> lstTaskCommentsViewModel = new List <TaskCommentsViewModel>();
                MongoRepository taskmongorepo        = new MongoRepository("Tasks", _appSettings);
                MongoRepository taskcommentmongorepo = new MongoRepository("TaskComments", _appSettings);
                var             ret  = taskmongorepo.Find <Tasks>(t => t.groupId == groupId && t.recipientUserId == recipientUserId && t.taskStatus == Domain.Socioboard.Enum.TaskStatus.Completed);
                var             task = Task.Run(async() =>
                {
                    return(await ret);
                });
                IList <Tasks> lstTask = task.Result.ToList();
                foreach (Tasks item in lstTask)
                {
                    TaskCommentsViewModel taskCommentsViewModel = new TaskCommentsViewModel();
                    var ret1  = taskcommentmongorepo.Find <TaskComments>(t => t.taskId == item.strId);
                    var task1 = Task.Run(async() =>
                    {
                        return(await ret1);
                    });
                    taskCommentsViewModel.tasks = item;
                    taskCommentsViewModel.user  = _dbr.FindSingle <User>(t => t.Id == item.senderUserId);
                    IList <TaskComments>        lstTaskComment      = task1.Result.ToList();
                    List <TaskCommentViewModel> lstCommentViewModel = new List <TaskCommentViewModel>();
                    foreach (TaskComments item1 in lstTaskComment)
                    {
                        TaskCommentViewModel commentViewModel = new TaskCommentViewModel();
                        commentViewModel.taskComments = item1;
                        commentViewModel.user         = _dbr.FindSingle <User>(t => t.Id == item1.userId);
                        lstCommentViewModel.Add(commentViewModel);
                    }

                    taskCommentsViewModel.lstTaskComments = lstCommentViewModel;
                    lstTaskCommentsViewModel.Add(taskCommentsViewModel);
                }
                return(lstTaskCommentsViewModel);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(new List <TaskCommentsViewModel>());
            }
        }
コード例 #11
0
        public static List <Domain.Socioboard.Models.Mongo.RssFeed> GetPostedRssDataByUser(long userId, long groupId, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            string[]        profileids     = null;
            MongoRepository _RssRepository = new MongoRepository("RssFeed", _appSettings);
            List <Domain.Socioboard.Models.Mongo.RssFeed> lstRss           = new List <Domain.Socioboard.Models.Mongo.RssFeed>();
            List <Domain.Socioboard.Models.Groupprofiles> lstGroupprofiles = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => t.groupId == groupId).ToList();

            profileids = lstGroupprofiles.Select(t => t.profileId).ToArray();
            var ret  = _RssRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => profileids.Contains(t.ProfileId));
            var task = Task.Run(async() =>
            {
                return(await ret);
            });

            return(lstRss = task.Result.ToList());
        }
コード例 #12
0
 public static void DeleteTaskComment(string taskCommnetId, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
 {
     try
     {
         MongoRepository taskcommentmongorepo = new MongoRepository("TaskComments", _appSettings);
         taskcommentmongorepo.DeleteMany <TaskComments>(t => t.strId == taskCommnetId);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #13
0
        public static void MarkTaskCompleted(string taskId, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
        {
            try
            {
                MongoRepository taskmongorepo = new MongoRepository("Tasks", _appSettings);
                var             ret           = taskmongorepo.Find <Tasks>(t => t.strId == taskId);
                var             task          = Task.Run(async() =>
                {
                    return(await ret);
                });
                Tasks selectedTask = task.Result.ToList().FirstOrDefault();
                selectedTask.completeddOn = (long)Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                selectedTask.taskStatus   = Domain.Socioboard.Enum.TaskStatus.Completed;
                //taskmongorepo.UpdateReplace(selectedTask, t=>t.strId == taskId );

                FilterDefinition <BsonDocument> filter = new BsonDocument("strId", selectedTask.strId);
                var update = Builders <BsonDocument> .Update.Set("completeddOn", selectedTask.completeddOn).Set("taskStatus", selectedTask.taskStatus);

                taskmongorepo.Update <Tasks>(update, filter);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #14
0
 public static TaskComments AddTaskComment(Int64 userId, string taskId, string commentText, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
 {
     try
     {
         TaskComments _TaskComments = new TaskComments();
         _TaskComments.Id          = ObjectId.GenerateNewId();
         _TaskComments.strId       = ObjectId.GenerateNewId().ToString();
         _TaskComments.userId      = userId;
         _TaskComments.taskId      = taskId;
         _TaskComments.commentText = commentText;
         _TaskComments.createdOn   = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
         MongoRepository mongorepo = new MongoRepository("TaskComments", _appSettings);
         mongorepo.Add <TaskComments>(_TaskComments);
         return(_TaskComments);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #15
0
        public static List <Domain.Socioboard.ViewModels.DiscoveryViewModal> DiscoverySearchTwitter(long userId, long groupId, string keyword, Helper.Cache _redisCache, Helper.AppSettings _appSeetings, Model.DatabaseRepository dbr)
        {
            List <Domain.Socioboard.ViewModels.DiscoveryViewModal> iMmemDiscoveryViewModal = _redisCache.Get <List <Domain.Socioboard.ViewModels.DiscoveryViewModal> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryTwitter + keyword);

            if (iMmemDiscoveryViewModal != null && iMmemDiscoveryViewModal.Count > 0)
            {
                return(iMmemDiscoveryViewModal);
            }
            else
            {
                oAuthTwitter oauth = new oAuthTwitter();
                Domain.Socioboard.Models.Discovery             _discovery    = new Domain.Socioboard.Models.Discovery();
                List <Domain.Socioboard.Models.TwitterAccount> lsttwtaccount = dbr.Find <Domain.Socioboard.Models.TwitterAccount>(t => t.oAuthSecret != null).Take(20).ToList();
                List <Domain.Socioboard.Models.Discovery>      lstdiscovery  = dbr.Find <Domain.Socioboard.Models.Discovery>(t => t.SearchKeyword.Equals(keyword) && t.userId == userId).ToList();
                if (lstdiscovery.Count == 0)
                {
                    _discovery.createTime    = DateTime.UtcNow;
                    _discovery.GroupId       = groupId;
                    _discovery.SearchKeyword = keyword;
                    _discovery.userId        = userId;
                    dbr.Add(_discovery);
                }
                foreach (Domain.Socioboard.Models.TwitterAccount item in lsttwtaccount)
                {
                    oauth.AccessToken       = item.oAuthToken;
                    oauth.AccessTokenSecret = item.oAuthSecret;
                    oauth.TwitterUserId     = item.twitterUserId;
                    oauth.TwitterScreenName = item.twitterScreenName;
                    SetCofigDetailsForTwitter(oauth, _appSeetings);

                    try
                    {
                        Users  _Users         = new Users();
                        JArray _AccountVerify = _Users.Get_Account_Verify_Credentials(oauth);
                        string id             = (string)(_AccountVerify[0]["id_str"]);
                        break;
                    }
                    catch (Exception ex)
                    {
                    }
                }
                List <Domain.Socioboard.ViewModels.DiscoveryViewModal> lstdiscoveryDiscoveryViewModal = Helper.TwitterHelper.DiscoverySearchTwitter(oauth, keyword, userId, groupId);
                if (lstdiscoveryDiscoveryViewModal.Count > 0)
                {
                    _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryTwitter + keyword, lstdiscoveryDiscoveryViewModal);
                }
                return(lstdiscoveryDiscoveryViewModal);
            }
        }
コード例 #16
0
 public static string DeleteFeedUrl(string RssId, Model.DatabaseRepository dbr, Helper.AppSettings _appSettings)
 {
     try
     {
         MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings);
         var             builders       = Builders <Domain.Socioboard.Models.Mongo.Rss> .Filter;
         FilterDefinition <Domain.Socioboard.Models.Mongo.Rss> filter = builders.Eq("strId", RssId);
         _RssRepository.Delete <Domain.Socioboard.Models.Mongo.Rss>(filter);
         return("success");
     }
     catch (Exception ex)
     {
         return("Error");
     }
 }
コード例 #17
0
 public static void SetCofigDetailsForTwitter(oAuthTwitter OAuth, Helper.AppSettings _appSettings)
 {
     OAuth.ConsumerKey       = _appSettings.twitterConsumerKey;
     OAuth.ConsumerKeySecret = _appSettings.twitterConsumerScreatKey;
     OAuth.CallBackUrl       = _appSettings.twitterRedirectionUrl;
 }
コード例 #18
0
        public static string AddRssFeed(string TextUrl, long Userid, Domain.Socioboard.Models.RssFeedUrl _RssFeedUrl, string profileId, Domain.Socioboard.Enum.SocialProfileType ProfileType, string profileimageurl, string profilename, Model.DatabaseRepository dbr, Helper.AppSettings _appSettings)
        {
            int             UrlAdded       = 0;
            string          RetMsg         = string.Empty;
            MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings);

            string rt   = ParseFeedUrl(TextUrl, ProfileType, profileId, Userid, profilename, profileimageurl, _appSettings);
            var    ret  = _RssRepository.Find <Domain.Socioboard.Models.Mongo.Rss>(t => t.RssFeedUrl.Equals(TextUrl) && t.ProfileId.Contains(profileId) && t.ProfileType == ProfileType && t.UserId.Equals(Userid));
            var    task = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count < 1)
            {
                if (rt == "ok")
                {
                    Domain.Socioboard.Models.Mongo.Rss _Rss = new Domain.Socioboard.Models.Mongo.Rss();
                    _Rss.Id              = ObjectId.GenerateNewId();
                    _Rss.strId           = ObjectId.GenerateNewId().ToString();
                    _Rss.RssFeedUrl      = TextUrl;
                    _Rss.ProfileType     = ProfileType;
                    _Rss.ProfileId       = profileId;
                    _Rss.UserId          = Userid;
                    _Rss.ProfileImageUrl = profileimageurl;
                    _Rss.ProfileName     = profilename;
                    _Rss.rssFeedUrl      = _RssFeedUrl;
                    _Rss.CreatedOn       = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss");
                    _RssRepository.Add(_Rss);
                    UrlAdded++;
                }
                else
                {
                    return("Please Fill Correct Url For Feeds");
                }
            }
            else
            {
            }
            if (UrlAdded == 1)
            {
                RetMsg = "Url for " + UrlAdded.ToString() + " account is added";
            }
            else if (UrlAdded > 1)
            {
                RetMsg = "Url for " + UrlAdded.ToString() + " accounts is added";
            }
            else
            {
                RetMsg = "Url has already added";
            }
            return(RetMsg);
        }
コード例 #19
0
        public static string AddRssContentsUrl(string keywords, string userId, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            var _rssNewsContents = new MongoRepository("RssNewsContents", _appSettings);

            var list = new List <string>();

            list = findUrl(keywords).ToList();

            var _rssnews = new RssNewsContents();

            Domain.Socioboard.Models.RssFeedUrl _RssContentFeeds = new Domain.Socioboard.Models.RssFeedUrl();


            foreach (var urlValue in list)
            {
                if (urlValue != null)
                {
                    string rt = ParseFeedUrl(urlValue.ToString(), keywords, userId, _appSettings);

                    _RssContentFeeds = dbr.FindSingle <Domain.Socioboard.Models.RssFeedUrl>(t => t.rssurl.Contains(urlValue) && t.Keywords != null);

                    if (_RssContentFeeds == null)
                    {
                        _RssContentFeeds = new Domain.Socioboard.Models.RssFeedUrl
                        {
                            rssurl     = urlValue,
                            LastUpdate = DateTime.UtcNow,
                            Keywords   = keywords
                        };

                        try
                        {
                            dbr.Add(_RssContentFeeds);
                        }

                        catch (Exception error)
                        {
                            // ignored
                        }
                    }

                    var ret  = _rssNewsContents.Find <RssNewsContents>(t => t.RssFeedUrl.Equals(urlValue) && t.ProfileId.Contains(userId));
                    var task = Task.Run(async() =>
                    {
                        return(await ret);
                    });

                    int count = task.Result.Count;

                    if (count < 1)
                    {
                        _rssnews.Id         = ObjectId.GenerateNewId();
                        _rssnews.ProfileId  = userId;
                        _rssnews.RssFeedUrl = urlValue;
                        _rssnews.LastUpdate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                        _rssNewsContents.Add(_rssnews);
                    }
                    else
                    {
                        return("Data already added");
                    }
                }
            }
            return("added successfully");
        }
コード例 #20
0
        public static string ParseFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl, Helper.AppSettings _appSettings)
        {
            MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings);

            try
            {
                XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object
                xmlDoc.Load(TextUrl);
                var abc = xmlDoc.DocumentElement.GetElementsByTagName("item");

                foreach (XmlElement item in abc)
                {
                    Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed();
                    try
                    {
                        objRssFeeds.Id              = ObjectId.GenerateNewId();
                        objRssFeeds.strId           = ObjectId.GenerateNewId().ToString();
                        objRssFeeds.ProfileName     = profileName;
                        objRssFeeds.ProfileImageUrl = profileImageUrl;

                        try
                        {
                            objRssFeeds.Message = item.ChildNodes[9].InnerText;
                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                            objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                        }
                        catch (Exception ex)
                        {
                            try
                            {
                                if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http"))
                                {
                                    objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                }
                                else
                                {
                                    objRssFeeds.Message = item.ChildNodes[2].InnerText;
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                    objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                                }
                            }
                            catch
                            {
                                objRssFeeds.Message = item.ChildNodes[1].InnerText;
                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[&#8230;]", "");
                                objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>|&nbsp;", string.Empty);
                            }
                        }


                        try
                        {
                            objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                        }
                        catch (Exception ex)
                        {
                            objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss");
                        }

                        objRssFeeds.Title = item.ChildNodes[0].InnerText;

                        if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http"))
                        {
                            try
                            {
                                objRssFeeds.Link = item.ChildNodes[1].InnerText;
                            }
                            catch (Exception ex)
                            {
                                objRssFeeds.Link = item.ChildNodes[2].InnerText;
                            }
                        }
                        else
                        {
                            objRssFeeds.Link = item.ChildNodes[2].InnerText;
                        }
                        objRssFeeds.RssFeedUrl  = TextUrl;
                        objRssFeeds.ProfileId   = profileid;
                        objRssFeeds.ProfileType = profiletype;
                        objRssFeeds.Status      = false;
                        var ret  = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype));
                        var task = Task.Run(async() =>
                        {
                            return(await ret);
                        });
                        int count = task.Result.Count;
                        if (count < 1)
                        {
                            _RssFeedRepository.Add(objRssFeeds);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                return("ok");
            }
            catch (Exception ex)
            {
                return("invalid url");
            }
        }
コード例 #21
0
        public static List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> GetRssNewsPostedFeeds(string userId, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
        {
            string[] profileids = null;
            //MongoRepository _RssRepository = new MongoRepository("RssNewsContentsFeeds", _appSettings);
            List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> _RssRepository = _redisCache.Get <List <Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterRecent100Feeds + userId);

            if (_RssRepository != null)
            {
                return(_RssRepository);
            }
            else
            {
                MongoRepository mongorepo = new MongoRepository("RssNewsContentsFeeds", _appSettings);
                // MongoRepository mongorepo = new MongoRepository("MongoTwitterFeed", settings);
                var builder = Builders <RssNewsContentsFeeds> .Sort;
                var sort    = builder.Descending(t => t.PublishingDate);
                var result  = mongorepo.FindWithRange <RssNewsContentsFeeds>(t => t.UserId.Equals(userId), sort, 0, 200);
                var task    = Task.Run(async() =>
                {
                    return(await result);
                });
                IList <RssNewsContentsFeeds> lstRss = task.Result;

                if (lstRss != null)
                {
                    _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheTwitterRecent100Feeds + userId, lstRss.ToList());

                    return(lstRss.ToList());
                }

                return(null);
            }

            // List<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds> lstRss = new List<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds>();
            //List<Domain.Socioboard.Models.Groupprofiles> lstGroupprofiles = dbr.Find<Domain.Socioboard.Models.Groupprofiles>(t => t.profileOwnerId == userId).ToList();
            //profileids = lstGroupprofiles.Select(t => t.profileId).ToArray();
            //var ret = _RssRepository.Find<Domain.Socioboard.Models.Mongo.RssNewsContentsFeeds>(t => t.UserId == userId);//UserId
            //var task = Task.Run(async () =>
            //{
            //    return await ret;
            //});
            // return lstRss = task.Result.ToList();
        }
コード例 #22
0
        public static IList <Domain.Socioboard.Models.Groupprofiles> GetYtGroupChannel(Int64 userId, Helper.AppSettings settings, ILogger _logger, Model.DatabaseRepository dbr)
        {
            IList <Domain.Socioboard.Models.YoutubeGroupInvite> _lstMembers = dbr.Find <Domain.Socioboard.Models.YoutubeGroupInvite>(t => t.UserId == userId && t.AccessSBUserId != userId && t.Active == true);
            List <Int64> userOwnerIdss = _lstMembers.Select(t => t.AccessSBUserId).ToList();
            IList <Domain.Socioboard.Models.Groupprofiles> _lstchannelsss = dbr.Find <Domain.Socioboard.Models.Groupprofiles>(t => userOwnerIdss.Contains(t.profileOwnerId) && t.profileType == Domain.Socioboard.Enum.SocialProfileType.YouTube);

            return(_lstchannelsss);
        }
コード例 #23
0
        public static List <Domain.Socioboard.Models.Listening.FaceBookGroupPost> GetFacebookGroupFeeds(string keyword, int skip, int count, Helper.Cache _redisCache, Helper.AppSettings _appSettings)
        {
            //List<Domain.Socioboard.Models.Listening.FacebookGroupPost> iMmemFacebookGroupPost = _redisCache.Get<List<Domain.Socioboard.Models.Listening.FacebookGroupPost>>(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryFacebookGroupPost + keyword);
            //if (iMmemFacebookGroupPost != null && iMmemFacebookGroupPost.Count > 0)
            //{
            //    return iMmemFacebookGroupPost;
            //}
            //else
            //{
            MongoRepository mongorepo  = new MongoRepository("FaceBookGroupPost", _appSettings);
            MongoRepository mongoreppo = new MongoRepository("GroupPostKeyWords", _appSettings);
            var             builder    = Builders <Domain.Socioboard.Models.Listening.FaceBookGroupPost> .Sort;
            var             sort       = builder.Descending(t => t.DateTimeOfPost);
            var             result     = mongorepo.FindWithRange <Domain.Socioboard.Models.Listening.FaceBookGroupPost>(t => t.Message.Contains(keyword), sort, skip, count);

            //var result = mongorepo.FindAll<Domain.Socioboard.Models.Listening.FaceBookGroupPost>();
            var task = Task.Run(async() =>
            {
                return(await result);
            });
            IList <Domain.Socioboard.Models.Listening.FaceBookGroupPost> lstFbFeeds = task.Result;

            for (int i = 0; i < lstFbFeeds.Count; i++)
            {
                // lstFbFeeds[i].Message = lstFbFeeds[i].Message.Replace("%20"," ").Replace("21%", " ").Replace("2%"," ").Replace("\n"," ").Replace("%3F"," ").Replace("% 21"," ");

                //lstFbFeeds[i].Message = Regex.Replace(lstFbFeeds[i].Message,"[%21%27%21%22]"," ");
                lstFbFeeds[i].Message = lstFbFeeds[i].Message.Replace("\\n", " ").Replace("\\r", " ");
                lstFbFeeds[i].Message = HttpUtility.UrlDecode(lstFbFeeds[i].Message);
            }
            lstFbFeeds = lstFbFeeds.GroupBy(t => t.Message).Select(g => g.First()).ToList();

            if (lstFbFeeds.Count > 0)
            {
                // _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryFacebookGroupPost + keyword, lstFbFeeds.ToList());
            }

            Domain.Socioboard.Models.Mongo.GroupPostKeyWords _GroupPostKeyWords = new Domain.Socioboard.Models.Mongo.GroupPostKeyWords();
            _GroupPostKeyWords.id          = ObjectId.GenerateNewId();
            _GroupPostKeyWords.strId       = ObjectId.GenerateNewId().ToString();
            _GroupPostKeyWords.keyword     = keyword;
            _GroupPostKeyWords.createdTime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
            var retkeyword  = mongoreppo.Find <Domain.Socioboard.Models.Mongo.GroupPostKeyWords>(t => t.keyword.Contains(keyword));
            var taskkeyword = Task.Run(async() =>
            {
                return(await retkeyword);
            });
            int countkeyword = taskkeyword.Result.Count;

            if (count < 1)
            {
                mongoreppo.Add <Domain.Socioboard.Models.Mongo.GroupPostKeyWords>(_GroupPostKeyWords);
            }
            lstFbFeeds.Select(s => { s.Message = WebUtility.HtmlDecode(s.Message); return(s); }).ToList();
            return(lstFbFeeds.ToList());
            //}
        }
コード例 #24
0
        public static Domain.Socioboard.Models.YoutubeGroupInvite InviteGroupMember(Int64 userId, string emailId, Helper.AppSettings settings, ILogger _logger, Model.DatabaseRepository dbr)
        {
            YoutubeGroupInvite _objGrp = new YoutubeGroupInvite();

            IList <Domain.Socioboard.Models.User> lstUser = dbr.Find <Domain.Socioboard.Models.User>(t => t.Id == userId || t.EmailId == emailId);

            Domain.Socioboard.Models.User _SBUser       = lstUser.FirstOrDefault(t => t.Id == userId);
            Domain.Socioboard.Models.User _SBUserInvite = lstUser.FirstOrDefault(t => t.EmailId == emailId);

            IList <Domain.Socioboard.Models.YoutubeGroupInvite> lstGrpUser = dbr.Find <Domain.Socioboard.Models.YoutubeGroupInvite>(t => t.AccessSBUserId == userId);

            Domain.Socioboard.Models.YoutubeGroupInvite _grpOwner  = lstGrpUser.FirstOrDefault(t => t.UserId == userId);
            Domain.Socioboard.Models.YoutubeGroupInvite _grpInvMem = lstGrpUser.FirstOrDefault(t => t.SBEmailId == emailId);

            if (_grpOwner == null)
            {
                _objGrp.UserId       = _SBUser.Id;
                _objGrp.Owner        = true;
                _objGrp.OwnerName    = _SBUser.FirstName + " " + _SBUser.LastName;
                _objGrp.Active       = true;
                _objGrp.SBUserName   = _SBUser.FirstName + " " + _SBUser.LastName;
                _objGrp.SBEmailId    = _SBUser.EmailId;
                _objGrp.OwnerEmailid = _SBUser.EmailId;
                if (_SBUser.ProfilePicUrl == null || _SBUser.ProfilePicUrl == "")
                {
                    _objGrp.SBProfilePic = "https://i.imgur.com/zqN47Qp.png";
                }
                else
                {
                    _objGrp.SBProfilePic = _SBUser.ProfilePicUrl;
                }
                _objGrp.AccessSBUserId = userId;
                dbr.Add(_objGrp);
            }

            if (_SBUserInvite != null && _grpInvMem == null)
            {
                _objGrp.UserId       = _SBUserInvite.Id;
                _objGrp.Owner        = false;
                _objGrp.OwnerName    = _SBUser.FirstName + " " + _SBUser.LastName;
                _objGrp.OwnerEmailid = _SBUser.EmailId;
                _objGrp.Active       = false;
                _objGrp.SBUserName   = _SBUserInvite.FirstName + " " + _SBUserInvite.LastName;
                _objGrp.SBEmailId    = _SBUserInvite.EmailId;
                if (_SBUserInvite.ProfilePicUrl == null || _SBUserInvite.ProfilePicUrl == "")
                {
                    _objGrp.SBProfilePic = "https://i.imgur.com/zqN47Qp.png";
                }
                else
                {
                    _objGrp.SBProfilePic = _SBUserInvite.ProfilePicUrl;
                }
                _objGrp.AccessSBUserId       = userId;
                _objGrp.EmailValidationToken = SBHelper.RandomString(35);
                dbr.Add(_objGrp);
                return(_objGrp);
            }
            else if (_SBUserInvite == null && _grpInvMem == null)
            {
                _objGrp.UserId               = 0;
                _objGrp.Owner                = false;
                _objGrp.OwnerName            = _SBUser.FirstName + " " + _SBUser.LastName;
                _objGrp.OwnerEmailid         = _SBUser.EmailId;
                _objGrp.Active               = false;
                _objGrp.SBUserName           = "******";
                _objGrp.SBEmailId            = emailId;
                _objGrp.SBProfilePic         = "https://i.imgur.com/zqN47Qp.png";
                _objGrp.EmailValidationToken = SBHelper.RandomString(35);
                _objGrp.AccessSBUserId       = userId;
                dbr.Add(_objGrp);
                return(_objGrp);
            }

            else if (_grpInvMem.Active == false)
            {
                return(_grpInvMem);
            }
            else
            {
                return(null);
            }
        }
コード例 #25
0
        public static string AddGroupShareathon(long userId, string FacebookUrl, string FacebookGroupId, string Facebookaccountid, int Timeintervalminutes, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            string[] profileids = null;
            string[] groupids   = null;
            string   groupId    = "";
            string   groupName  = "";

            Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = Repositories.FacebookRepository.getFacebookAccount(Facebookaccountid, _redisCache, dbr);
            string pageid = Helper.FacebookHelper.GetFbPageDetails(FacebookUrl, _Facebookaccounts.AccessToken);

            Domain.Socioboard.Models.Mongo.GroupShareathon _GroupShareathon = new Domain.Socioboard.Models.Mongo.GroupShareathon();
            _GroupShareathon.Id     = ObjectId.GenerateNewId();
            _GroupShareathon.strId  = ObjectId.GenerateNewId().ToString();
            _GroupShareathon.Userid = userId;
            _GroupShareathon.Timeintervalminutes = Timeintervalminutes;
            _GroupShareathon.FacebookStatus      = 1;
            _GroupShareathon.FacebookPageUrl     = FacebookUrl;
            _GroupShareathon.Facebookpageid      = pageid.TrimEnd(',');
            _GroupShareathon.Facebooknameid      = FacebookGroupId;
            groupids = FacebookGroupId.Split(',');
            foreach (var item in groupids)
            {
                string[] grpId = Regex.Split(item, "<:>");
                groupId   = grpId[1] + ',' + groupId;
                groupName = grpId[0] + ',' + groupName;
            }
            _GroupShareathon.Facebookgroupid    = groupId.TrimEnd(',');
            _GroupShareathon.Facebookgroupname  = groupName.TrimEnd(',');
            _GroupShareathon.Facebookaccountid  = _Facebookaccounts.FbUserId;
            _GroupShareathon.Facebookusername   = _Facebookaccounts.FbUserName;
            _GroupShareathon.AccessToken        = _Facebookaccounts.AccessToken;
            _GroupShareathon.Lastsharetimestamp = Helper.DateExtension.ConvertToUnixTimestamp(DateTime.UtcNow);
            MongoRepository _ShareathonRepository = new MongoRepository("GroupShareathon", _appSettings);

            profileids = pageid.TrimEnd(',').Split(',');
            groupids   = FacebookGroupId.TrimEnd(',').Split(',');
            string[] arrgroupids = groupId.Split(',');
            var      ret         = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.GroupShareathon>(t => profileids.Contains(t.Facebookpageid) && t.Facebookaccountid == Facebookaccountid && t.Userid == userId && arrgroupids.Contains(t.Facebookgroupid));
            var      task        = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count > 0)
            {
                return("already added");
            }
            else
            {
                _ShareathonRepository.Add(_GroupShareathon);
                return("added successfully");
            }
        }
コード例 #26
0
        public static IList <Domain.Socioboard.Models.YoutubeGroupInvite> GetGroupMembers(Int64 userId, Helper.AppSettings settings, ILogger _logger, Model.DatabaseRepository dbr)
        {
            IList <Domain.Socioboard.Models.YoutubeGroupInvite> _lstMembers = dbr.Find <Domain.Socioboard.Models.YoutubeGroupInvite>(t => t.AccessSBUserId == userId);

            return(_lstMembers);
        }
コード例 #27
0
        public static List <Domain.Socioboard.Models.Mongo.LinkShareathon> LinkShareathonByUserId(long userId, Helper.AppSettings _appSettings, Helper.Cache _redisCache)
        {
            MongoRepository _ShareathonRepository = new MongoRepository("LinkShareathon", _appSettings);
            var             ret  = _ShareathonRepository.Find <Domain.Socioboard.Models.Mongo.LinkShareathon>(t => t.Userid == userId && t.IsActive);
            var             task = Task.Run(async() =>
            {
                return(await ret);
            });

            return(task.Result.ToList());
        }
コード例 #28
0
        public static List <Domain.Socioboard.Models.InstagramDiscoveryFeed> DiscoverySearchinstagram(string keyword, long userId, long groupId, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            List <Domain.Socioboard.Models.InstagramDiscoveryFeed> iMmemInstagramDiscoveryFeed = _redisCache.Get <List <Domain.Socioboard.Models.InstagramDiscoveryFeed> >(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryInstagram + keyword);
            List <Domain.Socioboard.Models.InstagramDiscoveryFeed> lstnstagramDiscoveryFeed    = new List <Domain.Socioboard.Models.InstagramDiscoveryFeed>();

            if (iMmemInstagramDiscoveryFeed != null && iMmemInstagramDiscoveryFeed.Count > 0)
            {
                return(iMmemInstagramDiscoveryFeed);
            }
            else
            {
                List <Domain.Socioboard.Models.Instagramaccounts> _Instagramaccounts = dbr.Find <Domain.Socioboard.Models.Instagramaccounts>(t => t.AccessToken != null).ToList();

                foreach (var item in _Instagramaccounts)
                {
                    lstnstagramDiscoveryFeed = Helper.InstagramHelper.DiscoverySearchinstagram(keyword, item.AccessToken, _appSettings.InstagramClientKey);
                    if (lstnstagramDiscoveryFeed != null)
                    {
                        _redisCache.Set(Domain.Socioboard.Consatants.SocioboardConsts.CacheDiscoveryInstagram + keyword, lstnstagramDiscoveryFeed);
                        break;
                    }
                }
                return(lstnstagramDiscoveryFeed);
            }
        }
コード例 #29
0
        public static string AddFacebookFeedShareDetail(long userId, string socialProfile, string FacebookPageId, string socialmedia, Helper.Cache _redisCache, Helper.AppSettings _appSettings, Model.DatabaseRepository dbr)
        {
            MongoRepository _fbFeedShareRepository = new MongoRepository("FacebookPageFeedShare", _appSettings);

            Domain.Socioboard.Models.Mongo.FacebookPageFeedShare _facebookfeedsShare = new Domain.Socioboard.Models.Mongo.FacebookPageFeedShare();
            _facebookfeedsShare.Id             = ObjectId.GenerateNewId();
            _facebookfeedsShare.strId          = ObjectId.GenerateNewId().ToString();
            _facebookfeedsShare.userId         = userId;
            _facebookfeedsShare.pageId         = FacebookPageId;
            _facebookfeedsShare.socialProfiles = socialProfile;
            _facebookfeedsShare.socialmedia    = socialmedia;
            _facebookfeedsShare.scheduleTime   = DateTime.UtcNow;
            var ret  = _fbFeedShareRepository.Find <Domain.Socioboard.Models.Mongo.FacebookPageFeedShare>(t => t.pageId == FacebookPageId && t.socialProfiles == socialProfile);
            var task = Task.Run(async() =>
            {
                return(await ret);
            });
            int count = task.Result.Count;

            if (count < 1)
            {
                _fbFeedShareRepository.Add(_facebookfeedsShare);
            }

            return("added successfully");
        }
コード例 #30
0
        public static List <Domain.Socioboard.ViewModels.YoutubeProfiles> GetYoutubeAccount(string code, Helper.AppSettings _appSettings)
        {
            Domain.Socioboard.ViewModels.YoutubeProfiles        _YoutubeChannels;
            List <Domain.Socioboard.ViewModels.YoutubeProfiles> lstYoutubeProfiles = new List <Domain.Socioboard.ViewModels.YoutubeProfiles>();
            string   access_token  = string.Empty;
            string   refresh_token = string.Empty;
            Channels _Channels     = new Channels("575089347457-74q0u81gj88ve5bfdmbklcf2dnc0353q.apps.googleusercontent.com", "JRtS_TaeYpKOJWBCqt9h8-iG", "http://localhost:9821/GoogleManager/Google");

            try
            {
                oAuthTokenYoutube objToken = new oAuthTokenYoutube("575089347457-74q0u81gj88ve5bfdmbklcf2dnc0353q.apps.googleusercontent.com", "JRtS_TaeYpKOJWBCqt9h8-iG", "http://localhost:9821/GoogleManager/Google");


                string  accessToken = objToken.GetRefreshToken(code);
                JObject JData       = JObject.Parse(accessToken);


                try
                {
                    refresh_token = JData["refresh_token"].ToString();
                }
                catch (Exception ex)
                {
                    access_token = JData["access_token"].ToString();
                    objToken.RevokeToken(access_token);
                    return(null);
                }

                access_token = JData["access_token"].ToString();

                string  channelsdata = _Channels.Get_Channel_List(access_token, "snippet,contentDetails,statistics", 50, true);
                JObject JChanneldata = JObject.Parse(channelsdata);


                foreach (var item in JChanneldata["items"])
                {
                    try
                    {
                        string channelid        = item["id"].ToString();
                        string channelname      = item["snippet"]["title"].ToString();
                        string channelimage     = item["snippet"]["thumbnails"]["default"]["url"].ToString();
                        string publishdate      = item["snippet"]["publishedAt"].ToString();
                        string viewscount       = item["statistics"]["viewCount"].ToString();
                        string commentscount    = item["statistics"]["commentCount"].ToString();
                        string subscriberscount = item["statistics"]["subscriberCount"].ToString();
                        string videoscount      = item["statistics"]["videoCount"].ToString();
                        string channeldescrip   = item["snippet"]["description"].ToString();

                        try
                        {
                            _YoutubeChannels                  = new Domain.Socioboard.ViewModels.YoutubeProfiles();
                            _YoutubeChannels.Accesstoken      = access_token;
                            _YoutubeChannels.Refreshtoken     = refresh_token;
                            _YoutubeChannels.YtChannelId      = channelid;
                            _YoutubeChannels.YtChannelName    = channelname;
                            _YoutubeChannels.YtChannelImage   = channelimage;
                            _YoutubeChannels.PublishDate      = publishdate;
                            _YoutubeChannels.viewscount       = viewscount;
                            _YoutubeChannels.commentscount    = commentscount;
                            _YoutubeChannels.subscriberscount = subscriberscount;
                            _YoutubeChannels.videoscount      = videoscount;
                            _YoutubeChannels.YtChannelDescrip = channeldescrip;
                            lstYoutubeProfiles.Add(_YoutubeChannels);
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                    catch (Exception e)
                    {
                    }
                }
            }
            catch
            {
            }
            return(lstYoutubeProfiles);
        }