public async Task <IActionResult> Change([FromRoute] Guid bucketlistId, [FromBody] BucketListUpdateModel updateModel) { var(_, isFailure, result, error) = await _bucketListService.UpdateBucketList(bucketlistId, updateModel); if (isFailure) { return(BadRequest(error)); } return(Ok()); }
public async Task UpdateInvalidBucketList() { //Arrange Guid bucketId = Guid.NewGuid(); var updateModel = new BucketListUpdateModel() { Name = "bucketlist test" }; //Act var response = await HttpClient.PutAsJsonAsync($"/api/v1/bucketlists/{bucketId}/activities", updateModel); //Assert response.IsSuccessStatusCode.Should().BeFalse(); }
public async Task UpdateBucketList() { //Arrange var activityType = ActivityTypeFactory.Default(); var city = CityFactory.Default(); var activity = ActivityFactory.Default(city.Id, activityType.Id); BucketList bucket = null; var updateModel = new BucketListUpdateModel() { Name = "bucketlist test", ActivitiesForDelete = new List <Guid>(), ActivitiesForToggle = new List <Guid>() }; await ExecuteDatabaseAction(async (doFestContext) => { bucket = await doFestContext .BucketLists .FirstOrDefaultAsync(x => x.UserId == AuthenticatedUserId); await doFestContext.Cities.AddAsync(city); await doFestContext.ActivityTypes.AddAsync(activityType); await doFestContext.Activities.AddAsync(activity); await doFestContext.SaveChangesAsync(); await doFestContext.BucketListActivities.AddAsync(new BucketListActivity(bucket.Id, activity.Id)); await doFestContext.SaveChangesAsync(); }); //Act var response = await HttpClient.PutAsJsonAsync($"/api/v1/bucketlists/{bucket.Id}/activities", updateModel); //Assert response.IsSuccessStatusCode.Should().BeTrue(); BucketList existingBucketList = null; await ExecuteDatabaseAction(async (doFestContext) => { existingBucketList = await doFestContext .BucketLists .FirstOrDefaultAsync(x => x.UserId == AuthenticatedUserId); }); existingBucketList.Should().NotBeNull(); existingBucketList.Name.Should().Be(updateModel.Name); }
/// <summary> /// Schimba statusul unei activitati din bucket list: Completed/On hold. /// </summary> /// <param name="bucketListId"> Id-ul bucket list-ului. </param> /// <param name="updateModel"> Modelul care contine informatiile pentru update. </param> /// <returns> Modelul bucket list-ului care a fost updatat sau null. </returns> public async Task <Result <string, Error> > UpdateBucketList(Guid bucketListId, BucketListUpdateModel updateModel) { var userId = Guid.Parse(_accessor.HttpContext.User.Claims.First(c => c.Type == "userId").Value); var bucketList = await _bucketListRepository.GetByIdWithActivities(bucketListId); if (bucketList == null) { return(Result.Failure <string, Error>(ErrorsList.UnavailableBucketList)); } var user = await _userRepository.GetById(bucketList.UserId); if (userId != bucketList.UserId) { return(Result.Failure <string, Error>(ErrorsList.UnauthorizedUser)); } bucketList.RemoveActivities(updateModel.ActivitiesForDelete); foreach (var activityId in updateModel.ActivitiesForToggle) { var bucketListActivity = bucketList.BucketListActivities.First((bucketAct) => bucketAct.ActivityId == activityId); bucketListActivity.UpdateStatus(); } bucketList.UpdateName(updateModel.Name); _bucketListRepository.Update(bucketList); await _bucketListRepository.SaveChanges(); return(Result.Success <string, Error>("Bucketlist updated")); }
public static BucketListUpdateModel WithActivitiesForDelete(this BucketListUpdateModel model, List <Guid> activities) { model.ActivitiesForDelete = activities; return(model); }
public static BucketListUpdateModel WithName(this BucketListUpdateModel model, string name) { model.Name = name; return(model); }