public static ProjectsJson GetProjectsConfig(this BaseLoadTask baseTask) { baseTask.LogDebug($"Loading {Consts.ProjectsFile} file"); try { var projectsConfigPath = Path.Combine(baseTask.TapAssetDir, Consts.ProjectsFile); ProjectsJson projectConfigs = null; if (!File.Exists(projectsConfigPath)) { baseTask.LogInformation($"{Consts.ProjectsFile} file file not found, created at {projectsConfigPath}"); projectConfigs = new ProjectsJson(); var json = JsonConvert.SerializeObject(projectConfigs, Formatting.Indented); File.WriteAllText(projectsConfigPath, json); return(projectConfigs); } else { var json = File.ReadAllText(projectsConfigPath); projectConfigs = JsonConvert.DeserializeObject <ProjectsJson>(json); return(projectConfigs); } } catch (Exception ex) { baseTask.Log.LogErrorFromException(ex); } return(null); }
public static ITaskItem[] GetFileExchangeFieldOutput(this BaseLoadTask baseTask , IList <FileExchangeFieldClientDto> fieldsDto , ITaskItem holder) { baseTask.LogDebug("Generating FileExchange Field Output TaskItems"); var output = new List <ITaskItem>(); foreach (var field in fieldsDto) { var itemMetadata = new Dictionary <string, string>(); itemMetadata.Add(MetadataType.SourceFilePathValue, field.Value.SourceFilePath); itemMetadata.Add(MetadataType.DestinationFilePathValue, field.Value.DestinationFilePath); itemMetadata.Add(MetadataType.BuildActionValue, field.Value.BuildAction); itemMetadata.Add(MetadataType.FieldHolderDisabled, holder.GetMetadata(MetadataType.Disabled)); var taskItem = new TaskItem(field.FieldId, itemMetadata); //we don't supply description to client taskItem.SetDisabledMetadata(baseTask, field.Disabled, field.Value.SourceFilePath); output.Add(taskItem); } baseTask.LogInformation($"Generated {output.Count} FileExchange Field Output TaskItems"); return(output.ToArray()); }
public static ITaskItem[] GetStringFieldOutput <TFieldClientDto>(this BaseLoadTask baseTask , IList <TFieldClientDto> fieldsDto , ITaskItem holder) where TFieldClientDto : BaseFieldClientDto <string> { baseTask.LogDebug("Generating String Field Output TaskItems"); var output = new List <ITaskItem>(); foreach (var field in fieldsDto) { var itemMetadata = new Dictionary <string, string>(); itemMetadata.Add(MetadataType.Value, field.Value); //TODO deal with this in setmanifest itemMetadata.Add(MetadataType.FieldHolderDisabled, holder.GetMetadata(MetadataType.Disabled)); var taskItem = new TaskItem(field.FieldId, itemMetadata); var fieldType = FieldType.GetAll().FirstOrDefault(x => x.Value == field.FieldId); taskItem.SetDisabledMetadata(baseTask, field.Disabled, fieldType.DisplayName); output.Add(taskItem); } baseTask.LogInformation($"Generated {output.Count} Field Output TaskItems"); return(output.ToArray()); }
public static ITaskItem[] GetPackagingOutput(this BaseLoadTask baseTask, ClientConfigDto clientConfigDto) { baseTask.LogDebug("Generating Packaging TaskItems"); var output = new List <ITaskItem>(); foreach (var field in clientConfigDto.Packaging.Fields) { var itemMetadata = new Dictionary <string, string>(); itemMetadata.Add("Value", field.Value); output.Add(new TaskItem(field.FieldId.ToString(), itemMetadata)); } baseTask.LogInformation("Generated {0} Packaging TaskItems", output.Count); return(output.ToArray()); }
public static void SaveTapAssetConfig(this BaseLoadTask baseTask, TapSettingJson tapSetting) { baseTask.LogInformation($"Saving {Consts.TapSettingFile} file"); try { var tapSettingsPath = baseTask.FindTopFileInProjectDir(Consts.TapSettingFile); var json = JsonConvert.SerializeObject(tapSetting, Formatting.Indented); File.WriteAllText(tapSettingsPath, json); baseTask.LogDebug($"{Consts.TapSettingFile} file saved"); } catch (Exception ex) { baseTask.Log.LogErrorFromException(ex); } }
public static bool SaveProjects(this BaseLoadTask baseTask, ProjectsJson projectsConfig) { baseTask.LogDebug($"Saving {Consts.ProjectsFile} file"); try { var projectsConfigPath = Path.Combine(baseTask.TapAssetDir, Consts.ProjectsFile); baseTask.LogInformation($"Saving {Consts.ProjectsFile} at {projectsConfigPath}"); var json = JsonConvert.SerializeObject(projectsConfig, Formatting.Indented); File.WriteAllText(projectsConfigPath, json); } catch (Exception ex) { baseTask.Log.LogErrorFromException(ex); } return(true); }
public static ITaskItem GetAssetCatalogueName(this BaseLoadTask baseTask, ClientConfigDto clientConfigDto, string TargetFrameworkIdentifier) { if (TargetFrameworkIdentifier == "Xamarin.iOS") { var field = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == FieldType.PackagingIosAssetCatalogueName.Value); if (field == null || String.IsNullOrEmpty(field.Value)) { baseTask.Log.LogError("Asset catalogue undefined"); } baseTask.LogInformation("AssetCatalogue name {0}", field.Value.ApplyXcAssetsExt()); var taskItem = new TaskItem(field.Value.ApplyXcAssetsExt()); var fieldType = FieldType.GetAll().FirstOrDefault(x => x.Value == field.FieldId); taskItem.SetDisabledMetadata(baseTask, field.Disabled, fieldType.DisplayName); return(taskItem); } else { return(null); } }
public static ITaskItem[] GetMediaFieldOutput <TFieldClientDto>(this BaseLoadTask baseTask , IList <TFieldClientDto> fieldsDto , ITaskItem assetCatalogueName , ClientConfigDto clientConfigDto , ITaskItem holder) where TFieldClientDto : BaseFieldClientDto <string> { baseTask.LogDebug("Generating Media Field TaskItems"); var output = new List <ITaskItem>(); foreach (var field in fieldsDto) { var itemMetadata = new Dictionary <string, string>(); var fieldType = FieldType.GetAll().FirstOrDefault(x => x.Value == field.FieldId); if (fieldType == null) { throw new Exception($"Missing field type {field.FieldId}"); } itemMetadata.Add(MetadataType.FieldHolderDisabled, holder.GetMetadata(MetadataType.Disabled)); if (fieldType.ProjectType == ProjectType.Droid) { StringFieldClientDto droidNameField = null; if (fieldType is AppIconFieldType) { droidNameField = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == FieldType.PackagingDroidAppIconName.Value); } else if (fieldType is SplashFieldType) { droidNameField = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == FieldType.PackagingDroidSplashName.Value); } if (droidNameField == null || String.IsNullOrEmpty(droidNameField.Value)) { baseTask.Log.LogError("Droid field name undefined"); } //these ones are required for both itemMetadata.Add(MetadataType.LogicalName, droidNameField.Value.ApplyPngExt()); itemMetadata.Add(MetadataType.TapAssetPath, Path.Combine(Consts.DroidTapAssets, fieldType.GetMetadata(MetadataType.Folder))); itemMetadata.Add(MetadataType.ProjectAssetPath, Path.Combine(Consts.DroidResources, fieldType.GetMetadata(MetadataType.Folder))); itemMetadata.Add(MetadataType.MediaName, droidNameField.Value.ApplyFieldId(field)); itemMetadata.Add(MetadataType.MSBuildItemType, MSBuildItemName.TapAsset); } else if (fieldType.ProjectType == ProjectType.Ios) { //do iTunesArtWork if (String.IsNullOrEmpty(fieldType.GetMetadata(MetadataType.Idiom))) { itemMetadata.Add(MetadataType.TapAssetPath, Consts.iTunesArtworkDir); itemMetadata.Add(MetadataType.ProjectAssetPath, Consts.iTunesArtworkDir); itemMetadata.Add(MetadataType.MediaName, fieldType.GetMetadata(MetadataType.FileName).RemovePngExt().ApplyFieldId(field)); itemMetadata.Add(MetadataType.LogicalName, fieldType.GetMetadata(MetadataType.FileName).RemovePngExt()); itemMetadata.Add(MetadataType.MSBuildItemType, MSBuildItemName.ITunesArtwork); } else //do asset catalogue { //need to seperate out image catalogues here, for launchsets and string catalogueSetName = null; if (fieldType is AppIconFieldType) { var catalogueSetField = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == FieldType.PackagingIosAppIconXcAssetsName.Value); catalogueSetName = catalogueSetField.Value.ApplyAppiconsetExt(); } else if (fieldType is SplashFieldType) { var catalogueSetField = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == FieldType.PackagingIosLaunchImageXcAssetsName.Value); catalogueSetName = catalogueSetField.Value.ApplyLaunchimageExt(); } if (!String.IsNullOrEmpty(fieldType.GetMetadata(MetadataType.CataloguePackagingFieldId))) { var catalogueSetField = clientConfigDto.Packaging.Fields.FirstOrDefault(x => x.FieldId == fieldType.GetMetadata(MetadataType.CataloguePackagingFieldId)); catalogueSetName = catalogueSetField.Value.ApplyImageSetExt(); } if (String.IsNullOrEmpty(catalogueSetName)) { baseTask.Log.LogError("Catalogue set name undefined"); } itemMetadata.Add(MetadataType.TapAssetPath, Path.Combine(assetCatalogueName.ItemSpec, catalogueSetName)); itemMetadata.Add(MetadataType.ProjectAssetPath, Path.Combine(assetCatalogueName.ItemSpec, catalogueSetName)); itemMetadata.Add(MetadataType.LogicalName, fieldType.GetMetadata(MetadataType.FileName)); itemMetadata.Add(MetadataType.MediaName, fieldType.GetMetadata(MetadataType.FileName).RemovePngExt().ApplyFieldId(field)); itemMetadata.Add(MetadataType.MSBuildItemType, MSBuildItemName.ImageAsset); itemMetadata.Add(MetadataType.Size, fieldType.GetMetadata(MetadataType.Size)); itemMetadata.Add(MetadataType.Idiom, fieldType.GetMetadata(MetadataType.Idiom)); itemMetadata.Add(MetadataType.Idiom2, fieldType.GetMetadata(MetadataType.Idiom2)); itemMetadata.Add(MetadataType.Scale, fieldType.GetMetadata(MetadataType.Scale)); itemMetadata.Add(MetadataType.Subtype, fieldType.GetMetadata(MetadataType.Subtype)); itemMetadata.Add(MetadataType.Extent, fieldType.GetMetadata(MetadataType.Extent)); itemMetadata.Add(MetadataType.MinimumSystemVersion, fieldType.GetMetadata(MetadataType.MinimumSystemVersion)); itemMetadata.Add(MetadataType.Orientation, fieldType.GetMetadata(MetadataType.Orientation)); itemMetadata.Add(MetadataType.ContentsFileName, fieldType.GetMetadata(MetadataType.FileName)); //we can use this to build a list to operate on as such itemMetadata.Add(MetadataType.CatalogueSetName, catalogueSetName); } } itemMetadata.Add(MetadataType.MediaFileId, field.Value); itemMetadata.Add(MetadataType.FieldDescription, fieldType.DisplayName); var taskItem = new TaskItem(field.FieldId.ToString(), itemMetadata); taskItem.SetDisabledMetadata(baseTask, field.Disabled, fieldType.DisplayName); baseTask.LogDebug(GetDebugStringFromTaskItem(taskItem, itemMetadata)); output.Add(taskItem); } baseTask.LogInformation("Generated {0} Media Field TaskItems", output.Count); return(output.ToArray()); }