예제 #1
0
        public async Task <IActionResult> PutOpdrachtTag(long id, OpdrachtTag opdrachtTag)
        {
            if (id != opdrachtTag.Id)
            {
                return(BadRequest());
            }

            _context.Entry(opdrachtTag).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OpdrachtTagExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #2
0
        public async Task <ActionResult <OpdrachtTag> > PostOpdrachtTag(OpdrachtTag opdrachtTag)
        {
            _context.OpdrachtTags.Add(opdrachtTag);

            if (opdrachtTag.TagId != null)
            {
                await _context.SaveChangesAsync();
            }

            return(opdrachtTag);
        }
        public async Task <ActionResult <Opdracht> > EditOpdracht(long id, OpdrachtTags data)
        {
            Opdracht opdracht = data.opdracht;

            string[] tags = data.tags;

            var opdrachtOld = _context.Opdrachten.Find(opdracht.Id);

            if (opdrachtOld == null)
            {
                return(NotFound());
            }

            opdracht.Id        = opdrachtOld.Id;
            opdracht.BedrijfId = opdrachtOld.BedrijfId;
            opdracht.klaar     = opdrachtOld.klaar;
            opdracht.open      = opdrachtOld.open;

            _context.Entry(opdrachtOld).State = EntityState.Detached;

            _context.Entry(opdracht).State = EntityState.Modified;

            await _context.SaveChangesAsync();

            var opdrachtTagsOld = await _context.OpdrachtTags.Where(x => x.OpdrachtId == opdracht.Id).ToListAsync();

            if (opdrachtTagsOld != null)
            {
                foreach (OpdrachtTag opdrachtTag in opdrachtTagsOld)
                {
                    _context.Remove(opdrachtTag);
                }
            }

            await _context.SaveChangesAsync();

            if (tags != null)
            {
                foreach (string tag in tags)
                {
                    Tag tagObject = await _context.Tags.Where(x => x.Naam.ToLower() == tag.ToLower()).SingleOrDefaultAsync();

                    if (tagObject == null)
                    {
                        tagObject      = new Tag();
                        tagObject.Naam = tag;

                        _context.Tags.Add(tagObject);
                    }

                    var opdrachtTag = await _context.OpdrachtTags.Where(x => (x.TagId == tagObject.Id) && (x.OpdrachtId == opdracht.Id)).SingleOrDefaultAsync();

                    if (opdrachtTag == null)
                    {
                        OpdrachtTag opdrachttag = new OpdrachtTag();
                        opdrachttag.OpdrachtId = opdracht.Id;
                        opdrachttag.TagId      = tagObject.Id;
                        _context.OpdrachtTags.Add(opdrachttag);
                    }
                }
            }

            await _context.SaveChangesAsync();


            return(CreatedAtAction("EditOpdracht", new { id = opdracht.Id }, opdracht));
        }