public ActionResult SubscriptionDelete(int id) { var subscriptionManager = new UserSubscriptionManager(); subscriptionManager.DeleteSubscription((int)UserID, id); return(RedirectToAction("Subscriptions")); }
public ActionResult SubscriptionEdit(UserSubscription userSubscription) { if (ModelState.IsValid) { if (!string.IsNullOrEmpty(Request.Form["CountryCode"])) { //TEMP fix country id passed as ISO using (var refDataManager = new ReferenceDataManager()) { var country = refDataManager.GetCountryByISO(Request.Form["CountryCode"]); userSubscription.CountryID = country.ID; } } else { userSubscription.Country = null; userSubscription.CountryID = null; } userSubscription = new UserSubscriptionManager().UpdateUserSubscription(userSubscription); return(RedirectToAction("Subscriptions", "Profile")); } PopulateSubscriptionEditorViewBag(userSubscription); return(View(userSubscription)); }
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 try { notificationsSent = new UserSubscriptionManager().SendAllPendingSubscriptionNotifications(); } catch (Exception) { ;; //failed to send notifications } //update cache mirror try { HttpContext.Application["_MirrorRefreshInProgress"] = true; mirrorStatus = await new CacheProviderMongoDB().PopulatePOIMirror(CacheProviderMongoDB.CacheUpdateStrategy.Modified); } catch (Exception) { ;; //failed to update cache } finally { HttpContext.Application["_MirrorRefreshInProgress"] = false; } } return(Json(new { NotificationsSent = notificationsSent, MirrorStatus = mirrorStatus }, JsonRequestBehavior.AllowGet)); }
public ActionResult SubscriptionEdit(int?id) { var subscription = new UserSubscription(); var userId = (int)UserID; if (id != null) { subscription = new UserSubscriptionManager().GetUserSubscription(userId, (int)id); } else { LocationLookupResult locationGuess = PerformLocationGuess(true); subscription.UserID = userId; subscription.NotificationFrequencyMins = 60 * 24 * 7;//default to 1 week subscription.DistanceKM = 100; if (locationGuess != null && locationGuess.Country_Code != null) { subscription.CountryID = locationGuess.CountryID; subscription.Country = new Country { ID = (int)locationGuess.CountryID, Title = locationGuess.Country_Name, ISOCode = locationGuess.Country_Code }; } else { //default to UK subscription.CountryID = 1; using (var refDataManager = new ReferenceDataManager()) { subscription.Country = refDataManager.GetCountryByISO("GB"); } } subscription.Latitude = null; subscription.Longitude = null; subscription.IsEnabled = true; subscription.NotifyComments = true; subscription.NotifyPOIAdditions = true; subscription.NotifyPOIUpdates = true; if (locationGuess != null && locationGuess.SuccessfulLookup) { if (locationGuess.CountryID != null) { subscription.CountryID = locationGuess.CountryID; } if (locationGuess.Latitude != null && locationGuess.Longitude != null) { subscription.Latitude = locationGuess.Latitude; subscription.Longitude = locationGuess.Longitude; } } subscription.Title = "Charging Locations Near Me"; } PopulateSubscriptionEditorViewBag(subscription); return(View("SubscriptionEdit", subscription)); }
public ActionResult SubscriptionDelete(int id) { var subscriptionManager = new UserSubscriptionManager(); var userId = int.Parse(Session["UserID"].ToString()); subscriptionManager.DeleteSubscription(userId, id); return(RedirectToAction("Subscriptions")); }
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 = Server.MapPath("~/templates/notifications"); await Task.Run(() => { notificationsSent = new UserSubscriptionManager().SendAllPendingSubscriptionNotifications(templateFolderPath); }); } catch (Exception) { ;; //failed to send notifications } } //update cache mirror try { HttpContext.Application["_MirrorRefreshInProgress"] = true; mirrorStatus = await CacheManager.RefreshCachedData(CacheUpdateStrategy.Modified); } catch (Exception) { ;; //failed to update cache } finally { HttpContext.Application["_MirrorRefreshInProgress"] = false; } //update stats if (this.HttpContext.Cache["_StatsRefreshed"] == null) { var dataSummaryManager = new API.Common.DataSummary.DataSummaryManager(); dataSummaryManager.RefreshStats(); this.HttpContext.Cache.Insert("_StatsRefreshed", true, null, DateTime.Now.AddHours(6), System.Web.Caching.Cache.NoSlidingExpiration); } } return(Json(new { NotificationsSent = notificationsSent, MirrorStatus = mirrorStatus }, JsonRequestBehavior.AllowGet)); }
public ActionResult Subscriptions() { UserManager userManager = new UserManager(); var user = userManager.GetUser(int.Parse(Session["UserID"].ToString())); ViewBag.UserProfile = user; ViewBag.ReferenceData = new ReferenceDataManager().GetCoreReferenceData(); var list = new UserSubscriptionManager().GetUserSubscriptions(user.ID); return(View(list)); }
public ActionResult Subscriptions() { UserManager userManager = new UserManager(); var user = userManager.GetUser((int)UserID); ViewBag.UserProfile = user; ViewBag.ReferenceData = new ReferenceDataManager().GetCoreReferenceData(new APIRequestParams()); var list = new UserSubscriptionManager().GetUserSubscriptions(user.ID); return(View(list)); }
public async Task <ActionResult> Subscriptions() { using (var userManager = new UserManager()) { var user = userManager.GetUser((int)UserID); ViewBag.UserProfile = user; using (var refDataManager = new ReferenceDataManager()) { ViewBag.ReferenceData = await refDataManager.GetCoreReferenceDataAsync(new APIRequestParams()); } var list = new UserSubscriptionManager().GetUserSubscriptions(user.ID); return(View(list)); } }
private SubscriptionBrowseModel PrepareSubscriptionBrowseModel(SubscriptionBrowseModel model) { if (model.DateFrom == null) { model.DateFrom = DateTime.UtcNow.AddDays(-30); } else { //enforce min date from if (model.DateFrom < DateTime.UtcNow.AddYears(-1)) { model.DateFrom = DateTime.UtcNow.AddYears(-1); } } var subscriptionManager = new UserSubscriptionManager(); var userId = int.Parse(Session["UserID"].ToString()); model.SubscriptionResults = subscriptionManager.GetSubscriptionMatches((int)model.SubscriptionID, userId, dateFrom: model.DateFrom); model.SummaryHTML = subscriptionManager.GetSubscriptionMatchHTMLSummary(model.SubscriptionResults); model.Subscription = subscriptionManager.GetUserSubscription(userId, (int)model.SubscriptionID); return(model); }
private async Task <SubscriptionBrowseModel> PrepareSubscriptionBrowseModel(SubscriptionBrowseModel model) { if (model.DateFrom == null) { model.DateFrom = DateTime.UtcNow.AddDays(-30); } else { //enforce min date from if (model.DateFrom < DateTime.UtcNow.AddYears(-1)) { model.DateFrom = DateTime.UtcNow.AddYears(-1); } } var subscriptionManager = new UserSubscriptionManager(); model.SubscriptionResults = await subscriptionManager.GetSubscriptionMatches((int)model.SubscriptionID, (int)UserID, dateFrom : model.DateFrom); model.SummaryHTML = subscriptionManager.GetSubscriptionMatchHTMLSummary(model.SubscriptionResults); model.Subscription = subscriptionManager.GetUserSubscription((int)UserID, (int)model.SubscriptionID); return(model); }
private SubscriptionBrowseModel PrepareSubscriptionBrowseModel(SubscriptionBrowseModel model) { if (model.DateFrom == null) model.DateFrom = DateTime.UtcNow.AddDays(-30); else { //enforce min date from if (model.DateFrom < DateTime.UtcNow.AddYears(-1)) { model.DateFrom = DateTime.UtcNow.AddYears(-1); } } var subscriptionManager = new UserSubscriptionManager(); var userId = int.Parse(Session["UserID"].ToString()); model.SubscriptionResults = subscriptionManager.GetSubscriptionMatches((int)model.SubscriptionID, userId, dateFrom: model.DateFrom); model.SummaryHTML = subscriptionManager.GetSubscriptionMatchHTMLSummary(model.SubscriptionResults); model.Subscription = subscriptionManager.GetUserSubscription(userId, (int)model.SubscriptionID); return model; }
public ActionResult Subscriptions() { UserManager userManager = new UserManager(); var user = userManager.GetUser(int.Parse(Session["UserID"].ToString())); ViewBag.UserProfile = user; ViewBag.ReferenceData = new ReferenceDataManager().GetCoreReferenceData(); var list = new UserSubscriptionManager().GetUserSubscriptions(user.ID); return View(list); }
public void PromoteUserToCountryEditor(int authorizingUserId, int userId, List<int> CountryIDs, bool autoCreateSubscriptions, bool removePermission) { var authorisingUser = GetUser(authorizingUserId); var user = GetUser(userId); foreach (var countryId in CountryIDs) { //grant country editor permissions for each country GrantPermission(user, StandardPermissionAttributes.CountryLevel_Editor, countryId.ToString(), removePermission, authorisingUser); } if (!removePermission && autoCreateSubscriptions) { var subscriptionManager = new UserSubscriptionManager(); var refDataManager = new ReferenceDataManager(); var allSubscriptions = subscriptionManager.GetUserSubscriptions(userId); foreach (var countryId in CountryIDs) { //if no subscription exists for this country for this user, create one if (!allSubscriptions.Any(s => s.CountryID == countryId)) { var country = refDataManager.GetCountry(countryId); subscriptionManager.UpdateUserSubscription(new UserSubscription { Title = "All Updates For " + country.Title, IsEnabled = true, DateCreated = DateTime.UtcNow, CountryID = countryId, NotificationFrequencyMins = 720, NotifyComments = true, NotifyMedia = true, NotifyPOIAdditions = true, NotifyPOIEdits = true, NotifyPOIUpdates = true, UserID = userId }); } } } }
public ActionResult SubscriptionEdit(int? id) { var subscription = new UserSubscription(); var userId = int.Parse(Session["UserID"].ToString()); if (id != null) { subscription = new UserSubscriptionManager().GetUserSubscription(userId, (int)id); } else { LocationLookupResult locationGuess = PerformLocationGuess(true); subscription.UserID = userId; subscription.NotificationFrequencyMins = 60 * 24 * 7;//default to 1 week subscription.DistanceKM = 100; if (locationGuess != null && locationGuess.Country_Code != null) { subscription.CountryID = locationGuess.CountryID; subscription.Country = new Country { ID = (int)locationGuess.CountryID, Title = locationGuess.Country_Name, ISOCode = locationGuess.Country_Code }; } else { //default to UK subscription.CountryID = 1; subscription.Country = new ReferenceDataManager().GetCountryByISO("GB"); } subscription.Latitude = null; subscription.Longitude = null; subscription.IsEnabled = true; subscription.NotifyComments = true; subscription.NotifyPOIAdditions = true; subscription.NotifyPOIUpdates = true; if (locationGuess != null && locationGuess.SuccessfulLookup) { if (locationGuess.CountryID != null) subscription.CountryID = locationGuess.CountryID; if (locationGuess.Latitude != null && locationGuess.Longitude != null) { subscription.Latitude = locationGuess.Latitude; subscription.Longitude = locationGuess.Longitude; } } subscription.Title = "Charging Locations Near Me"; } PopulateSubscriptionEditorViewBag(subscription); return View("SubscriptionEdit", subscription); }
public ActionResult SubscriptionDelete(int id) { var subscriptionManager = new UserSubscriptionManager(); var userId = int.Parse(Session["UserID"].ToString()); subscriptionManager.DeleteSubscription(userId, id); return RedirectToAction("Subscriptions"); }
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 try { //TODO: can't run in seperate async thread becuase HttpContext is not available string templateFolderPath = Server.MapPath("~/templates/notifications"); await Task.Run(() => { notificationsSent = new UserSubscriptionManager().SendAllPendingSubscriptionNotifications(templateFolderPath); }); } catch (Exception) { ; ; //failed to send notifications } //update cache mirror try { HttpContext.Application["_MirrorRefreshInProgress"] = true; mirrorStatus = await CacheManager.RefreshCachedData(CacheUpdateStrategy.Modified); } catch (Exception) { ; ;//failed to update cache } finally { HttpContext.Application["_MirrorRefreshInProgress"] = false; } } return Json(new { NotificationsSent = notificationsSent, MirrorStatus = mirrorStatus }, JsonRequestBehavior.AllowGet); }
public ActionResult SubscriptionEdit(UserSubscription userSubscription) { if (ModelState.IsValid) { if (!string.IsNullOrEmpty(Request["CountryCode"])) { //TEMP fix country id passed as ISO var country = new ReferenceDataManager().GetCountryByISO(Request["CountryCode"]); userSubscription.CountryID = country.ID; } else { userSubscription.Country = null; userSubscription.CountryID = null; } userSubscription = new UserSubscriptionManager().UpdateUserSubscription(userSubscription); return RedirectToAction("Subscriptions", "Profile"); } PopulateSubscriptionEditorViewBag(userSubscription); return View(userSubscription); }