コード例 #1
0
        public void GetAllParticipants_ShouldThrow_IfUserIsNotCreator()
        {
            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder();
            var coursUserRepo           = coursesUsersRepoBuilder
                                          .WithAll()
                                          .Build();

            var sut = new CoursesService(coursUserRepo, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "9"
            };

            var ex = Assert.Throws <ArgumentException>(() => sut.GetAllParticipants("1", user));

            Assert.Equal("You can not add results!", ex.Message);

            coursesRepoBuilder.CoursesRepoMock.Verify();
            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify();
        }
コード例 #2
0
        public async Task UserStartGame(string id, GoUser user)
        {
            var game   = this.gamesRepository.All().FirstOrDefault(x => x.Id == id);
            var levels = this.levelsRepository.All().Where(x => x.GameId == id).OrderBy(x => x.NumberInGame).ToList();

            if (game == null)
            {
                throw new ArgumentException(GameDoNotExist);
            }

            else if (this.levelsParticipantRepository.All().FirstOrDefault(x => x.ParticipantId == user.Id && x.GameId == game.Id) == null)
            {
                var gamesLevelsUsers = levels.Select(x => new GameLevelParticipant
                {
                    GameId        = game.Id,
                    Game          = game,
                    ParticipantId = user.Id,
                    LevelId       = x.Id,
                    Level         = x,
                    StatusLevel   = (StatusLevel)2
                }).ToList();

                await this.levelsParticipantRepository.AddRangeAsync(gamesLevelsUsers);

                await this.levelsParticipantRepository.SaveChangesAsync();
            }
        }
コード例 #3
0
        public async Task DeleteCourse_ShouldNotDeleteCourse_WhenCourseNotExist()
        {
            Course deletedCourse = null;

            var courseRepoBuilder = new CoursesRepositoryBuilder();

            courseRepoBuilder.CoursesRepoMock.Setup(r => r.Delete(It.IsAny <Course>()))
            .Callback <Course>(c => deletedCourse = c);

            var courseRepo = courseRepoBuilder
                             .WithAll()
                             .Build();

            var sut = new CoursesService(null, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "9"
            };

            await sut.DeleteCourse("7", user);

            Assert.Null(deletedCourse);
            courseRepoBuilder.CoursesRepoMock.Verify();

            courseRepoBuilder.CoursesRepoMock.Verify(d => d.Delete(It.IsAny <Course>()), Times.Exactly(0));
            courseRepoBuilder.CoursesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Exactly(0));
        }
コード例 #4
0
        public async Task EditCourse_ShouldNotEditCourseIf_UserIsNotCreator()
        {
            var user = new GoUser {
                Id = "2"
            };

            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new CoursesService(null, courseRepo, null, Mapper);

            var editCourseViewModel = new EditCourseViewModel
            {
                Id                   = "2",
                Image                = SetupFileMock().Object,
                Title                = "Edit",
                Description          = "Brr",
                MaxCountParticipants = 7,
                StartDate            = DateTime.Now.AddDays(2),
                DurationOfDays       = 5,
                Status               = Status.Practically,
                Category             = Category.Other
            };

            await sut.EditCourse(editCourseViewModel, user);

            coursesRepoBuilder.CoursesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Exactly(0));
        }
コード例 #5
0
        public async Task DeleteCourse_ShouldDeleteCourseCorrectly_IfCourseexist_AndUserIsCreator()
        {
            Course deletedCourse = null;

            var courseRepoBuilder = new CoursesRepositoryBuilder();

            courseRepoBuilder.CoursesRepoMock.Setup(r => r.Delete(It.IsAny <Course>()))
            .Callback <Course>(c => deletedCourse = c);

            var courseRepo = courseRepoBuilder
                             .WithAll()
                             .Build();

            var sut = new CoursesService(null, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "9"
            };

            await sut.DeleteCourse("2", user);

            Assert.Equal("2", deletedCourse.Id);
            courseRepoBuilder.CoursesRepoMock.Verify();

            courseRepoBuilder.CoursesRepoMock.Verify(d => d.Delete(It.IsAny <Course>()), Times.Once);
            courseRepoBuilder.CoursesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Once);
        }
コード例 #6
0
        public async Task AddUserToCourse_ShouldNotAddNew_CourseUser_WhenMaxCountParticipantsIsFully()
        {
            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder();
            var courseUserRepo          = coursesUsersRepoBuilder
                                          .WithAll()
                                          .Build();

            var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "7"
            };
            var user1 = new GoUser {
                Id = "8"
            };

            await sut.AddUserToCourse("1", user);

            await sut.AddUserToCourse("1", user1);

            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.AddAsync(It.IsAny <CoursesUsers>()), Times.Exactly(1));
            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.SaveChangesAsync(), Times.Exactly(1));
        }
コード例 #7
0
        public async Task AddResultToUsersCourses(UsersResultsViewModel model, GoUser user)
        {
            var userCouse = this.coursesUsersRepository.All()
                            .FirstOrDefault(x => x.CourseId == model.CourseId && x.ParticipantId == model.ParticipantId);

            var course = this.coursesRepository.All().FirstOrDefault(x => x.Id == model.CourseId);

            if (userCouse == null)
            {
                throw new ArgumentException(UserCourseNotExistException);
            }
            if (course.CreatorId != user.Id)
            {
                throw new ArgumentException(YouCanNotAddResultsException);
            }

            userCouse.StatusUser = model.Result;

            if (course.StartDate.AddDays(course.DurationOfDays) > DateTime.Now)
            {
                throw new ArgumentException(CourseIsNotFinished);
            }

            await this.coursesUsersRepository.SaveChangesAsync();
        }
コード例 #8
0
        public async Task AddLevelResult(GameLevelParticipantViewModel model, GoUser user)
        {
            var gameLevelParticipant = this.levelsParticipantRepository.All()
                                       .FirstOrDefault(x => x.GameId == model.GameId && x.LevelId == model.LevelId &&
                                                       x.ParticipantId == model.ParticipantId);

            if (gameLevelParticipant == null)
            {
                throw new ArgumentException(ThisGameLevelParticipantNotExist);
            }

            gameLevelParticipant.StatusLevel = model.StatusLevel;

            if (model.StatusLevel == StatusLevel.SuccessfullyPassed)
            {
                var participant = this.usersRepository.All().FirstOrDefault(x => x.Id == model.ParticipantId);

                var level = this.levelsRepository.All().FirstOrDefault(l => l.Id == model.LevelId);

                participant.Points += level.Points;

                await this.usersRepository.SaveChangesAsync();
            }

            await this.levelsParticipantRepository.SaveChangesAsync();
        }
コード例 #9
0
ファイル: ThemsTests.cs プロジェクト: nnikolova91/GoGo
        public async Task AddCommentToThem_ShouldThrow_IfThemNotExist()
        {
            var themsRepoBuilder = new ThemsRepositoryBuilder();
            var themsRepo        = themsRepoBuilder
                                   .WithAll()
                                   .Build();

            var themCommentRepoBuilder = new ThemCommentsRepositoryBuilder();
            var themCommentsRepo       = themCommentRepoBuilder
                                         .WithAll()
                                         .Build();

            var sut = new ThemService(themsRepo, null, themCommentsRepo, Mapper);

            var model = new CreateThemViewModel
            {
                Description = "TraLaLA"
            };

            var user = new GoUser {
                Id = "7"
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddCommentToThem("5", "New themComment", user));

            Assert.Equal("Theme not exist!", ex.Message);

            themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.AddAsync(It.IsAny <ThemComment>()), Times.Never);
            themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never);
        }
コード例 #10
0
ファイル: StoriesService.cs プロジェクト: nnikolova91/GoGo
        public async Task LikeStory(string id, GoUser user) //id(storyId)
        {
            var story = this.storiesRepository.All().FirstOrDefault(x => x.Id == id);

            if (story == null)
            {
                throw new ArgumentException(StoryNotExist);
            }
            var userStory = new PeopleStories
            {
                Story   = story,
                StoryId = story.Id,
                User    = user,
                UserId  = user.Id
            };

            story.PeopleWhosLikeThis.Add(userStory);

            if (peopleStoriesRepository.All().FirstOrDefault(x => x.StoryId == userStory.StoryId && x.UserId == userStory.UserId) == null)
            {
                await this.peopleStoriesRepository.AddAsync(userStory);

                await this.peopleStoriesRepository.SaveChangesAsync();

                await this.storiesRepository.SaveChangesAsync();
            }
        }
コード例 #11
0
        public async Task AddStory_ShouldThrow_IfDestinationNotExist()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();


            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new StoriesService(storiesRepo, destRepo, null, null, Mapper);

            var createStoryViewModel = new CreateStoryViewModel
            {
                Content       = "Niki otiva na ski",
                Title         = "Niki",
                DestinationId = "11",
            };

            var user = new GoUser {
                Id = "7"
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddStory(createStoryViewModel, "11", user));

            Assert.Equal("Destination not exist!", ex.Message);

            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.AddAsync(It.IsAny <Story>()), Times.Never);
            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never);
        }
コード例 #12
0
ファイル: ThemService.cs プロジェクト: nnikolova91/GoGo
        public ThemDetailsViewModel GetDetails(string themId, GoUser user)
        {
            var them = this.themsRepository.All().FirstOrDefault(x => x.Id == themId);

            if (them == null)
            {
                throw new ArgumentException(ThemeNotExist);
            }

            var themModel = mapper.Map <ThemDetailsViewModel>(them);

            var author = this.usersRepository.All().FirstOrDefault(x => x.Id == them.AuthorId);

            themModel.Author = author.FirstName + SpaceSeparetedUsersFirstAndLastName + author.LastName;

            var themComments = this.themCommentsRepository.All().Where(x => x.ThemId == themId)
                               .Select(x => mapper.Map <ThemCommentViewModel>(x)).ToList();

            themComments.ForEach(x => x.Author = this.usersRepository.All().FirstOrDefault(u => u.Id == x.AuthorId).FirstName +
                                                 SpaceSeparetedUsersFirstAndLastName + this.usersRepository.All()
                                                 .FirstOrDefault(u => u.Id == x.AuthorId).LastName);

            themModel.Comments = themComments;

            return(themModel);
        }
コード例 #13
0
        public async Task LikeStory_ShouldThrow_IfStoryNotExist()
        {
            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var userStoriesRepoBuilder = new PeopleStoriesRepositoryBuilder();
            var userStoriesRepo        = userStoriesRepoBuilder
                                         .WithAll()
                                         .Build();

            var sut = new StoriesService(storiesRepo, null, userStoriesRepo, null, Mapper);

            var user = new GoUser {
                Id = "7"
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.LikeStory("17", user));

            Assert.Equal("Story not exist!", ex.Message);

            storiesRepoBuilder.StoriesRepoMock.Verify();

            userStoriesRepoBuilder.PeopleStoriesRepoMock.Verify(d => d.AddAsync(It.IsAny <PeopleStories>()), Times.Never);
            userStoriesRepoBuilder.PeopleStoriesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
コード例 #14
0
        public async Task LikeStory_ShouldNotAddUserStory_IfUserStoryAureadyExist()
        {
            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var userStoriesRepoBuilder = new PeopleStoriesRepositoryBuilder();
            var userStoriesRepo        = userStoriesRepoBuilder
                                         .WithAll()
                                         .Build();

            var sut = new StoriesService(storiesRepo, null, userStoriesRepo, null, Mapper);

            var user = new GoUser {
                Id = "9"
            };

            await sut.LikeStory("7", user);

            storiesRepoBuilder.StoriesRepoMock.Verify();

            userStoriesRepoBuilder.PeopleStoriesRepoMock.Verify(d => d.AddAsync(It.IsAny <PeopleStories>()), Times.Never);
            userStoriesRepoBuilder.PeopleStoriesRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
コード例 #15
0
        public void GetDetails_ShouldReturnCorrect_ListFrom_StoriesViewModel()
        {
            var user = new GoUser {
                Id = "1"
            };

            var sut = SetupGetDetailsSut();

            var actual = sut.GetDetails("2", user);

            var usersRepoBuilder = new GoUserRepositoryBuilder();
            var usersRepo        = usersRepoBuilder
                                   .WithAll()
                                   .Build();

            var expected = new List <StoryViewModel>
            {
                new StoryViewModel
                {
                    Id = "7", DestinationId = "2", AuthorId = "8", Author = "Niki", Title = "Mrun", PeopleWhosLikeThis = 2
                },

                new StoryViewModel
                {
                    Id = "8", DestinationId = "2", AuthorId = "9", Author = "Pelin", Title = "Drun", PeopleWhosLikeThis = 0
                },

                new StoryViewModel
                {
                    Id = "9", DestinationId = "2", AuthorId = "10", Author = "Saso", Title = "Brum", PeopleWhosLikeThis = 1
                }
            };

            Assert.Equal(expected, actual.Stories, new StoriesViewModelComparer());
        }
コード例 #16
0
        public async Task UserStartGame_ShouldThrowIfGameNotExist()
        {
            var gameRepoBuilder = new GameRepositoryBuilder();
            var gameRepo        = gameRepoBuilder
                                  .WithAll()
                                  .Build();

            var levelsRepoBuilder = new LevelRepositoryBuilder();
            var levelRepo         = levelsRepoBuilder
                                    .WithAll()
                                    .Build();

            var levelsParticipantsRepoBuilder = new GameLevelParticipantRepositoryBuilder();
            var levelsParticipantsRepo        = levelsParticipantsRepoBuilder
                                                .WithAll()
                                                .Build();

            var sut = new GamesService(gameRepo, levelRepo, levelsParticipantsRepo, null, Mapper);

            var user = new GoUser {
                Id = "1"
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.UserStartGame("11", user));

            Assert.Equal("Game do not exist!", ex.Message);

            levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.AddRangeAsync(It.IsAny <List <GameLevelParticipant> >()), Times.Never);
            levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never);

            gameRepoBuilder.GamesRepoMock.Verify();
            levelsRepoBuilder.LevelsRepoMock.Verify();
        }
コード例 #17
0
        public void GetDetails_ShouldReturnCorrect_ListFrom_UsersNotKnowAnyone()
        {
            var user = new GoUser {
                Id = "1"
            };

            var sut = SetupGetDetailsSut();

            var actual = sut.GetDetails("2", user);

            var usersRepoBuilder = new GoUserRepositoryBuilder();
            var usersRepo        = usersRepoBuilder
                                   .WithAll()
                                   .Build();

            var expected = new List <GoUserViewModel>
            {
                new GoUserViewModel {
                    Id = "9", FirstName = "Pelin", Image = usersRepo.All()
                                                           .FirstOrDefault(x => x.Id == "9").Image
                },

                new GoUserViewModel {
                    Id = "10", FirstName = "Saso", Image = usersRepo.All()
                                                           .FirstOrDefault(x => x.Id == "10").Image
                },

                new GoUserViewModel {
                    Id = "11", FirstName = "Koni", Image = usersRepo.All()
                                                           .FirstOrDefault(x => x.Id == "11").Image
                },
            };

            Assert.Equal(expected, actual.ParticipantsNotKnowAnyone, new GoUserViewModelComparer());
        }
コード例 #18
0
        public void GetDetails_ShouldReturnCorrect_ListFrom_ParticipantsKnowSomeone()
        {
            var user = new GoUser {
                Id = "1"
            };

            var sut = SetupGetDetailsSut();

            var actual = sut.GetDetails("2", user);

            var usersRepoBuilder = new GoUserRepositoryBuilder();
            var usersRepo        = usersRepoBuilder
                                   .WithAll()
                                   .Build();

            var expected = new List <GoUserViewModel>
            {
                new GoUserViewModel {
                    Id = "7", FirstName = "Slavqna", Image = ConvertImageToByteArray(SetupFileMock().Object)
                },                                                                                                              //!!!! inage
                new GoUserViewModel {
                    Id = "8", FirstName = "Niki", Image = ConvertImageToByteArray(SetupFileMock().Object)
                }
            };

            Assert.Equal(expected, actual.ParticipantsKnowSomeone, new GoUserViewModelComparer());
        }
コード例 #19
0
        public async Task EditCourse(EditCourseViewModel model, GoUser user)
        {
            byte[] file = null;
            if (model.Image.Length > 0)
            {
                using (var ms = new MemoryStream())
                {
                    model.Image.CopyTo(ms);
                    file = ms.ToArray();
                }
            }

            var course = this.coursesRepository.All().FirstOrDefault(x => x.Id == model.Id);

            if (course != null && course.CreatorId == user.Id)
            {
                course.Image                = file;
                course.Title                = model.Title;
                course.Description          = model.Description;
                course.StartDate            = model.StartDate;
                course.MaxCountParticipants = model.MaxCountParticipants;
                course.DurationOfDays       = model.DurationOfDays;
                course.CountOfHours         = model.CountOfHours;
                course.Category             = model.Category;
                course.Status               = model.Status;

                await this.coursesRepository.SaveChangesAsync();
            }
        }
コード例 #20
0
        public void FindMyDestinations_ShouldReturn_CorrectCountOf_DestViewModels()
        {
            var user = new GoUser {
                Id = "1"
            };

            var destUserRepoBuilder = new DestinationsUsersRepositoryBuilder();
            var destUserRepo        = destUserRepoBuilder
                                      .WithAll()
                                      .Build();

            var sut = new DestinationService(null, destUserRepo, null, null, null, null, null, this.Mapper);

            var actual = sut.FindMyDestinations(user);

            var expected = new List <DestViewModel>
            {
                new DestViewModel {
                    Id = "1"
                }
            }.AsQueryable();

            Assert.Equal(expected.Count(), actual.Count());

            destUserRepoBuilder.DestUsersRepoMock.Verify();
            destUserRepoBuilder.DestUsersRepoMock.Verify(d => d.AddAsync(It.IsAny <DestinationsUsers>()), Times.Never);
            destUserRepoBuilder.DestUsersRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
コード例 #21
0
ファイル: ThemsTests.cs プロジェクト: nnikolova91/GoGo
        public async Task AddCommentToThem_ShouldAddNewThemComment_Correctly()
        {
            var themsRepoBuilder = new ThemsRepositoryBuilder();
            var themsRepo        = themsRepoBuilder
                                   .WithAll()
                                   .Build();

            var themCommentRepoBuilder = new ThemCommentsRepositoryBuilder();
            var themCommentsRepo       = themCommentRepoBuilder
                                         .WithAll()
                                         .Build();

            var sut = new ThemService(themsRepo, null, themCommentsRepo, Mapper);

            var model = new CreateThemViewModel
            {
                Description = "TraLaLA"
            };

            var user = new GoUser {
                Id = "7"
            };

            await sut.AddCommentToThem("3", "New themComment", user);

            themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.AddAsync(It.IsAny <ThemComment>()), Times.Once);
            themCommentRepoBuilder.ThemCommentsRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once);
        }
コード例 #22
0
ファイル: ThemsTests.cs プロジェクト: nnikolova91/GoGo
        public void GetDetails_ShouldThrow_IfThemNotExist()
        {
            var themsRepoBuilder = new ThemsRepositoryBuilder();
            var themsRepo        = themsRepoBuilder
                                   .WithAll()
                                   .Build();

            var themCommentRepoBuilder = new ThemCommentsRepositoryBuilder();
            var themCommentsRepo       = themCommentRepoBuilder
                                         .WithAll()
                                         .Build();

            var usersRepoBuilder = new GoUserRepositoryBuilder();
            var usersRepo        = usersRepoBuilder
                                   .WithAll()
                                   .Build();

            var sut = new ThemService(themsRepo, usersRepo, themCommentsRepo, Mapper);

            var user = new GoUser {
                Id = "7"
            };

            var ex = Assert.Throws <ArgumentException>(() => sut.GetDetails("7", user));

            Assert.Equal("Theme not exist!", ex.Message);

            themsRepoBuilder.ThemsRepoMock.Verify();
        }
コード例 #23
0
        public async Task UserStartGame_ShouldDoNotAddUserToGame_IfUserAureadyExistInThisGame()
        {
            var gameRepoBuilder = new GameRepositoryBuilder();
            var gameRepo        = gameRepoBuilder
                                  .WithAll()
                                  .Build();

            var levelsRepoBuilder = new LevelRepositoryBuilder();
            var levelRepo         = levelsRepoBuilder
                                    .WithAll()
                                    .Build();

            var levelsParticipantsRepoBuilder = new GameLevelParticipantRepositoryBuilder();
            var levelsParticipantsRepo        = levelsParticipantsRepoBuilder
                                                .WithAll()
                                                .Build();

            var sut = new GamesService(gameRepo, levelRepo, levelsParticipantsRepo, null, Mapper);

            var user = new GoUser {
                Id = "10"
            };

            await sut.UserStartGame("7", user);

            levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.AddRangeAsync(It.IsAny <List <GameLevelParticipant> >()), Times.Never);
            levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never);

            gameRepoBuilder.GamesRepoMock.Verify();
            levelsRepoBuilder.LevelsRepoMock.Verify();
            levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify();
        }
コード例 #24
0
        public ICollection <DestViewModel> FindMyDestinations(GoUser user)
        {
            var destModels = this.destUsersRepository.All().Where(x => x.ParticipantId == user.Id)
                             .Select(d => mapper.Map <DestViewModel>(d.Destination)).ToList();

            return(destModels);
        }
コード例 #25
0
        public async Task AddStory_ShouldAddNewStoryCorrectly()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();


            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new StoriesService(storiesRepo, destRepo, null, null, Mapper);

            var createStoryViewModel = new CreateStoryViewModel
            {
                Content       = "Niki otiva na ski",
                Title         = "Niki",
                DestinationId = "2",
            };

            var user = new GoUser {
                Id = "7"
            };

            await sut.AddStory(createStoryViewModel, "2", user);

            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.AddAsync(It.IsAny <Story>()), Times.Once);
            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once);
        }
コード例 #26
0
        public async Task <string> AddGame(CreateGameViewModel model, GoUser user)
        {
            byte[] imageLevel1 = ImageAsBytes(model.Level1.Image);
            byte[] imageLevel2 = ImageAsBytes(model.Level2.Image);
            byte[] imageLevel3 = ImageAsBytes(model.Level3.Image);

            var game = new Game
            {
                Name        = model.Name,
                Description = model.Description,
                Image       = imageLevel3,
                CreatorId   = user.Id
            };

            await this.gamesRepository.AddAsync(game);

            await this.gamesRepository.SaveChangesAsync();

            var level1 = new Level
            {
                Image        = imageLevel1,
                Description  = model.Level1.Description,
                NumberInGame = model.Level1.NumberInGame,
                GameId       = game.Id,
                Game         = game,
                Points       = model.Level1.Points
            };
            var level2 = new Level
            {
                Image        = imageLevel2,
                Description  = model.Level2.Description,
                NumberInGame = model.Level2.NumberInGame,
                GameId       = game.Id,
                Game         = game,
                Points       = model.Level2.Points
            };
            var level3 = new Level
            {
                Image        = imageLevel3,
                Description  = model.Level3.Description,
                NumberInGame = model.Level3.NumberInGame,
                GameId       = game.Id,
                Game         = game,
                Points       = model.Level3.Points
            };

            await this.levelsRepository.AddAsync(level1);

            await this.levelsRepository.AddAsync(level2);

            await this.levelsRepository.AddAsync(level3);

            await this.levelsRepository.SaveChangesAsync();

            return(game.Id);
        }
コード例 #27
0
        public async Task DeleteCourse(string id, GoUser user)
        {
            var course = this.coursesRepository.All().FirstOrDefault(x => x.Id == id);

            if (course != null && course.CreatorId == user.Id)
            {
                this.coursesRepository.Delete(course);

                await this.coursesRepository.SaveChangesAsync();
            }
        }
コード例 #28
0
        public DestViewModel FindToDeleteDestination(string id, GoUser user)
        {
            var dest = this.destRepository.All().FirstOrDefault(x => x.Id == id);

            if (dest.CreatorId != user.Id)
            {
                throw new ArgumentException(YoucanNotDeleteThisPage);
            }

            var destination = mapper.Map <DestViewModel>(dest);

            return(destination);
        }
コード例 #29
0
        public async Task AddSocialization(GoUser user, string id, string socialization)
        {
            var dest = this.destUsersRepository.All()
                       .FirstOrDefault(x => x.DestinationId == id && x.ParticipantId == user.Id);

            if (dest == null)
            {
                throw new ArgumentException(YouAreNotInThisGroup);
            }

            dest.Socialization = Enum.Parse <Socialization>(socialization);

            await this.destUsersRepository.SaveChangesAsync();
        }
コード例 #30
0
        public async Task AddDestination(CreateDestinationViewModel model, GoUser user)
        {
            byte[] file = NewMethod(model.Image);

            var dest = mapper.Map <Destination>(model);

            dest.Image     = file;
            dest.Creator   = user;
            dest.CreatorId = user.Id;

            await this.destRepository.AddAsync(dest);

            await this.destRepository.SaveChangesAsync();
        }