public async Task <IActionResult> PostWinzel([FromBody] Winzel winzel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Winzels.Add(winzel);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetWinzel", new { id = winzel.Id }, winzel));
        }
Пример #2
0
        private static Winzel BuildWinzel(string titel, string text, string autor, string date, string location, string image, List <WinzelHashTag> hashtags, List <WinzelComment> usedComments)
        {
            var gab1 = new WinzelGrapes();

            gab1.Gab = "traube1";

            var winzel = new Winzel();

            winzel.WinzelAuthor   = autor;
            winzel.WinzelDate     = date;
            winzel.WinzelLocation = location;
            winzel.WinzelHashTags = hashtags;
            winzel.WinzelImage    = image;
            winzel.WinzelGraps    = new List <WinzelGrapes>()
            {
                gab1
            };
            winzel.WinzelTitle    = titel;
            winzel.WinzelComments = usedComments;
            winzel.WinzelText     = text;

            return(winzel);
        }
        public async Task <IActionResult> PutWinzel([FromRoute] long id, [FromBody] Winzel winzel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != winzel.Id)
            {
                return(BadRequest());
            }

            _context.Entry(winzel).State = EntityState.Modified;
            var comments = winzel.WinzelComments;

            if (comments != null)
            {
                var knownids = this._context.WinzelComments.Select(c => c.Id);
                foreach (var comment in comments)
                {
                    if (knownids.Contains(comment.Id))
                    {
                        _context.Entry(comment).State = EntityState.Modified;
                    }
                    else
                    {
                        _context.Entry(comment).State = EntityState.Added;
                    }
                }
            }

            var hashtags = winzel.WinzelHashTags;

            if (hashtags != null)
            {
                var knownids = this._context.WinzelHashTags.Select(c => c.Id);
                foreach (var hashtag in hashtags)
                {
                    if (knownids.Contains(hashtag.Id))
                    {
                        _context.Entry(hashtag).State = EntityState.Modified;
                    }
                    else
                    {
                        _context.Entry(hashtag).State = EntityState.Added;
                    }
                }
            }

            var graps = winzel.WinzelGraps;

            if (graps != null)
            {
                var knownids = this._context.Grapes.Select(c => c.Id);
                foreach (var grap in graps)
                {
                    if (knownids.Contains(grap.Id))
                    {
                        _context.Entry(grap).State = EntityState.Modified;
                    }
                    else
                    {
                        _context.Entry(grap).State = EntityState.Added;
                    }
                }
            }

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

            return(NoContent());
        }