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); }