public async Task <Result <IList <BucketListModel>, Error> > GetBucketLists() { var bucketListEntity = await _bucketListRepository.GetBucketLists(); var bucketListModel = new List <BucketListModel>(); foreach (var bucketList in bucketListEntity) { var user = await _userRepository.GetById(bucketList.UserId); bucketListModel.Add(BucketListModel.Create(bucketList.Id, bucketList.Name, user.Username)); } return(bucketListModel); }
public async Task <Result <BucketListModel, Error> > Add(Guid bucketListId, Guid activityId) { var userId = Guid.Parse(_accessor.HttpContext.User.Claims.First(c => c.Type == "userId").Value); var bucketListExists = (await _bucketListRepository.GetById(bucketListId)) != null; if (!bucketListExists) { return(Result.Failure <BucketListModel, Error>(ErrorsList.UnavailableBucketList)); } var bucketList = await _bucketListRepository.GetByIdWithActivities(bucketListId); if (bucketList == null) { return(Result.Failure <BucketListModel, Error>(ErrorsList.UnavailableBucketList)); } var user = await _userRepository.GetById(bucketList.UserId); if (userId != bucketList.UserId) { return(Result.Failure <BucketListModel, Error>(ErrorsList.UnauthorizedUser)); } // Daca activitatea exista deja in bucketlist se returneaza o eroare. if (bucketList.BucketListActivities.Any(bucketListActivityQuery => bucketListActivityQuery.ActivityId == activityId)) { return(Result.Failure <BucketListModel, Error>(ErrorsList.ActivityInBucketListExists)); } var activity = await _activitiesRepository.GetById(activityId); if (activity == null) { return(Result.Failure <BucketListModel, Error>(ErrorsList.UnavailableActivity)); } var bucketListActivity = new BucketListActivity(bucketListId, activityId); bucketList.AddBucketListActivity(bucketListActivity); _bucketListRepository.Update(bucketList); await _bucketListRepository.SaveChanges(); return(BucketListModel.Create(bucketList.Id, bucketList.Name, user.Username)); }