/// <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); }