private Topic GetTopic(DBContext db, entity.Topic topic, entity.db.Source sourceModel, IEnumerable <Category> categories)
        {
            var existTopic = db.Topics.Find(topic.Guid);

            if (existTopic != null)
            {
                return(existTopic);
            }

            var topicCategories = categories.Select(category => new TopicCategory {
                Category = category
            }).ToList();

            var dbSources = db.Sources.Find(sourceModel.Id);

            existTopic = new Topic
            {
                Guid            = topic.Guid,
                Creator         = topic.Creator,
                Description     = topic.Description,
                Link            = topic.Link,
                PublisDate      = topic.PublisDate,
                Title           = topic.Title,
                Source          = dbSources,
                TopicCategories = topicCategories
            };
            db.Topics.Add(existTopic);
            db.SaveChanges();
            return(existTopic);
        }
        public bool SaveTopic(entity.Topic topic, Source source)
        {
            using (var db = new DBContext())
            {
                if (db.Topics.Any(dbTopic => dbTopic.Guid == topic.Guid))
                {
                    return(false);
                }

                var categoriesModel = topic.Categories.Select(category => GetCategory(db, category)).ToList();
                var topicModel      = GetTopic(db, topic, source, categoriesModel);
                db.SaveChanges();
                if (topicModel != null)
                {
                    return(true);
                }
            }
            return(false);
        }