Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }