public void GenerateNotifyChanged(Class @class, List<Field> fields) { var generationMode = GetGenerationModeForClass(fields); if (!GenerateForNotifyProperty(generationMode)) return; if (GetNotifyChangedGenerationSkipForClass(fields)) return; var fileName = @class.FileWithShortestName(); var projectItem = Parser.GetProjectItem(fileName); var outputFileName = fileName.Replace(".cs", ".PropertyEvents.g.cs"); GenerateHeader(); GenerateUsings(@class, new List<string> { "System", "System.ComponentModel", @class.Namespace.Name}); #line default #line hidden #line 357 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\r\nnamespace "); #line default #line hidden #line 359 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(@class.Namespace.Name)); #line default #line hidden #line 359 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\t\r\n{\r\n public partial class "); #line default #line hidden #line 361 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(@class.Name)); #line default #line hidden #line 361 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(@" { public event PropertyChangedEventHandler PropertyChanged; protected virtual void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } } } "); #line default #line hidden #line 375 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" GenerateFooter(); debugOutput += string.Format("Generated {0}\r\n", outputFileName); Delete(projectItem, outputFileName); Save(projectItem, outputFileName); }
public void GenerateNotifyChangedInterface(Class @class, List<Field> fields) { var generationMode = GetGenerationModeForClass(fields); if (!GenerateForNotifyProperty(generationMode)) return; var fileName = @class.FileWithShortestName(); var projectItem = Parser.GetProjectItem(fileName); var outputFileName = fileName.Replace(".cs", ".EventPropertyInterface.g.cs"); GenerateHeader(); GenerateUsings(@class, new List<string> { "System", "System.ComponentModel", @class.Namespace.Name}); #line default #line hidden #line 311 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\r\nnamespace "); #line default #line hidden #line 313 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(@class.Namespace.Name)); #line default #line hidden #line 313 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\t\r\n{\r\n public interface I"); #line default #line hidden #line 315 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(@class.Name)); #line default #line hidden #line 315 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("EventProperties\r\n {\r\n\t\tevent PropertyChangedEventHandler PropertyChanged;\r\n"); #line default #line hidden #line 318 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" foreach (var field in fields) { var propertyName = field.GetDefaultPublicPropertyName(); var propertyType = field.Type; #line default #line hidden #line 323 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\t\t\t"); #line default #line hidden #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(propertyType)); #line default #line hidden #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(" "); #line default #line hidden #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(this.ToStringHelper.ToStringWithCulture(propertyName)); #line default #line hidden #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write(" { get;set; }\r\n\r\n"); #line default #line hidden #line 326 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" } #line default #line hidden #line 330 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" this.Write("\r\n\t}\r\n}\r\n\r\n"); #line default #line hidden #line 335 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt" GenerateFooter(); debugOutput += string.Format("Generated {0}\r\n", outputFileName); Delete(projectItem, outputFileName); Save(projectItem, outputFileName); }