Example #1
0
        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"));
        }
Example #2
0
        public ActionResult ActivateFunction()
        {
            var vm = new ActivateFunctionViewModel();

            return(View(vm));
        }