public static IngestAssetConfig ParseIngestAssetConfig(string jsonIngestConfig)
        {
            IngestAssetConfig c = JsonConvert.DeserializeObject <IngestAssetConfig>(jsonIngestConfig);

            //c.IngestAsset.setAssetCreationOption();
            return(c);
        }
        public static bool ValidateIngestAssetConfig(IngestAssetConfig config)
        {
            bool result = false;

            // IngestAsset
            if (config.IngestAsset == null) return result;
            if (config.IngestAsset.AssetName == null) return result;
            if (config.IngestAsset.AssetFiles == null) return result;
            config.IngestAsset.setAssetCreationOption();

            // IngestSource
            if (config.IngestSource == null) return result;
            if (config.IngestSource.SourceContainerName == null) return result;

            // IngestPublish
            if (config.IngestAssetPublish != null)
            {
                if (config.IngestAssetPublish.StartDate != null)
                {
                    if (config.IngestAssetPublish.EndDate == null) return result;
                    try
                    {
                        DateTime start = Convert.ToDateTime(config.IngestAssetPublish.StartDate);
                        if (DateTime.Compare(DateTime.Now, start) >= 0) return result;
                    }
                    catch (Exception)
                    {
                        return result;
                    }
                }
                if (config.IngestAssetPublish.EndDate != null)
                {
                    try
                    {
                        DateTime end = Convert.ToDateTime(config.IngestAssetPublish.EndDate);
                        if (DateTime.Compare(DateTime.Now, end) >= 0) return result;
                    }
                    catch (Exception)
                    {
                        return result;
                    }
                }
                config.IngestAssetPublish.set();
            }
            else
            {
                config.IngestAssetPublish = new IngestAssetPublish();
                config.IngestAssetPublish.StartDate = null;
                config.IngestAssetPublish.EndDate = null;
            }

            return true;
        }
 public static string[] GetAssetFilesFromIngestAssetConfig(IngestAssetConfig config)
 {
     List<AssetFile> assetFiles = config.IngestAsset.AssetFiles;
     List<string> assetFileNames = new List<string>();
     foreach (AssetFile srcAssetFile in assetFiles)
     {
         if (srcAssetFile.IsPrimary)
         {
             assetFileNames.Insert(0, srcAssetFile.FileName);
         }
         else
         {
             assetFileNames.Add(srcAssetFile.FileName);
         }
     }
     return assetFileNames.ToArray();
 }