示例#1
0
        public async Task <IActionResult> Edit(Activity activity)
        {
            var currentUser = await _userManager.GetCurrentUser(Context);

            if (currentUser == null || !await _userManager.IsTenantAdmin(currentUser))
            {
                return(new HttpUnauthorizedResult());
            }

            if (ModelState.IsValid)
            {
                await _dataAccess.UpdateActivity(activity);

                return(RedirectToAction("Index"));
            }

            return(View(activity));
        }
示例#2
0
        public void Put(int id, [FromBody] ActivityViewModel value)
        {
            var activity = _prepOpsDataAccess.GetActivity(value.Id);

            if (activity == null)
            {
                this.HttpBadRequest();
            }
            var associatedCampaign = _prepOpsDataAccess.GetCampaign(value.CampaignId);
            var tenant             = _prepOpsDataAccess.GetTenant(value.TenantId);

            // TODO:  Helper method to do this kind of conversion.
            activity.Campaign         = associatedCampaign;
            activity.EndDateTimeUtc   = value.EndDateTime.UtcDateTime;
            activity.Location         = value.Location.ToModel();
            activity.Name             = value.Title;
            activity.StartDateTimeUtc = value.StartDateTime.UtcDateTime;
            activity.Tasks            = value.Tasks.ToModel(_prepOpsDataAccess).ToList();
            activity.Tenant           = tenant;

            _prepOpsDataAccess.UpdateActivity(activity);
        }
示例#3
0
        public async Task <IActionResult> Signup(int id)
        {
            var returnUrl = $"/Activity/Signup/{id}";

            if (!User.IsSignedIn())
            {
                return(RedirectToAction(nameof(AccountController.Login), "Account", new { ReturnUrl = returnUrl }));
            }

            var user = await GetCurrentUserAsync();

            // Maybe it wasn't logged in properly.
            if (user == null)
            {
                return(RedirectToAction(nameof(AccountController.Login), "Account", new { ReturnUrl = returnUrl }));
            }

            var activity = _prepOpsDataAccess.GetActivity(id);

            if (activity == null)
            {
                return(HttpNotFound());
            }

            if (activity.UsersSignedUp == null)
            {
                activity.UsersSignedUp = new List <ActivitySignup>();
            }
            // If the user clicks multiple times, they may already be signed up.
            if (!(from actSignup in activity.UsersSignedUp
                  where actSignup.User.Id == user.Id
                  select actSignup).Any())
            {
                activity.UsersSignedUp.Add(new ActivitySignup
                {
                    Activity       = activity,
                    User           = user,
                    SignupDateTime = DateTime.UtcNow
                });

                await _prepOpsDataAccess.UpdateActivity(activity);
            }

            return(RedirectToAction(nameof(GetMyActivities)));
        }