private static void SaveProjectFile(ProjectDef projectDef, String directory) { ProjectFile projectFile = new ProjectFile { References = projectDef.References.Select(x => x.Key).ToArray(), Sources = new[] { new ProjectSource() } }; using (StreamWriter stream = new StreamWriter(new FileStream(Path.Combine(directory, projectDef.FileName), FileMode.Create, FileAccess.ReadWrite))) stream.WriteLine(JsonConvert.SerializeObject(projectFile, Formatting.Indented)); }
/// <summary> /// Saves the Luminary project (its entire content including the *.lux files) into given directory. /// </summary> /// <param name="projectDef"></param> /// <param name="directory"></param> public static void Save(ProjectDef projectDef, String directory) { if (projectDef.FileName == null) { throw new InvalidOperationException("Built-in projects cannot be exported."); } if (!Directory.Exists(directory)) { throw new InvalidOperationException("Directory does not exist."); } SaveProjectFile(projectDef, directory); foreach (NamespaceDef namespaceDef in projectDef.Namespaces.Values) { SaveNamespace(namespaceDef, directory); } }
public NamespaceDef([NotNull] ProjectDef projectDef, [NotNull] String @namespace) { Namespace = @namespace; Project = projectDef; projectDef.Namespaces.Add(Namespace, this); }