public ITransformerStoreModel AddOrGetTransformer(IContentTransformer transformer, IContentSource source) { ITransformerStoreModel currentTransformer = _transformers.Find(model => model.TransformerType == transformer.GetType().FullName&& model.SourceIdentity == source.Identity); if (currentTransformer != null) { return(currentTransformer); } _dbConnection.Execute($"INSERT INTO Transformers (Created, Name, TransformerType, SourceIdentity) VALUES ('{DateTime.Now:yyyy-MM-dd hh:mm:ss}', '{transformer.GetType().Assembly.GetName().Name}', '{transformer.GetType().FullName}', '{source.Identity}')"); TransformerStoreModel transformerStoreModel = (TransformerStoreModel)GetTransformer(transformer, source); Directory.CreateDirectory(Path.Combine(_storeContentDirectoryName, transformerStoreModel.Id.ToString())); _transformers.Add(transformerStoreModel); return(transformerStoreModel); }
private ITransformerStoreModel GetTransformer(IContentTransformer transformer, IContentSource source) { TransformerStoreModel currentTransformer = _transformers.FirstOrDefault(x => x.TransformerType == transformer.GetType().FullName&& x.SourceIdentity == source.Identity); return(currentTransformer ?? _dbConnection.QueryFirst <TransformerStoreModel>($"SELECT * FROM Transformers WHERE TransformerType='{transformer.GetType().FullName}' AND SourceIdentity='{source.Identity}'")); }