public async void CanCreateANewMiniModel() { var testEmail = "*****@*****.**"; var miniModel = new MiniModelDTO { Name = "Stromwall", Manufacturer = "Privateer Press", PartNumber = "PP1234", Faction = "Cygnar", PointCost = 38, BuildState = "unBuilt" }; var service = BuildService(); var saved = await service.Create(miniModel, testEmail); Assert.NotNull(saved); Assert.Equal(miniModel.Name, saved.Name); Assert.Equal(miniModel.Manufacturer, saved.Manufacturer); Assert.Equal(miniModel.PartNumber, saved.PartNumber); Assert.Equal(miniModel.Faction, saved.Faction); Assert.Equal(miniModel.PointCost, saved.PointCost); Assert.Equal(miniModel.BuildState, saved.BuildState); }
public async void CanUpdateAMiniModel() { var testEmail = "*****@*****.**"; var service = BuildService(); var miniModel = new MiniModelDTO { Id = 1, Name = "IronClad", Manufacturer = "Privateer Press", PartNumber = "PP0987", Faction = "Cygnar", PointCost = 40, BuildState = "painted" }; await service.Update(miniModel, 1, testEmail); var returnFromMethod = await service.GetMiniModel(1, testEmail); Assert.NotNull(returnFromMethod); Assert.Equal(miniModel.Id, returnFromMethod.Id); Assert.Equal(miniModel.Name, returnFromMethod.Name); Assert.Equal(miniModel.PartNumber, returnFromMethod.PartNumber); Assert.Equal(miniModel.PointCost, returnFromMethod.PointCost); Assert.Equal(miniModel.BuildState, returnFromMethod.BuildState); }
public async Task <IActionResult> PutMiniModel(int id, MiniModelDTO miniModel) { if (id != miniModel.Id) { return(BadRequest()); } var updatedMini = await _miniModel.Update(miniModel, id, GetUserEmail()); return(Ok(updatedMini)); }
// UpdateAMiniModel public async Task <MiniModelDTO> Update(MiniModelDTO miniModel, int id) { Enum.TryParse(miniModel.BuildState, out BuildState buildState); MiniModel updatedMiniModel = new MiniModel() { Id = miniModel.Id, Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = buildState }; _context.Entry(updatedMiniModel).State = EntityState.Modified; await _context.SaveChangesAsync(); return(miniModel); }
// CreateAMiniModel /// <summary> /// The below method allows one to create an minimodel to be stored within MiniModel /// </summary> /// <param name="supplyName">the name of the minimodel item</param> /// <returns>the newly added minimodel item</returns> public async Task <MiniModelDTO> Create(MiniModelDTO miniModel, string email) { Enum.TryParse(miniModel.BuildState, out BuildState buildState); MiniModel entity = new MiniModel() { Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, PartNumber = miniModel.PartNumber, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = buildState, Email = email }; _context.Entry(entity).State = EntityState.Added; await _context.SaveChangesAsync(); return(miniModel); }
// GetAMiniModel public async Task <MiniModelDTO> GetMiniModel(int id) { MiniModel miniModel = await _context.MiniModels.FindAsync(id); var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id) .Include(x => x.Paint) .ToListAsync(); var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id) .Include(x => x.Supply) .ToListAsync(); // ============ TODO: Needs Testing ============= List <PaintDTO> paints = new List <PaintDTO>(); List <SupplyDTO> supplies = new List <SupplyDTO>(); foreach (var item in paintList) { paints.Add(await _paint.GetPaint(item.Paint.Id)); } foreach (var item in suppliesList) { supplies.Add(await _supply.GetSupply(1)); } MiniModelDTO miniDto = new MiniModelDTO() { Id = miniModel.Id, Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = miniModel.BuildState.ToString(), Paints = paints, Supplies = supplies }; return(miniDto); }
// GetAMiniModel /// <summary> /// the below method allows one to search for a particular minimodel item /// </summary> /// <param name="email">this is the email associated with the current user (ensures they have access to minimodel item)</param> /// <returns>the minimodel item in question</returns> public async Task <MiniModelDTO> GetMiniModel(int id, string email) { MiniModel miniModel = await _context.MiniModels.Where(x => x.Email == email) .FirstOrDefaultAsync(x => x.Id == id); var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id) .Include(x => x.Paint) .ToListAsync(); var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id) .Include(x => x.Supply) .ToListAsync(); List <PaintDTO> paints = new List <PaintDTO>(); List <SupplyDTO> supplies = new List <SupplyDTO>(); foreach (var item in paintList) { paints.Add(await _paint.GetPaint(item.Paint.Id, email)); } foreach (var item in suppliesList) { supplies.Add(await _supply.GetSupply(item.Supply.Id, email)); } MiniModelDTO miniDto = new MiniModelDTO() { Id = miniModel.Id, Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, PartNumber = miniModel.PartNumber, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = miniModel.BuildState.ToString(), Paints = paints, Supplies = supplies }; return(miniDto); }
// ================== TODO =========================== // CreateAMiniModel public async Task <MiniModelDTO> Create(MiniModelDTO miniModel) { //========================= TODO get User ID and attach it to "entity" ========================= Enum.TryParse(miniModel.BuildState, out BuildState buildState); MiniModel entity = new MiniModel() { Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, PartNumber = miniModel.PartNumber, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = buildState }; _context.Entry(entity).State = EntityState.Added; await _context.SaveChangesAsync(); return(miniModel); }
public async Task <ActionResult <MiniModelDTO> > GetMiniModel(int id) { MiniModelDTO miniModel = await _miniModel.GetMiniModel(id, GetUserEmail()); return(miniModel); }
public async Task <ActionResult <MiniModelDTO> > PostMiniModel(MiniModelDTO miniModel) { await _miniModel.Create(miniModel, GetUserEmail()); return(CreatedAtAction("GetMiniModel", new { id = miniModel.Id }, miniModel)); }