public async Task AddAndSaveTest()
        {
            var equipment1 = new Equipment()
            {
                Id = 1, Name = "test equipment 1", Price = 20000, RoomId = 1
            };
            var equipment2 = new Equipment()
            {
                Id = 2, Name = "test equipment 2", Price = 30000, RoomId = 2
            };
            var equipments = new List <Equipment> {
                equipment1, equipment2
            };

            var equipment3 = new Equipment()
            {
                Id = 2, Name = "test equipment 3", Price = 40000, RoomId = 2
            };

            var fakeEquipmentRepositoryMock = new Mock <IEquipmentRepository>();
            var fakeRoomRepositoryMock      = new Mock <IRoomRepository>();

            fakeEquipmentRepositoryMock.Setup(x => x.Add(It.IsAny <Equipment>())).Callback <Equipment>(arg => equipments.Add(arg));

            var equipmentService = new EquipmentService(fakeEquipmentRepositoryMock.Object, fakeRoomRepositoryMock.Object);

            await equipmentService.AddAndSave(equipment3);


            Assert.Equal(3, equipments.Count);
        }
        public async Task <IActionResult> Create([Bind("Id,Name,Price,RoomId")] Equipment equipment)
        {
            if (ModelState.IsValid)
            {
                await _equipmentService.AddAndSave(equipment);

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["RoomId"] = new SelectList(await _equipmentService.GetAllRooms(), "Id", "Id", equipment.RoomId);
            return(View(equipment));
        }