public ActionResult AccountOptions() { TempData["SelectedMenu"] = "Account"; TempData["SelectedSubMenu"] = "Options"; User userObj = (User)Session["user"]; Account accountObj = (Account)Session["account"]; if (userObj.PrimaryUser == false) return RedirectToAction("Index", "Admin"); AccountInfomationViewModel accountinfor = new AccountInfomationViewModel(); //get time zone System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> tz; tz = TimeZoneInfo.GetSystemTimeZones(); List<TimeZoneViewModel> tzList = new List<TimeZoneViewModel>(); foreach (var t in tz) { TimeZoneViewModel tzvmodel = new TimeZoneViewModel(); tzvmodel.DisplayName = t.DisplayName; tzvmodel.ID = t.Id; tzList.Add(tzvmodel); } accountinfor.TimeZoneList = tzList; if (userObj != null) { var account = accountRepo.Accounts.Where(aid => aid.ID == userObj.AccountID).FirstOrDefault(); accountinfor.AccountName = account.AccountName; accountinfor.ContactName = userObj.FullName; accountinfor.EmailAddress = userObj.Email; accountinfor.TimeZone = account.TimeZone; accountinfor.BillingAddress = account.BusinessAddress; //get numberof connection int planid = account.PlanID; int planLevel = planid * 10; //get billing plan var billingPlan = planRepository.Plans.Where(pid => pid.ID == planid).FirstOrDefault(); accountinfor.BillingPlan = billingPlan.Name; // get saved quantity var accDetails = accountRepo.Accounts.Where(aguid => aguid.AccountGUID == accountObj.AccountGUID).FirstOrDefault(); var planLeval = planRepository.Plans.Where(pid => pid.ID == accDetails.PlanID).FirstOrDefault().PlanLevel; var featureQuality = featureRepository.Features.Where(pid => pid.PlanLevel == planLeval & pid.Type == "Max Items per Folder").FirstOrDefault(); var savedQuality = purchRepository.Purchases.Where(fid => fid.FeatureID == featureQuality.ID && fid.AccountGUID == accountObj.AccountGUID).FirstOrDefault(); if (savedQuality != null) { var quantitySaved = (savedQuality.Quantity) / (featureQuality.Quantity); accountinfor.NoOfConnection = quantitySaved * 5; } else { accountinfor.NoOfConnection = 0; } accountinfor.ListofUsers = new List<Domain.Entities.User>(); accountinfor.ListofUsers = userRepository.Users.Where(u => u.AccountID == userObj.AccountID).ToList(); //var errorLogsObj = CCErrorLogRepository.CCErrorLogs.Where(guid => guid.AccountGUID == accountObj.AccountGUID & (guid.ErrorType == "Exchange Connection" | guid.ErrorType == "Sync")).Take(100).ToList(); accountinfor.ErrorLogList = new List<CCErrorLog>(); //accountinfor.ErrorLogList = errorLogsObj; var plans = planRepository.Plans.ToList(); // plans.RemoveAll(pname => pname.Name == "Free"); accountinfor.Plans = plans; // get selected plan var planID = accountRepo.Accounts.FirstOrDefault(aguid => aguid.AccountGUID == accountObj.AccountGUID).PlanID; accountinfor.PlanID = planID; // get selected plan details var selectedPlanDetails = plans.FirstOrDefault(pid => pid.ID == planID); selectedPlanDetails.Price = selectedPlanDetails.Price; //packageViewModel.SelectedPlanDetails = selectedPlanDetails; // get card details from stripe var stripeCustomerID = accountRepo.Accounts.FirstOrDefault(aguid => aguid.AccountGUID == accountObj.AccountGUID).StripeCustomerID; if (stripeCustomerID != null) { // default card details var customer = new StripeCustomerService(); customer.ApiKey = "sk_test_4Xusc3Meo8gniONh6dDRZvlp"; var cusRes = customer.Get(stripeCustomerID); var defaultCardID = cusRes.StripeDefaultCardId; //packageViewModel.DefaultCardID = defaultCardID; // get saved quantity featureQuality = featureRepository.Features.FirstOrDefault(pid => pid.PlanLevel == selectedPlanDetails.PlanLevel & pid.Type == "Max Items per Folder"); savedQuality = purchRepository.Purchases.FirstOrDefault(fid => fid.FeatureID == featureQuality.ID && fid.AccountGUID == accountObj.AccountGUID); if (savedQuality != null) { var quantitySaved = (savedQuality.Quantity) / (featureQuality.Quantity); accountinfor.QuantitySaved = quantitySaved; } else { accountinfor.QuantitySaved = 1; } var cards = new StripeCardService(); cards.ApiKey = "sk_test_4Xusc3Meo8gniONh6dDRZvlp"; var objCard = cards.List(stripeCustomerID, null); List<CardViewModel> allCardDetails = new List<CardViewModel>(); foreach (var card in objCard) { CardViewModel objcard = new CardViewModel(); objcard.CardID = card.Id; objcard.Name = card.Name; objcard.Number = "**** " + card.Last4; objcard.Type = card.Brand; objcard.ExpireDate = card.ExpirationYear + "/" + card.ExpirationMonth; allCardDetails.Add(objcard); } //packageViewModel.CardDetails = allCardDetails; } else { //packageViewModel.CardDetails = null; } } return View(accountinfor); }
public ActionResult EditAccountInfor(AccountInfomationViewModel accountinfor) { User userObj = (User)Session["user"]; if (userObj != null) { if (userObj.PrimaryUser == false) return RedirectToAction("Index", "Admin"); Account account = new Account(); account = accountRepo.Accounts.Where(id => id.ID == userObj.AccountID).FirstOrDefault(); account.TimeZone = accountinfor.TimeZone; account.BusinessAddress = accountinfor.BillingAddress; var res = accountRepo.UpdateAccountInfo(account); if (res) { Session["timeZone"] = accountinfor.TimeZone; } } return RedirectToAction("AccountOptions", "Admin"); }