예제 #1
0
        public ActionResult Activate(string id, string subscriptionId)
        {
            var repo = AccountsRepositoryFactory.GetAccountsRepository();

            repo.ActivateSubscription(id, subscriptionId);
            return(RedirectToAction("Index"));
        }
예제 #2
0
        public ActionResult AddSubscription(string id, SubscriptionDetails details)
        {
            var repo = AccountsRepositoryFactory.GetAccountsRepository();

            repo.CreateSubscription(id, details);
            return(RedirectToAction("Index"));
        }
예제 #3
0
        public ActionResult Index()
        {
            var identity       = User.Identity as ClaimsIdentity;
            var userToken      = GetAuthenticatedUserToken(identity);
            var accountDetails = AccountsRepositoryFactory.GetAccountsRepository().GetAccountDetailsForUser(userToken);

            return(View(accountDetails));
        }
        public ActionResult Index()
        {
            var repo        = AccountsRepositoryFactory.GetAccountsRepository();
            var summaries   = repo.GetAccountSummaries();
            var summaryList = summaries.ToList();

            return(View("Index", summaryList));
        }
예제 #5
0
        public ActionResult Stores(string subscription)
        {
            var identity           = User.Identity as ClaimsIdentity;
            var userToken          = GetAuthenticatedUserToken(identity);
            var accountsRepository = AccountsRepositoryFactory.GetAccountsRepository();
            var stores             = accountsRepository.GetStores(userToken, subscription);

            return(View(stores));
        }
        public ActionResult CreateAccount(string accountIdOrUserToken, string emailAddress)
        {
            var repo      = AccountsRepositoryFactory.GetAccountsRepository();
            var accountId = repo.CreateAccount(accountIdOrUserToken, emailAddress);

            return(new JsonResult {
                Data = accountId
            });
        }
        public ActionResult SetAdminFlag(string accountId, bool isAdmin)
        {
            var repo           = AccountsRepositoryFactory.GetAccountsRepository();
            var accountDetails = repo.UpdateAccount(accountId, isAdmin: isAdmin);

            return(new JsonResult {
                Data = accountDetails
            });
        }
예제 #8
0
        public ActionResult Manage(string id)
        {
            ViewBag.StoreId     = id;
            ViewBag.AccessLevel = (StoreAccessLevel)RouteData.Values["_accessLevel"];
            ViewBag.AccountId   = ((StoreAccessKey)RouteData.Values["_access"]).AccountId;
            var repo        = AccountsRepositoryFactory.GetAccountsRepository();
            var storeDetail = repo.GetStoreDetail(id);

            return(View(storeDetail));
        }
예제 #9
0
        public ActionResult NewAccount(AccountRegistration registration)
        {
            //ValidateModel(registration);
            if (!ModelState.IsValid)
            {
                return(View("Register", registration));
            }
            var identity  = User.Identity as ClaimsIdentity;
            var userToken = GetAuthenticatedUserToken(identity);

            AccountsRepositoryFactory.GetAccountsRepository().CreateAccount(userToken, registration.EmailAddress);
            return(RedirectToAction("Index"));
        }
        public ActionResult GetAccount(string accountIdOrUserToken)
        {
            var repo           = AccountsRepositoryFactory.GetAccountsRepository();
            var accountDetails = repo.GetAccountDetails(accountIdOrUserToken);

            if (accountDetails == null)
            {
                accountDetails = repo.GetAccountDetailsForUser(accountIdOrUserToken);
            }
            return(new JsonResult {
                Data = accountDetails, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
예제 #11
0
        public ActionResult AccessKeys()
        {
            var userId   = GetAuthenticatedUserToken(User.Identity as ClaimsIdentity);
            var accounts = AccountsRepositoryFactory.GetAccountsRepository();
            var details  = accounts.GetAccountDetailsForUser(userId);

            if (details == null)
            {
                return(new HttpNotFoundResult());
            }
            return(new JsonResult {
                Data = new { details.PrimaryKey, details.SecondaryKey }
            });
        }
예제 #12
0
 public ActionResult CreateStore(string subscriptionId, string label)
 {
     try
     {
         var identity           = User.Identity as ClaimsIdentity;
         var userId             = GetAuthenticatedUserToken(identity);
         var accountsRepository = AccountsRepositoryFactory.GetAccountsRepository();
         var store = accountsRepository.CreateStore(userId, subscriptionId, label);
         BrightstarCluster.Instance.CreateStore(store.Id);
         return(RedirectToAction("Subscription", new { subscriptionId }));
     }
     catch (Exception ex)
     {
         ViewBag.ErrorMessage = "Store creation failed.";
         ViewBag.ErrorDetail  = ex.Message;
         return(View("AccountError"));
     }
 }
예제 #13
0
        public ActionResult Subscription(string subscriptionId)
        {
            var identity           = User.Identity as ClaimsIdentity;
            var userToken          = GetAuthenticatedUserToken(identity);
            var repo               = AccountsRepositoryFactory.GetAccountsRepository();
            var account            = repo.GetAccountDetailsForUser(userToken);
            var subscriptionDetail = repo.GetSubscriptionDetailsForUser(userToken, subscriptionId);

            if (subscriptionDetail == null)
            {
                return(new HttpNotFoundResult());
            }
            var apiEndpoint = UrlHelper.GenerateUrl("ApiStoreListRoute", null, null,
                                                    new RouteValueDictionary(new { subscription = subscriptionDetail.Id }),
                                                    RouteTable.Routes, ControllerContext.RequestContext, false);
            var apiUrl = String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Headers["Host"], apiEndpoint);

            return(View("Subscription", new AccountAndSubscription(account, subscriptionDetail, apiUrl)));
        }
예제 #14
0
        public ActionResult CreateTrial()
        {
            var identity           = User.Identity as ClaimsIdentity;
            var userToken          = GetAuthenticatedUserToken(identity);
            var accountsRepository = AccountsRepositoryFactory.GetAccountsRepository();
            var account            = accountsRepository.GetAccountDetailsForUser(userToken);

            try
            {
                accountsRepository.CreateSubscription(account.AccountId, SubscriptionDetails.TrialDetails);
                return(RedirectToAction("Index"));
            }
            catch (AccountsRepositoryException are)
            {
                ViewBag.ErrorMessage = "Could not create trial subscription";
                if (are.ErrorCode == AccountsRepositoryException.AccountHasTrialSubscription)
                {
                    ViewBag.ErrorDetail = "This account already has a trial subscription";
                }
                return(View("AccountError"));
            }
        }
예제 #15
0
        public ActionResult Index(string id)
        {
            var accountDetail = AccountsRepositoryFactory.GetAccountsRepository().GetAccountDetails(id);

            return(View(accountDetail));
        }
 private IAccountsRepository GetAccountsRepository()
 {
     return(AccountsRepositoryFactory.GetAccountsRepository());
 }
예제 #17
0
 public ActionResult Delete(string id)
 {
     AccountsRepositoryFactory.GetAccountsRepository().DeleteStore(id);
     BrightstarCluster.Instance.DeleteStore(id);
     return(RedirectToAction("Index", "Account"));
 }