Exemple #1
0
 public ActionResult Index(PagedModel <StaticTextViewModel> pageModel)
 {
     pageModel.LoadData(RepositoryFactory.Action <IStaticTextData>().GetAll().OrderByDescending(item => item.PublishDate));
     return(ViewWithAjax(pageModel));
 }
Exemple #2
0
 /// <summary>
 /// URL: StaticPage/Edit
 /// </summary>
 /// <param name="id">The id.</param>
 /// <returns>Action result.</returns>
 public ActionResult Edit(Guid id)
 {
     return(ViewWithAjax(RepositoryFactory.Action <IStaticTextCrud>().FindByPk(id)));
 }
Exemple #3
0
        /// <summary>
        /// URL: /Project/Details
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns>Action result.</returns>
        public ActionResult Details(string id)
        {
            var job = RepositoryFactory.Action <JobAction>().Load("jobs/" + id);

            return(ViewWithAjax(job));
        }
Exemple #4
0
        /// <summary>
        /// Does the job.
        /// </summary>
        protected override void DoJob()
        {
            // actions declaration
            var twitterConnection = RepositoryFactory.Action <ITwitterConnection>();
            var twitterData       = RepositoryFactory.Action <ITwitterStatusAction>();
            var searchAction      = RepositoryFactory.Action <ISearchAction>();

            // token declaration
            var oAuthToken = new OAuthToken
            {
                ConsumerKey    = Settings.Twitter.ConsumerKey.Value,
                ConsumerSecret = Settings.Twitter.ConsumerSecret.Value,
                Token          = Settings.Twitter.Token.Value,
                TokenSecret    = Settings.Twitter.TokenSecret.Value
            };
            var twitterUser = Settings.Twitter.TwitterAccount.Value;

            // check if token is not valid log
            if (!twitterConnection.IsTokenValid(oAuthToken))
            {
                Logger.Fatal("Twitter OAuthToken is not valid go to /Admin/Twitter/Authorize to register new one!!");
                return;
            }


            bool proceedNextPage = false;
            int  currentPage     = 0;
            var  statusToStore   = new List <TwitterStatus>();

            do
            {
                var items = twitterConnection.GetStatusesForUser(oAuthToken, twitterUser, currentPage);

                using (RepositoryFactory.StartUnitOfWork())
                {
                    var storedItems = twitterData.GetByTwitterIds(items.Select(status => status.TwitterId));


                    // add if item not yet stored
                    foreach (var twitterStatus in items)
                    {
                        if (!storedItems.Any(item => item.TwitterId == twitterStatus.TwitterId) &&
                            !statusToStore.Any(item => item.TwitterId == twitterStatus.TwitterId))
                        {
                            statusToStore.Add(twitterStatus);
                        }
                    }
                    ++currentPage;
                    proceedNextPage = items.Length > 0 && storedItems.Length < items.Length;
                }
            } while (proceedNextPage);

            using (var tran = RepositoryFactory.StartTransaction(IoC.Resolve <SearchUpdateContext>()))
            {
                foreach (var twitterStatus in statusToStore.OrderByDescending(item => item.TwitterId))
                {
                    twitterStatus.Modified          = twitterStatus.CreatedDate;
                    twitterStatus.CreatedBy         = null;
                    twitterStatus.PublishDate       = twitterStatus.CreatedDate;
                    twitterStatus.AreCommentAllowed = false;
                    searchAction.IndexTwitterStatus(tran,
                                                    twitterData.CreateStatus(twitterStatus));
                }
                tran.Commit();
            }
            Logger.Debug("There were '{0}' new statuses to store for {1}", statusToStore.Count, twitterUser);
        }
Exemple #5
0
        public void Test_save()
        {
            using (RepositoryFactory.StartUnitOfWork())
            {
                var item = new RssItemCRUDModel()
                {
                    FeedItemId  = "new",
                    Title       = "title_new",
                    Text        = "Text_new",
                    Description = "DescriptionNew",
                    Author      = "twit_usernew",
                    Url         = "url_new",
                    FeedId      = _feed.Id,
                    Published   = DateTime.Now
                };

                var action = RepositoryFactory.Action <IRssItemAction>();

                using (var tran = RepositoryFactory.StartTransaction())
                {
                    item = action.Save(item);
                    tran.Commit();
                }

                WaitForIndexing();

                var storedItem = SessionFactory <RssItem> .Queryable.First(rssItem => rssItem.FeedItemId == item.FeedItemId);

                Assert.AreEqual(item.FeedItemId, storedItem.FeedItemId);
                Assert.AreEqual(item.FeedId, storedItem.RssFeed.Id);
                Assert.AreEqual(item.Title, storedItem.Title);
                Assert.AreEqual(item.Text, storedItem.Text);
                Assert.AreEqual(item.Description, storedItem.Description);
                Assert.AreEqual(item.Published, storedItem.CreatedDate);
                Assert.AreEqual(item.Published, storedItem.Modified);
                Assert.AreEqual(item.Published, storedItem.PublishDate);
                Assert.AreEqual(item.Author, storedItem.Author);
                Assert.AreEqual(item.Url, storedItem.Url);
                Assert.AreEqual(false, storedItem.Hidden);
                Assert.AreEqual(false, storedItem.AreCommentAllowed);

                item = new RssItemCRUDModel()
                {
                    FeedItemId  = "change",
                    Title       = "title_change",
                    Text        = "Text_change",
                    Description = "Descriptionchange",
                    Author      = "twit_userchange",
                    Url         = "url_change",
                    FeedId      = _feed.Id,
                    Published   = DateTime.Now
                };

                using (var tran = RepositoryFactory.StartTransaction())
                {
                    item = action.Save(item);
                    tran.Commit();
                }

                WaitForIndexing();

                storedItem = SessionFactory <RssItem> .Queryable.First(rssItem => rssItem.FeedItemId == item.FeedItemId);

                Assert.AreEqual(item.FeedItemId, storedItem.FeedItemId);
                Assert.AreEqual(item.FeedId, storedItem.RssFeed.Id);
                Assert.AreEqual(item.Title, storedItem.Title);
                Assert.AreEqual(item.Text, storedItem.Text);
                Assert.AreEqual(item.Description, storedItem.Description);
                Assert.AreEqual(item.Published, storedItem.CreatedDate);
                Assert.AreEqual(item.Published, storedItem.Modified);
                Assert.AreEqual(item.Published, storedItem.PublishDate);
                Assert.AreEqual(item.Author, storedItem.Author);
                Assert.AreEqual(item.Url, storedItem.Url);
                Assert.AreEqual(false, storedItem.Hidden);
                Assert.AreEqual(false, storedItem.AreCommentAllowed);
            }
            using (RepositoryFactory.StartUnitOfWork())
            {
                var storedItem = SessionFactory <RssItem> .Queryable.First(rssItem => rssItem.FeedItemId == "change");

                var id = storedItem.RssFeed.Id;
            }
        }