public async Task <string> Create(PartInputModel model) { var part = this.Mapper.Map <Part>(model); var vendor = this.vendorService.GetVendorByName(model.VendorName); var subAssembly = this.subAssemblyService.GetById(model.SubAssemblyId); part.VendorId = vendor.Id; vendor.Parts.Add(part); subAssembly.Parts.Add(part); this.Context.Parts.Add(part); this.Context.Vendors.Update(vendor); this.Context.SubAssemblies.Update(subAssembly); await this.Context.SaveChangesAsync(); return(part.Id); }
public async Task <IActionResult> Create(PartInputModel model) { bool checkVendorIsValid = this.vendorService.CheckVendorIsValid(model.VendorName); if (!this.ModelState.IsValid || !checkVendorIsValid) { this.ViewData[GlobalConstants.SubAssemblyId] = model.SubAssemblyId; return(this.View()); } var partId = await this.partService.Create(model); var part = this.partService.GetPartById(partId); var robotId = part.SubAssembly.Assembly.RobotId; return(this.RedirectToAction("Details", "Robots", new { id = robotId })); }
public void CreatePart_Should_Succeed() { var subAssembly = new SubAssembly() { Id = "1", Name = "aasdasd", Quantity = 1, Weight = 1 }; var vendor = new Vendor() { Id = "1", Name = "vendor" }; this.Context.SubAssemblies.Add(subAssembly); this.Context.Vendors.Add(vendor); this.Context.SaveChanges(); var partInputModel = new PartInputModel { Name = "part1", Price = 2.50m, Quantity = 2, SubAssemblyId = subAssembly.Id, VendorName = vendor.Name }; var result = this.partService.Create(partInputModel).GetAwaiter().GetResult(); var part = this.Context.Parts.First(); result.Should().NotBeNull(); part.Should().NotBeNull() .And.Subject.Should().BeEquivalentTo(new { Id = result, ImageUrl = GlobalConstants.NoImageAvailableUrl, Name = partInputModel.Name }, options => options.ExcludingMissingMembers()); }