Beispiel #1
0
        public async Task CanOrderPart()
        {
            CreatePartOrderInputModel inputModel = new CreatePartOrderInputModel {
                IsCarBodyPart     = true,
                CarBodyPartAmount = 5
            };
            User user = new User {
                UserName = "******"
            };

            Assert.Equal(1, await this.PartService.OrderPartsAsync(inputModel, user));
            Assert.NotEmpty(this.dbContext.Parts);
        }
Beispiel #2
0
        public async Task <int> OrderPartsAsync(CreatePartOrderInputModel createPartOrderInputModel, User admin)
        {
            Order order = new Order {
                User = admin
            };

            if (createPartOrderInputModel.IsCarBodyPart)
            {
                Part part = new Part {
                    Type     = PartType.CarBody,
                    Quantity = createPartOrderInputModel.CarBodyPartAmount
                };
                order.OrderedParts.Add(part);
            }
            if (createPartOrderInputModel.IsChassisPart)
            {
                Part part = new Part {
                    Type     = PartType.Chassis,
                    Quantity = createPartOrderInputModel.ChassisPartAmount
                };
                order.OrderedParts.Add(part);
            }
            if (createPartOrderInputModel.IsElectronicPart)
            {
                Part part = new Part {
                    Type     = PartType.Electronic,
                    Quantity = createPartOrderInputModel.ElectronicPartAmount
                };
                order.OrderedParts.Add(part);
            }
            if (createPartOrderInputModel.IsInteriorPart)
            {
                Part part = new Part {
                    Type     = PartType.Interior,
                    Quantity = createPartOrderInputModel.InteriorPartAmount
                };
                order.OrderedParts.Add(part);
            }
            await this.dbContext
            .Orders
            .AddAsync(order);

            if (await this.dbContext.SaveChangesAsync() <= 0)
            {
                throw new ApplicationException();
            }
            else
            {
                return(order.Id);
            }
        }
Beispiel #3
0
        public async Task <IActionResult> Order(CreatePartOrderInputModel createPartOrderInputModel)
        {
            if (ModelState.IsValid == false)
            {
                return(this.View(createPartOrderInputModel));
            }
            if (createPartOrderInputModel.IsCarBodyPart == false &&
                createPartOrderInputModel.IsChassisPart == false &&
                createPartOrderInputModel.IsElectronicPart == false &&
                createPartOrderInputModel.IsInteriorPart == false)
            {
                this.ModelState.AddModelError("", StringConstants.WrongOrder);
                return(this.View(createPartOrderInputModel));
            }
            User admin = await this.userManager.FindByNameAsync(this.User.Identity.Name);

            int orderId = await this.partService.OrderPartsAsync(createPartOrderInputModel, admin);

            return(this.RedirectToAction(StringConstants.ActionNameAllOrders, StringConstants.OrderControllerName));
        }