Exemple #1
0
        public async Task <IHttpActionResult> Put(string username, int id, AddBookmarkViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Bookmark bookmark = _dbContext.Bookmarks.SingleOrDefault(x => x.BookmarkId == id);
                if (bookmark != null)
                {
                    bookmark.Description = viewModel.Description;
                    bookmark.Url         = viewModel.Url;
                    bookmark.Time        = DateTime.Now;
                    var user = await UserManager.FindByNameAsync(username);

                    if (viewModel.Tags.Count > 0)
                    {
                        bookmark.Tags = new List <Tag>();
                        foreach (var tag in viewModel.Tags)
                        {
                            Tag dbTag = _dbContext.Tags.FirstOrDefault(x => x.UserId == user.Id && x.Name == tag.Name);
                            if (dbTag != null)
                            {
                                bookmark.Tags.Add(dbTag);
                            }
                        }
                    }
                    try
                    {
                        await _dbContext.SaveChangesAsync();
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }

                    return(Ok());
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
Exemple #2
0
        public async Task <IHttpActionResult> Post(string username, AddBookmarkViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Bookmark bookmark = new Bookmark();
                bookmark.Description = viewModel.Description;
                bookmark.Url         = viewModel.Url;
                bookmark.Time        = DateTime.Now;
                var user = await UserManager.FindByNameAsync(username);

                if (viewModel.Tags.Count > 0)
                {
                    bookmark.Tags = new List <Tag>();
                    foreach (var tag in viewModel.Tags)
                    {
                        Tag dbTag = _dbContext.Tags.FirstOrDefault(x => x.UserId == user.Id && x.Name == tag.Name);
                        if (dbTag != null)
                        {
                            bookmark.Tags.Add(dbTag);
                        }
                    }
                }
                _dbContext.Bookmarks.Add(bookmark);
                try
                {
                    await _dbContext.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    throw;
                }
                string absolute = RequestContext.Url.Request.RequestUri.AbsoluteUri;
                string nextUrl  = absolute.Split('?')[0];

                return(Created(nextUrl + "/" + bookmark.BookmarkId, string.Empty));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }