Beispiel #1
0
        public async Task <IHttpActionResult> Put(int id, [FromBody] LinkDtoModel link)
        {
            if (link == null)
            {
                return(BadRequest("Required data was not supplied."));
            }

            if (!await Exists(id))
            {
                return(NotFound());
            }

            var record = await db.Links.FindAsync(id);

            if (link.Description != null && record.Description != link.Description)
            {
                record.Description = link.Description;
            }

            if (link.URL != null && record.URL != link.URL)
            {
                record.URL = link.URL;
            }

            if (link.LinkCategory.ID != null && record.LinkCategoryID != link.LinkCategory.ID)
            {
                record.LinkCategoryID = (int)link.LinkCategory.ID;
            }


            return(await SaveChanges(record, ActionType.Put));
        }
Beispiel #2
0
        public async Task <IHttpActionResult> Post([FromBody] LinkDtoModel link)
        {
            if (link == null || link.LinkCategory?.ID == null)
            {
                return(BadRequest("Required data was not supplied."));
            }

            if (await Exists(link.URL, link.Description))
            {
                return(Conflict());
            }

            var record = Mapper.Map <LinkModel>(link);

            record.LinkCategoryID = (int)link.LinkCategory.ID;
            record.LinkCategory   = null; // Otherwise, it will try to create a new category

            db.Links.Add(record);

            return(await SaveChanges(record, ActionType.Post));
        }