public virtual List <ProjectResource> Save(bool saveProject = true) { var list = new List <ProjectResource> (); if (saveProject) { var contents = SaveProject(); var timestamp = contents != project_file_contents ? default(DateTimeOffset?) : ItemGroupList.SelectMany(ig => ig).Where(i => i.Timestamp != null).Select(i => (DateTimeOffset)i.Timestamp).Max(); list.Add(new ProjectResource() { Timestamp = timestamp, Path = ProjectFilePath, Content = project_file_contents = contents, Encoding = System.Text.Encoding.UTF8, }); } if (Packages.Any()) { list.Add(new ProjectResource() { Path = "packages.config", Content = "<packages>\n" + string.Concat(Packages.Select(p => string.Format(" <package id='{0}' version='{1}' targetFramework='{2}' />\n", p.Id, p.Version, p.TargetFramework))) + "</packages>" }); } foreach (var ig in ItemGroupList) { list.AddRange(ig.Select(s => new ProjectResource() { Timestamp = s.Timestamp, Path = s.Include(), Content = s.TextContent == null ? null : s.TextContent(), BinaryContent = s.BinaryContent == null ? null : s.BinaryContent(), Encoding = s.Encoding, Deleted = s.Deleted, Attributes = s.Attributes, })); } foreach (var import in Imports) { list.Add(new ProjectResource() { Path = import.Project(), Content = import.TextContent == null ? null : import.TextContent(), Encoding = System.Text.Encoding.UTF8, }); } return(list); }
public BuildItem GetItem(string include) { return(ItemGroupList.SelectMany(g => g).FirstOrDefault(i => i.Include().Equals(include, StringComparison.OrdinalIgnoreCase))); }