Exemplo n.º 1
0
        public ActionResult Cleanup()
        {
            using (var editQueueManager = new EditQueueManager())
            {
                editQueueManager.CleanupRedundantEditQueueitems();

                return(View());
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Cleanup()
        {
            using (var editQueueManager = new EditQueueManager())
            {
                await editQueueManager.CleanupRedundantEditQueueitems();

                return(RedirectToAction("Index", "EditQueue"));
            }
        }
Exemplo n.º 3
0
        public ActionResult MarkAsProcessed(int id)
        {
            //marks item as processed without publishing the edit
            using (var editQueueManager = new EditQueueManager())
            {
                editQueueManager.ProcessEditQueueItem(id, false, (int)Session["UserID"]);

                return(RedirectToAction("Index", "EditQueue"));
            }
        }
Exemplo n.º 4
0
        public ActionResult Publish(int id)
        {
            //approves/publishes the given edit directly
            using (var editQueueManager = new EditQueueManager())
            {
                editQueueManager.ProcessEditQueueItem(id, true, (int)Session["UserID"]);

                return(RedirectToAction("Index", "EditQueue"));
            }
        }
Exemplo n.º 5
0
        //
        // GET: /EditQueue/

        public ActionResult Index(EditQueueFilter filter)
        {
            using (var editQueueManager = new EditQueueManager())
            {
                var list = editQueueManager.GetEditQueueItems(filter);
                ViewBag.EditFilter  = filter;
                ViewBag.IsUserAdmin = (Session["IsAdministrator"] != null && (bool)Session["IsAdministrator"] == true);

                return(View(list));
            }
        }
Exemplo n.º 6
0
 public ActionResult Publish(int id)
 {
     //approves/publishes the given edit directly (if user has permission)
     using (var editQueueManager = new EditQueueManager())
     {
         if (!IsReadOnlyMode)
         {
             editQueueManager.ProcessEditQueueItem(id, true, (int)UserID);
         }
         return(RedirectToAction("Index", "EditQueue"));
     }
 }
Exemplo n.º 7
0
        //
        // GET: /EditQueue/

        public ActionResult Index(EditQueueFilter filter)
        {
            using (var editQueueManager = new EditQueueManager())
            {
                var list = editQueueManager.GetEditQueueItems(filter);
                ViewBag.EditFilter  = filter;
                ViewBag.IsUserAdmin = IsUserAdmin;
                if (IsUserSignedIn)
                {
                    ViewBag.UserProfile = new UserManager().GetUser((int)UserID);
                }
                return(View(list));
            }
        }
Exemplo n.º 8
0
        //
        // GET: /EditQueue/

        public ActionResult Index(EditQueueFilter filter)
        {
            using (var editQueueManager = new EditQueueManager())
            {
                var list = editQueueManager.GetEditQueueItems(filter);
                ViewBag.EditFilter  = filter;
                ViewBag.IsUserAdmin = (Session["IsAdministrator"] != null && (bool)Session["IsAdministrator"] == true);
                if (IsUserSignedIn)
                {
                    ViewBag.UserProfile = new UserManager().GetUser(int.Parse(Session["UserID"].ToString()));
                }
                return(View(list));
            }
        }
Exemplo n.º 9
0
        public async Task <JsonResult> PollForTasks(string key)
        {
            int          notificationsSent = 0;
            MirrorStatus mirrorStatus      = null;

            //poll for periodic tasks (subscription notifications etc)
            if (key == System.Configuration.ConfigurationManager.AppSettings["AdminPollingAPIKey"])
            {
                //send all pending subscription notifications
                if (bool.Parse(ConfigurationManager.AppSettings["EnableSubscriptionChecks"]) == true)
                {
                    try
                    {
                        //TODO: can't run in seperate async thread becuase HttpContext is not available
                        string templateFolderPath = _host.ContentRootPath + "/templates/Notifications";

                        notificationsSent = await new UserSubscriptionManager().SendAllPendingSubscriptionNotifications(templateFolderPath);
                    }
                    catch (Exception)
                    {
                        ;;  //failed to send notifications
                    }
                }


                var autoApproveDays = 3;

                var poiManager = new POIManager();
                var newPois    = await poiManager.GetPOIListAsync(new APIRequestParams { SubmissionStatusTypeID = 1 });

                var user = new UserManager().GetUser((int)StandardUsers.System);

                foreach (var poi in newPois)
                {
                    if (poi.SubmissionStatusTypeID == (int)StandardSubmissionStatusTypes.Submitted_UnderReview || poi.SubmissionStatusTypeID == (int)StandardSubmissionStatusTypes.Imported_UnderReview)
                    {
                        if (poi.DateCreated < DateTime.UtcNow.AddDays(-autoApproveDays))
                        {
                            poi.SubmissionStatusTypeID = (int)StandardSubmissionStatusTypes.Submitted_Published;
                            new SubmissionManager().PerformPOISubmission(poi, user);
                        }
                    }
                }

                // check for edit queue items to auto approve
                using (var editQueueManager = new EditQueueManager())
                {
                    var queueItems = editQueueManager.GetEditQueueItems(new EditQueueFilter {
                        ShowProcessed = false
                    })
                                     .Where(q => q.DateProcessed == null).ToList()
                                     .OrderBy(q => q.DateSubmitted);

                    foreach (var i in queueItems)
                    {
                        if (i.DateSubmitted < DateTime.UtcNow.AddDays(-autoApproveDays))
                        {
                            editQueueManager.ProcessEditQueueItem(i.ID, true, (int)StandardUsers.System, true, "Auto Approved");
                        }
                    }
                }


                //update cache mirror
                try
                {
                    _cache.Set("_MirrorRefreshInProgress", true);
                    mirrorStatus = await CacheManager.RefreshCachedData(CacheUpdateStrategy.Modified);
                }
                catch (Exception)
                {
                    ;; //failed to update cache
                }
                finally
                {
                    _cache.Set("_MirrorRefreshInProgress", false);
                }

                //update stats
                if (_cache.Get("_StatsRefreshed") == null)
                {
                    using (var dataSummaryManager = new API.Common.DataSummary.DataSummaryManager())
                    {
                        await dataSummaryManager.RefreshStats();

                        _cache.Set("_StatsRefreshed", true);
                    }
                }
            }
            return(Json(new { NotificationsSent = notificationsSent, MirrorStatus = mirrorStatus }));
        }