Esempio n. 1
0
        /// <summary>
        /// Returns null when there is no matching campaign for the campaign Id.
        /// </summary>
        public static Activity ToModel(this ActivityViewModel activity, IPrepOpsDataAccess dataAccess)
        {
            var campaign = dataAccess.GetCampaign(activity.CampaignId);

            if (campaign == null)
            {
                return(null);
            }

            Activity newActivity = new Activity()
            {
                Id               = activity.Id,
                Campaign         = campaign,
                EndDateTimeUtc   = activity.EndDateTime.UtcDateTime,
                StartDateTimeUtc = activity.StartDateTime.UtcDateTime,
                Location         = new Location()
                {
                    Address1   = activity.Location.Address1,
                    Address2   = activity.Location.Address2,
                    City       = activity.Location.City,
                    Country    = "US",
                    PostalCode = activity.Location.PostalCode,
                    State      = activity.Location.State
                },
                Name = activity.Title
            };
            var tasks = new List <PrepOpsTask>();

            foreach (TaskViewModel tvm in activity.Tasks)
            {
                tasks.Add(new PrepOpsTask()
                {
                    Activity    = newActivity,
                    Name        = tvm.Name,
                    Id          = tvm.Id,
                    Description = tvm.Description
                });
            }
            newActivity.Tasks = tasks;
            return(newActivity);
        }
        public async Task<IActionResult> Assign(int id)
        {
            var currentUser = await _userManager.GetCurrentUser(Context);
            if (currentUser == null || !await _userManager.IsTenantAdmin(currentUser))
            {
                return new HttpUnauthorizedResult();
            }

            var activity = _dataAccess.GetActivity(id);

            if (activity == null)
            {
                return new HttpStatusCodeResult(404);
            }
            if (!await UserIsTenantAdminOfActivity(currentUser, activity))
            {
                return new HttpUnauthorizedResult();
            }

            var model = new ActivityViewModel(activity);
            model.Tasks = model.Tasks.OrderBy(t => t.StartDateTime).ThenBy(t => t.Name).ToList();
            model.Volunteers = activity.UsersSignedUp.Select(u => u.User).ToList();

            return View(model);
        }