コード例 #1
0
        public IActionResult Create()
        {
            var viewModel = new GroupTripCreateInputModel();

            viewModel.FishSpeciesItems = this.fishService.GetAllForSelectList();
            return(this.View(viewModel));
        }
コード例 #2
0
        public async Task CreatingGroupTripShouldIncreaseGroupTripsCount()
        {
            var groupTripslist = new List <GroupTrip>()
            {
                new GroupTrip
                {
                    Id = 1,
                },
                new GroupTrip
                {
                    Id = 2,
                },
                new GroupTrip
                {
                    Id = 3,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>();

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable());

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var groupTrip = new GroupTripCreateInputModel
            {
                WaterPoolName         = "река Марица",
                Description           = "асдасдасдадс",
                MeetingTime           = DateTime.UtcNow.AddDays(1),
                MeetingSpotLatitude   = 1,
                MeetingSpotLongtitude = 1,
                FishingTime           = DateTime.UtcNow.AddDays(2),
                FishingSpotLatitude   = 2,
                FishingSpotLongtitude = 2,
                FreeSeats             = 2,
                FishingMethodId       = 3,
                TargetFishSpeciesId   = 5,
            };

            await service.CreateAsync(groupTrip, "1");

            Assert.Equal(4, groupTripslist.Count());
        }
コード例 #3
0
        public async Task <IActionResult> Create(GroupTripCreateInputModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                var viewModel = new GroupTripCreateInputModel();
                viewModel.FishSpeciesItems = this.fishService.GetAllForSelectList();
                return(this.View(viewModel));
            }

            var user = await this.userManager.GetUserAsync(this.User);

            var id = await this.groupTripsService.CreateAsync(inputModel, user.Id);

            return(this.RedirectToAction(nameof(this.ById), new { id }));
        }
コード例 #4
0
        public async Task <int> CreateAsync(GroupTripCreateInputModel inputModel, string userId)
        {
            var groupTrip = new GroupTrip
            {
                WaterPoolName         = inputModel.WaterPoolName,
                Description           = inputModel.Description,
                FreeSeats             = inputModel.FreeSeats,
                MeetingTime           = inputModel.MeetingTime,
                MeetingSpotLatitude   = inputModel.MeetingSpotLatitude,
                MeetingSpotLongtitude = inputModel.MeetingSpotLongtitude,
                FishingTime           = inputModel.FishingTime,
                FishingSpotLatitued   = inputModel.FishingSpotLatitude,
                FishingSpotLongtitude = inputModel.FishingSpotLongtitude,
                TargetFishSpeciesId   = inputModel.TargetFishSpeciesId,
                FishingMethod         = (FishingMethodEnum)inputModel.FishingMethodId,
                HostId = userId,
            };

            await this.groupTripsRepository.AddAsync(groupTrip);

            await this.groupTripsRepository.SaveChangesAsync();

            return(groupTrip.Id);
        }