public async Task <ActionResult> DeleteAllConfirm(string deleteAll, DeleteAllConfirmViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            if (string.Equals(deleteAll, "yes", StringComparison.OrdinalIgnoreCase))
            {
                var userId  = GetUserId();
                var context = this.DbContext;

                var filters = await context.Filters
                              .Include(o => o.FilterProperties)
                              .Where(o => o.UserId == userId)
                              .ToArrayAsync();

                bool hasChanged = false;
                foreach (var item in filters)
                {
                    context.Filters.Remove(item);
                    hasChanged = true;
                }

                if (hasChanged)
                {
                    await context.SaveChangesAsync();

                    await Task.Run(() => new TelemetryClient().TrackEvent("DeleteAllFilter"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> DeleteAllConfirm()
        {
            var userId  = GetUserId();
            var context = this.DbContext;

            var count = await context.Filters
                        .CountAsync(o => o.UserId == userId);

            var viewModel = new DeleteAllConfirmViewModel()
            {
                Count = count
            };

            return(View(viewModel));
        }
        public async Task<ActionResult> DeleteAllConfirm(string deleteAll, DeleteAllConfirmViewModel viewModel)
        {
            if (!ModelState.IsValid)
                return View(viewModel);

            if (string.Equals(deleteAll, "yes", StringComparison.OrdinalIgnoreCase))
            {
                var userId = GetUserId();
                var context = this.DbContext;

                var filters = await context.Filters
                    .Include(o => o.FilterProperties)
                    .Where(o => o.UserId == userId)
                    .ToArrayAsync();

                bool hasChanged = false;
                foreach (var item in filters)
                {
                    context.Filters.Remove(item);
                    hasChanged = true;
                }

                if (hasChanged)
                {
                    await context.SaveChangesAsync();

                    await Task.Run(() => new TelemetryClient().TrackEvent("DeleteAllFilter"));
                }
            }

            return RedirectToAction("Index");
        }
        public async Task<ActionResult> DeleteAllConfirm()
        {
            var userId = GetUserId();
            var context = this.DbContext;

            var count = await context.Filters
                .CountAsync(o => o.UserId == userId);

            var viewModel = new DeleteAllConfirmViewModel()
            {
                Count = count
            };
            return View(viewModel);
        }