예제 #1
0
        public async Task FindAllNotificationsUserTest()
        {
            // Arrange
            var activityType = ActivityTypeFactory.Default();
            var activity     = ActivityFactory.Default(CityId, activityType.Id);
            var notification = NotificationFactory.Default(activity.Id);

            activity.AddNotification(notification);

            BucketList         bucketList         = null;
            BucketListActivity bucketListActivity = null;

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.ActivityTypes.AddAsync(activityType);
                await doFestContext.SaveChangesAsync();
                bucketList = await doFestContext.BucketLists.FirstOrDefaultAsync(entity => entity.UserId == AuthenticatedUserId);
                if (bucketList != null)
                {
                    bucketListActivity = new BucketListActivity(bucketList.Id, activity.Id);
                    await doFestContext.BucketListActivities.AddAsync(bucketListActivity);
                    await doFestContext.Activities.AddAsync(activity);
                    await doFestContext.SaveChangesAsync();
                }
            });

            // Act
            var response = await HttpClient.GetAsync("api/v1/notifications");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var notifications = await response.Content.ReadAsAsync <IList <Notification> >();

            notifications.Should().HaveCount(1);
        }
        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));
        }