public static async Task <PropertySelectorViewModel> Create(Document doc, string dtoName, SolutionLocation dtoLocation, Document existingDto = null) { var autogeneratedProperties = await EntityParser.GetAutoGeneratedProperties(existingDto); var instance = new PropertySelectorViewModel(); instance.EntityModel = await EntityViewModel.CreateRecursive(doc, depth : 3, existingProperties : autogeneratedProperties, canReuseBaseMapper : true); instance.EntityModel.DtoName = dtoName; instance.DtoLocation = dtoLocation; var isDerived = await EntityParser.HasBaseDto(existingDto, instance.EntityModel.BaseEntityDtoName); instance.EntityModel.ReuseBaseEntityMapper |= isDerived; instance.AddDataContract = await EntityParser.HasDataContract(existingDto); return(instance); }