public async Task <IActionResult> Edit(Campaign campaign)
        {
            var currentUser = await _userManager.GetCurrentUser(Context);

            if (currentUser == null)
            {
                return(new HttpUnauthorizedResult());
            }

            if (_dataAccess.GetUser(currentUser.Id).AssociatedTenant.Id != campaign.ManagingTenantId)
            {
                return(new HttpUnauthorizedResult());
            }

            if (ModelState.IsValid)
            {
                await _dataAccess.UpdateCampaign(campaign);

                return(RedirectToAction("Index"));
            }
            return(View(campaign));
        }
        public void Put(int id, [FromBody] CampaignViewModel campaign)
        {
            if (campaign == null)
            {
                HttpBadRequest();
            }

            var matching = _dataAccess.GetCampaign(campaign.Id);

            if (matching == null)
            {
                _dataAccess.AddCampaign(campaign.ToModel(_dataAccess));
            }
            else
            {
                matching.Activities       = campaign.Activities.ToModel(_dataAccess).ToList();
                matching.Description      = campaign.Description;
                matching.Name             = campaign.Name;
                matching.StartDateTimeUtc = campaign.StartDate.UtcDateTime;
                matching.EndDateTimeUtc   = campaign.EndDate.UtcDateTime;

                _dataAccess.UpdateCampaign(matching);
            }
        }