Пример #1
0
        public async Task <IActionResult> PutTag(long id, GDGTag _tag)
        {
            var tag = await _context.Tags.FindAsync(id);

            if (tag == null)
            {
                return(BadRequest()); // 400
            }


            tag.TagString = _tag.TagString;

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

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

            return(NoContent()); // 204
        }
Пример #2
0
        public async Task <IActionResult> PutMeetup(long id, MeetupDTO _meetup)
        {
            if (id != _meetup.GDGMeetup.Id)
            {
                return(BadRequest()); // 400
            }

            var meetup     = _context.Meetups.Include(m => m.MeetupTags).FirstOrDefault(m => m.Id == id);
            var tags       = _context.Tags.ToList();
            var meetupTags = _context.MeetupTag.Include(mt => mt.GDGTag).Include(mt => mt.GDGMeetup).ToList();

            meetup.Content     = _meetup.GDGMeetup.Content;
            meetup.SpeakerName = _meetup.GDGMeetup.SpeakerName;

            meetup.MeetupTags = new List <MeetupTag>();


            // Adding non existing tags
            foreach (GDGTag t in _meetup.Tags)
            {
                MeetupTag mt;
                // Check if the tag already exists in the database
                if (tags.Contains(t))
                {
                    // If Yes, check if the MeetupTag joining the Meetup and Tag already exists
                    mt = meetupTags.FirstOrDefault(mt => (mt.GDGTag.Equals(t) && mt.GDGMeetup.Equals(meetup)));

                    if (mt == null)
                    {
                        // If not, create it
                        mt = new MeetupTag()
                        {
                            GDGMeetup = meetup,
                            GDGTag    = tags.First(tagInDB => tagInDB.Equals(t))
                        };
                    }
                }
                else
                {
                    // If not, create the Tag and the meetup Tag
                    GDGTag tag = new GDGTag()
                    {
                        TagString = t.TagString
                    };
                    mt = new MeetupTag()
                    {
                        GDGMeetup = meetup,
                        GDGTag    = tag
                    };
                }
                meetup.MeetupTags.Add(mt);
            }

            _context.SaveChanges();

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


            return(NoContent()); // 204
        }
Пример #3
0
        public async Task <ActionResult <IEnumerable <GDGMeetup> > > PopulateDbWithMockData()
        {
            var meetups = new List <GDGMeetup>();
            var tags    = new List <GDGTag>();
            int i;

            var meetup = new GDGMeetup()
            {
                Content = "MockData", SpeakerName = "Blue Meadow", MeetupId = "265177852", Upcoming = false
            };

            var tag1 = new GDGTag()
            {
                TagString = "tag1"
            };
            var tag2 = new GDGTag()
            {
                TagString = "tag2"
            };
            var tag3 = new GDGTag()
            {
                TagString = "tag3"
            };

            meetup.MeetupTags = new List <MeetupTag> {
                new MeetupTag()
                {
                    GDGTag = tag1, GDGMeetup = meetup
                }
            };
            meetup.MeetupTags.Add(new MeetupTag()
            {
                GDGTag = tag2, GDGMeetup = meetup
            });
            meetup.MeetupTags.Add(new MeetupTag()
            {
                GDGTag = tag3, GDGMeetup = meetup
            });

            _context.Meetups.Add(meetup);

            await _context.SaveChangesAsync();

            return(NoContent());
        }
Пример #4
0
        public async Task <ActionResult <GDGTag> > PostGDGTag(GDGTag tag)
        {
            _context.Tags.Add(tag);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (TagExists(tag.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetGDGTag", tag, null));
        }