public AddSource ( Seal.Model.MetaSource source ) : Seal.Model.ReportSource | ||
source | Seal.Model.MetaSource | |
리턴 | Seal.Model.ReportSource |
public ReportSource AddSource(MetaSource source)
{
ReportSource result = ReportSource.Create(Repository, (source == null));
result.Report = this;
if (source != null)
{
result.ConnectionGUID = ReportSource.DefaultRepositoryConnectionGUID;
result.MetaSourceGUID = source.GUID;
result.Name = source.Name + " (Repository)";
}
result.Name = Helper.GetUniqueName(result.Name, (from i in Sources select i.Name).ToList());
Sources.Add(result);
return result;
}
public static Report Create(Repository repository) { Report result = new Report() { GUID = Guid.NewGuid().ToString() }; result.FilePath = "NewReport." + Repository.SealReportFileExtension; result.Repository = repository; foreach (MetaSource source in repository.Sources) { ReportSource reportSource = result.AddSource(source); } if (result.Sources.Count == 0) result.AddSource(null); foreach (ReportSource source in result.Sources) { source.LoadRepositoryMetaSources(repository); //Remove the connection added if (source.Connections.Count > 1) source.Connections.RemoveAll(i => i.IsEditable); //And master table added for NoSQL if (source.IsNoSQL && source.MetaData.Tables.Count > 1) source.MetaData.Tables.RemoveAll(i => i.IsEditable); } //and a first model if (result.Models.Count == 0) result.AddModel(); //Add default views ReportView defaultView = result.AddModelHTMLView(); if (defaultView == null) throw new Exception(string.Format("Unable to find any view in your repository. Check that your repository folder '{0}' contains all the default sub-folders and files...", repository.RepositoryPath)); result.ViewGUID = defaultView.GUID; result.AddModelCSVView(); return result; }