public async Task <IActionResult> PutBottlecap(int id, Bottlecap bottlecap) { if (id != bottlecap.BottlecapId) { return(BadRequest()); } _context.Entry(bottlecap).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BottlecapExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <IEnumerable <Bottlecap> > > GetSpace() { var allSpaces = await _context.Space.ToListAsync(); List <Bottlecap> spaceBottlecaps = new List <Bottlecap>(); foreach (Space space in allSpaces) { Bottlecap _bottlecap = await _context.Bottlecap.FindAsync(space.SpaceId); Bottlecap bottlecap = new Bottlecap(); bottlecap.Title = _bottlecap.Title; List <Link> _links = await _context.Link.Where(lnk => lnk.BottlecapId == bottlecap.BottlecapId).ToListAsync(); bottlecap.Link = _links; List <Tag> _tags = await _context.Tag.Where(tag => tag.BottlecapId == bottlecap.BottlecapId).ToListAsync(); bottlecap.Tag = _tags; spaceBottlecaps.Add(bottlecap); } return(spaceBottlecaps); }
public async Task <ActionResult <Bottlecap> > PostBottlecap([FromBody] PostedBottlecap bottlecapInput) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string userId = HttpContext.User.Claims.First().Value; //ADD BOTTLECAP Bottlecap bottlecap = new Bottlecap(); //TODO: MAKE THESE INTO SOMETHING LIKE A GUID, BUT MORE PERFORMANCE bottlecap.BottlecapId = _context.Bottlecap.Any() ? _context.Bottlecap.Select(bc => bc.BottlecapId).Max() + 1 : 1; bottlecap.Title = bottlecapInput.title; bottlecap.ProfileStringId = userId; _context.Bottlecap.Add(bottlecap); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (BottlecapExists(bottlecap.BottlecapId)) { return(Conflict()); } else { throw; } } //ADD TAGS int newTagId = _context.Tag.Any() ? _context.Tag.Select(t => t.TagId).Max() + 1 : 1; foreach (PostedBottlecap.PostedTag tag in bottlecapInput.tag) { Tag newTag = new Tag(); newTag.TagText = tag.tagText; newTag.BottlecapId = bottlecap.BottlecapId; newTag.TagId = newTagId; _context.Tag.Add(newTag); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (_context.Tag.Any(t => t.TagId == newTagId)) { return(Conflict()); } else { throw; } } newTagId++; } //ADD LINKS int newLinkId = _context.Tag.Any() ? _context.Tag.Select(t => t.TagId).Max() + 1 : 1; foreach (PostedBottlecap.PostedLink link in bottlecapInput.link) { Link newLink = new Link(); newLink.LinkText = link.linkText; newLink.BottlecapId = bottlecap.BottlecapId; newLink.LinkId = newLinkId; _context.Link.Add(newLink); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (_context.Link.Any(l => l.LinkId == newLinkId)) { return(Conflict()); } else { throw; } } newLinkId++; } return(CreatedAtAction("GetBottlecap", new { id = bottlecap.BottlecapId }, bottlecap)); }