public IActionResult Create(int campaignId)
        {
            CampaignSummaryViewModel campaign = _bus.Send(new CampaignSummaryQuery { CampaignId = campaignId });
            if (campaign == null || !User.IsTenantAdmin(campaign.TenantId))
            {
                return new HttpUnauthorizedResult();
            }

            var activity = new ActivityDetailViewModel
            {
                CampaignId = campaign.Id,
                CampaignName = campaign.Name,
                TenantId = campaign.TenantId,
                TenantName = campaign.TenantName,                
                StartDateTime = DateTime.Today.Date,
                EndDateTime = DateTime.Today.Date.AddMonths(1)
            };
            return View("Edit", activity);
        }
        public IActionResult Create(int campaignId, ActivityDetailViewModel activity)
        {
            if (activity.EndDateTime < activity.StartDateTime)
            {
                ModelState.AddModelError("EndDateTime", "End date cannot be earlier than the start date");
            }

            if (ModelState.IsValid)
            {                
                CampaignSummaryViewModel campaign = _bus.Send(new CampaignSummaryQuery { CampaignId = campaignId });
                if (campaign == null || 
                    !User.IsTenantAdmin(campaign.TenantId))
                {
                    return HttpUnauthorized();
                }                
                activity.TenantId = campaign.TenantId;
                var id = _bus.Send(new EditActivityCommand { Activity = activity });
                return RedirectToAction("Details", "Activity", new { area = "Admin", id = id });
            }
            return View("Edit", activity);
        }
        public IActionResult Edit(ActivityDetailViewModel activity)
        {
            if (activity == null)
            {
                return HttpBadRequest();
            }
            //TODO: Use the query pattern here
            int campaignId = _dataAccess.GetManagingTenantId(activity.Id);            
            if (!User.IsTenantAdmin(campaignId))
            {
                return HttpUnauthorized();
            }

            if (activity.EndDateTime < activity.StartDateTime)
            {
                ModelState.AddModelError("EndDateTime", "End date cannot be earlier than the start date");
            }

            if (ModelState.IsValid)
            {
                var id = _bus.Send(new EditActivityCommand {Activity = activity });
                return RedirectToAction("Details", "Activity", new { area = "Admin", id = id });
            }
            return View(activity);
        }