示例#1
0
        public async Task <IActionResult> Edit(decimal id, [Bind("SERIALNUMBER,COMPONENTID,SUBSTITUTEID,LOCATION,QUANTITY,DATEINSTALLED,EMPLOYEEID,id")] BikeParts bikeParts)
        {
            if (id != bikeParts.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bikeParts);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BikePartsExists(bikeParts.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(bikeParts));
        }
示例#2
0
        public BikeParts AddBikePart(BikeParts part)
        {
            this.context.BikeParts.Add(part);
            this.context.SaveChanges();

            return(part);
        }
示例#3
0
        public void DisusePart_ShouldSetIsUsedFalseAndRemoveBikePartId()
        {
            var options = GetDbOptions("DisusePart_Database");

            var dummyBikePart = new BikeParts();

            var dummyPlayerPart1 = new PlayerParts()
            {
                Id = 10, IsUsed = true, BikePart = dummyBikePart
            };
            var dummyPlayerPart2 = new PlayerParts()
            {
                Id = 20, IsUsed = true, BikePart = dummyBikePart
            };
            var dummyPlayerPart3 = new PlayerParts()
            {
                Id = 30, IsUsed = true, BikePart = dummyBikePart
            };

            using (var context = new RiderDBContext(options))
            {
                context.PlayerParts.Add(dummyPlayerPart1);
                context.PlayerParts.Add(dummyPlayerPart2);
                context.PlayerParts.Add(dummyPlayerPart3);
                context.SaveChanges();
            }

            Assert.True(dummyPlayerPart1.IsUsed);
            Assert.True(dummyPlayerPart2.IsUsed);
            Assert.NotNull(dummyPlayerPart1.BikePart);
            Assert.NotNull(dummyPlayerPart2.BikePart);

            PlayerParts actual1;
            PlayerParts actual2;
            bool        isDisused1;
            bool        isDisused2;
            bool        isDisused3;

            using (var context = new RiderDBContext(options))
            {
                var userManager    = GetMockUserManager();
                var playersService = new PlayersService(context, userManager.Object);
                isDisused1 = playersService.DisusePart(10);
                isDisused2 = playersService.DisusePart(20);
                isDisused3 = playersService.DisusePart(221);

                actual1 = context.PlayerParts.FirstOrDefault(x => x.Id == 10);
                actual2 = context.PlayerParts.FirstOrDefault(x => x.Id == 20);
            }

            Assert.True(isDisused1);
            Assert.True(isDisused2);
            Assert.False(isDisused3);

            Assert.False(actual1.IsUsed);
            Assert.False(actual2.IsUsed);
            Assert.Null(actual1.BikePart);
            Assert.Null(actual2.BikePart);
        }
示例#4
0
        public async Task <IActionResult> Create([Bind("SERIALNUMBER,COMPONENTID,SUBSTITUTEID,LOCATION,QUANTITY,DATEINSTALLED,EMPLOYEEID,id")] BikeParts bikeParts)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bikeParts);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(bikeParts));
        }
示例#5
0
        public ActionResult Equip(EquipPartModel model)
        {
            var username = this.User.Identity.Name;
            var player   = this.playersService.GetPlayerByUsername(username);

            if (!player.Bikes.Any(x => x.Id == model.BikeId))
            {
                this.ModelState.AddModelError("", "Bike not found!");
            }

            if (model.NewPlayerPartId == 0)
            {
                TempData["Error"] = "No part was selected!";
                return(RedirectToAction(nameof(Equip), new { b = model.BikeId }));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var newPlayerPart = this.playersService.GetPlayerPartById(model.NewPlayerPartId);
            var bike          = this.bikesService.GetBikeById(model.BikeId);
            var bikeParts     = bike.BikeParts.Where(x => x.PlayerPart.Part.Type == newPlayerPart.Part.Type);

            if ((newPlayerPart.Part.Type != PartType.Other && bikeParts.Count() >= 1) || bikeParts.Count() >= 3)
            {
                var oldBikePart = bikeParts.FirstOrDefault();
                this.playersService.DisusePart(oldBikePart.PlayerPartId);
                this.bikesService.RemoveBikePart(oldBikePart.Id);
            }

            var newBikePart = new BikeParts();

            newBikePart.PlayerPart = newPlayerPart;
            newBikePart.Bike       = bike;

            var addedBikePart = this.bikesService.AddBikePart(newBikePart);

            this.playersService.UsePart(model.NewPlayerPartId, addedBikePart.Id);

            return(RedirectToAction(nameof(Equip), new { b = model.BikeId }));
        }
示例#6
0
        public void GetBikePartById_ShouldReturnCorrectBikePart()
        {
            var options = GetDbOptions("GetBikePartById_Database");

            var testId        = 128;
            var dummyBikePart = new BikeParts()
            {
                Id = testId
            };
            var dummyBikePartFake1 = new BikeParts()
            {
                Id = 1
            };
            var dummyBikePartFake2 = new BikeParts()
            {
                Id = 2
            };

            using (var context = new RiderDBContext(options))
            {
                context.BikeParts.Add(dummyBikePart);
                context.BikeParts.Add(dummyBikePartFake1);
                context.BikeParts.Add(dummyBikePartFake2);
                context.SaveChanges();
            }

            BikeParts actual = null;

            using (var context = new RiderDBContext(options))
            {
                var playersService = new Mock <IPlayersService>();
                var bikesService   = new BikesService(context, playersService.Object);
                actual = bikesService.GetBikePartById(testId);
            }

            Assert.Equal(testId, actual.Id);
        }
示例#7
0
        public void AddBikePart_ShouldAddPartToBike()
        {
            var options = GetDbOptions("AddBikePart_Database");

            var dummyBikePart = new BikeParts();

            using (var context = new RiderDBContext(options))
            {
                var playersService = new Mock <IPlayersService>();
                var bikesService   = new BikesService(context, playersService.Object);

                bikesService.AddBikePart(dummyBikePart);
            }

            List <BikeParts> actual = null;

            using (var context = new RiderDBContext(options))
            {
                actual = context.BikeParts.ToList();
            }

            Assert.Single(actual);
            Assert.Contains(actual, x => x.Id == dummyBikePart.Id);
        }