Example #1
0
        /// <summary>
        /// Returns null when there is no matching campaign for the campaign Id.
        /// </summary>
        public static Activity ToModel(this ActivityViewModel activity, IAllReadyDataAccess 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 <AllReadyTask>();

            foreach (TaskViewModel tvm in activity.Tasks)
            {
                tasks.Add(new AllReadyTask()
                {
                    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)
            {
                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);
        }
        public IActionResult Assign(int id)
        {
            //TODO: Update this to use Query pattern
            var activity = _dataAccess.GetActivity(id);

            if (activity == null)
            {
                return HttpNotFound();
            }
            if (!User.IsOrganizationAdmin(activity.Campaign.ManagingOrganizationId))
            {
                return HttpUnauthorized();
            }

            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);
        }
        public void PostSingleActivity()
        {
            // Arrange
            ActivityApiController controller = GetActivityController();

            //Act
            ActivityViewModel toPost = new ActivityViewModel()
            {
                Id = 11,
                Title = "the answer to life the universe and everything",
                CampaignId = 1,
                TenantId = 1,
                StartDateTime = DateTime.Today,
                EndDateTime = DateTime.Today.AddMonths(1),
                Location = new LocationViewModel()
                {
                    Address1 = "123 Happy Street",
                    City = "Madison",
                    State = "WI",
                    PostalCode = new PostalCodeGeo() { PostalCode = "53711" },
                    Country = "country gets ignored right now"
                }
            };

            controller.Post(toPost);
            activitiesAdded++;
            var viewModelFromDb = controller.Get(toPost.Id);

            // Assert
            Assert.NotEqual(viewModelFromDb, toPost);
            Assert.Equal(toPost.Id, viewModelFromDb.Id);
            Assert.Equal(toPost.CampaignId, viewModelFromDb.CampaignId);
            Assert.Equal(string.Format(TestActivityModelProvider.CampaignNameFormat, toPost.CampaignId), viewModelFromDb.CampaignName);
            Assert.Null(viewModelFromDb.Description);
            Assert.Equal(toPost.EndDateTime, viewModelFromDb.EndDateTime);
            Assert.Equal(toPost.StartDateTime, viewModelFromDb.StartDateTime);
            Assert.Equal("US", viewModelFromDb.Location.Country);
            Assert.Equal(toPost.Location.Address1, viewModelFromDb.Location.Address1);
            Assert.Equal(toPost.Location.City, viewModelFromDb.Location.City);
        }
        public IActionResult Assign(int id)
        {
            var activity = _dataAccess.GetActivity(id);

            if (activity == null)
            {
                return new HttpStatusCodeResult(404);
            }
            if (!UserIsTenantAdminOfActivity(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);
        }