Example #1
0
        public void Edit(EditEscapeRoomDto escapeRoom)
        {
            var escapeRoomEntity = _dbContext.EscapeRooms.FirstOrDefault(e => e.EscapeRoomId == escapeRoom.Id);

            if (escapeRoomEntity == null)
            {
                throw new CanNotFindValueException($"Escape room with {escapeRoom.Id} do not exits");
            }

            escapeRoomEntity.Name            = escapeRoom.Name;
            escapeRoomEntity.Time            = escapeRoom.Time;
            escapeRoomEntity.BuildingNumber  = escapeRoom.BuildingNumber;
            escapeRoomEntity.City            = escapeRoom.City;
            escapeRoomEntity.Street          = escapeRoom.Street;
            escapeRoomEntity.Category        = escapeRoom.Category;
            escapeRoomEntity.Description     = escapeRoom.Description;
            escapeRoomEntity.Email           = escapeRoom.Email;
            escapeRoomEntity.ForAdult        = escapeRoom.ForAdult;
            escapeRoomEntity.MaxPeopleNumber = escapeRoom.MaxPeopleNumber;
            escapeRoomEntity.PhoneNumber     = escapeRoom.PhoneNumber;
            escapeRoomEntity.Price           = escapeRoom.Price;

            _dbContext.SaveChanges();
        }
        public async Task Common_Scenario_EscapeRooms_Reviews_And_Statistic()
        {
            var users = Client.GetAsync("api/users").Result.Content.ReadAsAsync <ICollection <UserDto> >().Result;

            Assert.AreEqual(1, users.Count);
            var userId     = users.First().Id;
            var escapeRoom = new NewEscapeRoomDto
            {
                BuildingNumber = 30, Category = Category.Abstract, City = "Kraków", Time = 80, Name = "StrasznyDwor",
                Email          = "*****@*****.**", Description = "Super hard escape room", Price = 150,
                ForAdult       = true, PhoneNumber = "433256643", MaxPeopleNumber = 5, Street = "BakerStreet"
            };
            await Client.PostAsJsonAsync("api/escaperooms", escapeRoom);

            var allEscapeRooms = await Client.GetAsync("api/escaperooms").Result.Content.ReadAsAsync <ICollection <EscapeRoomDto> >();

            Assert.AreEqual(1, allEscapeRooms.Count);
            var actualEscapeRoom = allEscapeRooms.First();

            Assert.AreEqual(escapeRoom.Category, actualEscapeRoom.Category);
            Assert.AreEqual(escapeRoom.Description, actualEscapeRoom.Description);
            Assert.AreEqual(escapeRoom.Name, actualEscapeRoom.Name);
            var editEscapeRoom = new EditEscapeRoomDto
            {
                ForAdult        = escapeRoom.ForAdult,
                BuildingNumber  = escapeRoom.BuildingNumber,
                Category        = escapeRoom.Category,
                City            = escapeRoom.City,
                Description     = escapeRoom.Description,
                Email           = escapeRoom.Email,
                MaxPeopleNumber = escapeRoom.MaxPeopleNumber,
                Name            = "EDITEDNAME",
                PhoneNumber     = escapeRoom.PhoneNumber,
                Price           = 200,
                Id = actualEscapeRoom.Id
            };
            await Client.PutAsJsonAsync("api/escaperooms", editEscapeRoom);

            var afterEditEscapeRoom = await Client.GetAsync($"api/escaperooms/{actualEscapeRoom.Id}").Result.Content.ReadAsAsync <EscapeRoomDto>();

            //Assert.AreEqual("EDITEDNAME", afterEditEscapeRoom.Name);
            //Assert.AreEqual(200, afterEditEscapeRoom.Price);
            await Client.DeleteAsync($"api/escaperooms/{actualEscapeRoom.Id}");

            var allEscapeRoomsAfterDelete = await Client.GetAsync("api/escaperooms").Result.Content.ReadAsAsync <ICollection <EscapeRoomDto> >();

            Assert.AreEqual(0, allEscapeRoomsAfterDelete.Count);
            await Client.PostAsJsonAsync("api/escaperooms", escapeRoom);

            allEscapeRooms = await Client.GetAsync("api/escaperooms").Result.Content.ReadAsAsync <ICollection <EscapeRoomDto> >();

            Assert.AreEqual(1, allEscapeRooms.Count);
            actualEscapeRoom = allEscapeRooms.First();
            var review1 = new NewReviewDto
            {
                UserId       = userId,
                Content      = "AwesomeTestRoom",
                EscapeRoomId = actualEscapeRoom.Id,
                Rating       = Rating.Eight,
                Title        = "Great"
            };
            await Client.PostAsJsonAsync("api/reviews", review1);

            var allReviews = Client.GetAsync($"api/reviews/byUser/{userId}").Result.Content.ReadAsAsync <ICollection <ReviewForUserDto> >().Result;

            Assert.AreEqual(1, allReviews.Count);
            var statistics = Client.GetAsync("api/statistics/CityStatistics/Kraków").Result.Content
                             .ReadAsAsync <CityStatisticsDto>().Result;

            Assert.AreEqual(80, statistics.AverageGameTime);
            Assert.AreEqual(150, statistics.AveragePrice);
            Assert.AreEqual(8, statistics.AverageRating);
            Assert.AreEqual(1, statistics.EscapeRoomsNumber);
            Assert.AreEqual(new Dictionary <string, int> {
                { "Abstract", 1 }
            }, statistics.FamousTypes);
        }
 public ActionResult Put(EditEscapeRoomDto value)
 {
     _escapeRoomService.Edit(value);
     return(Ok());
 }
 public void Edit(EditEscapeRoomDto escapeRoom)
 {
     _escapeRoomRepository.Edit(escapeRoom);
 }