private ICollection<Tag> GetTags(ArticleDataModel model)
        {
            var titleTags = model.Title.Split(' ');
            var allTags = new HashSet<string>(titleTags);
            foreach (var modelTags in model.Tags)
            {
                allTags.Add(modelTags.Name);
            }

            var articleTags = new HashSet<Tag>();
            foreach (var tagName in model.Tags)
            {
                var tag = this.data.Tags
                    .All()
                    .FirstOrDefault(t => t.Name == tagName.Name);

                if (tag == null)
                {
                    tag = new Tag
                    {
                        Name = tagName.Name
                    };

                    this.data.Tags.Add(tag);
                    articleTags.Add(tag);
                }
            }


            return articleTags;
        }
        public IHttpActionResult Create(ArticleDataModel model)
        {
            var userID = this.User.Identity.GetUserId();
            var tags = GetTags(model);
            var category = GetCategory(model.Category);
            var article = new Article
            {
                Title = model.Title,
                Content = model.Content,
                DateCreated = DateTime.Now,
                CategoryID = category.ID,
                AuthorID = userID,
                Tags = tags
            };

            this.data.Articles.Add(article);
            this.data.SaveChanges();

            model.ID = article.ID;
            model.DateCreated = article.DateCreated;
            model.Tags = article.Tags.AsQueryable().Select(TagDataModel.FromTag).ToArray();

            return Ok(model);
        }