public async Task <ActionResult> ActivateFunction(ActivateFunctionViewModel vm) { var emails = GetEmails(vm.Users.InputStream).ToArray(); var backTests = (vm.BackTests == null) ? new string[] { } : vm.BackTests.ToString().Split(';'); var bullBearTests = (vm.BullBearTests == null) ? new string[] { } : vm.BullBearTests.ToString().Split(';'); var indicators = (vm.Indicators == null) ? new string[] { } : vm.Indicators.ToString().Split(';'); var markets = (vm.Markets == null) ? new string[] { } : vm.Markets.ToString().Split(';'); var patternScanners = (vm.PatternScanners == null) ? new string[] { } : vm.PatternScanners.ToString().Split(';'); var scanners = (vm.Scanners == null) ? new string[] { } : vm.Scanners.ToString().Split(';'); //// if (backTests.Any()) { //// await db.UserBackTests.Where(ub => backTests.Contains(ub.FormulaName)).DeleteAsync(); //// } //// if (bullBearTests.Any()) { //// await db.UserBullBearTests.Where(ub => bullBearTests.Contains(ub.FormulaName)).DeleteAsync(); //// } //// if (indicators.Any()) { //// await db.UserIndicators.Where(ub => indicators.Contains(ub.Indicator)).DeleteAsync(); //// } //// if (markets.Any()) { //// await db.UserMarkets.Where(ub => markets.Contains(ub.Market)).DeleteAsync(); //// } //// if (patternScanners.Any()) { //// await db.UserPatternScanners.Where(ub => patternScanners.Contains(ub.Scanner)).DeleteAsync(); //// } //// if (scanners.Any()) { //// await db.UserScanners.Where(ub => scanners.Contains(ub.Scanner)).DeleteAsync(); //// } var errorEmails = new List <string>(); foreach (string email in emails) { var appuser = await db.Users.Where(u => u.Email == email).FirstOrDefaultAsync(); if (appuser == null) { errorEmails.Add(email); } else { var uid = Guid.Parse(appuser.Id); var user = await db.ChartUsers.Where(u => u.Id == uid).FirstOrDefaultAsync(); if (user == null) { errorEmails.Add(email); continue; } appuser.ModifiedDate = DateTime.Now; user.Expires = vm.ExpiredDate.Value; if (vm.ReplaceRecords) { var userId = user.Id; await db.UserBackTests.Where(bt => bt.UserId == userId).DeleteAsync(); await db.UserBullBearTests.Where(bt => bt.UserId == userId).DeleteAsync(); await db.UserIndicators.Where(bt => bt.UserId == userId).DeleteAsync(); await db.UserMarkets.Where(bt => bt.UserId == userId).DeleteAsync(); await db.UserPatternScanners.Where(bt => bt.UserId == userId).DeleteAsync(); await db.UserScanners.Where(bt => bt.UserId == userId).DeleteAsync(); } if (backTests.Any()) { AddUserFunction(backTests, user, db.UserBackTests); } if (bullBearTests.Any()) { AddUserFunction(bullBearTests, user, db.UserBullBearTests); } if (indicators.Any()) { AddUserFunction(indicators, user, db.UserIndicators); } if (markets.Any()) { AddUserFunction(markets, user, db.UserMarkets); } if (patternScanners.Any()) { AddUserFunction(patternScanners, user, db.UserPatternScanners); } if (scanners.Any()) { AddUserFunction(scanners, user, db.UserScanners); } } await db.SaveChangesAsync(); } if (errorEmails.Any()) { this.TempData.AddErrorEmails(errorEmails); return(RedirectToAction("ActivateErrorEmails")); } return(RedirectToAction("Index")); }
public ActionResult ActivateFunction() { var vm = new ActivateFunctionViewModel(); return(View(vm)); }