/// <summary> /// Примитивное слияние двух целей. /// Параметры (имя, расширение, директория) цели приобретает /// значения источника, сущность сливается через Add /// </summary> /// <param name="source">Источник слияния</param> public void Merge(BSharpBuilderWriteTarget source) { Directory = source.Directory; Extension = source.Extension; Filename = source.Filename; _entity.Add(source.Entity.Elements()); }
/// <summary> /// Производит реальную запись целевого файла на диск /// </summary> /// <param name="target">Целевой файл</param> private async Task RollTarget(BSharpBuilderWriteTarget target){ if (!Directory.Exists(target.Directory)) { Directory.CreateDirectory(target.Directory); } using (var sw = new StreamWriter(target.Path)){ await sw.WriteAsync(target.Entity.ToString()); } WriteLog("Wrote: " + target.Path); }
/// <summary> /// Производит реальную запись целевого файла на диск /// </summary> /// <param name="target">Целевой файл</param> private async Task RollTarget(BSharpBuilderWriteTarget target) { if (!Directory.Exists(target.Directory)) { Directory.CreateDirectory(target.Directory); } using (var sw = new StreamWriter(target.Path)){ await sw.WriteAsync(target.Entity.ToString()); } WriteLog("Wrote: " + target.Path); }
/// <summary> /// Поиск в локальном хранилище аналогичной цели /// </summary> /// <param name="pattern">Шаблон поиска</param> /// <returns>Цель</returns> private BSharpBuilderWriteTarget FindSimilarTarget(BSharpBuilderWriteTarget pattern) { foreach (var target in _targets) { if (target.Directory != pattern.Directory) { continue; } if (target.Filename != pattern.Filename) { continue; } if (target.Extension != pattern.Extension) { continue; } return target; } return null; }
/// <summary> /// Поиск в локальном хранилище аналогичной цели /// </summary> /// <param name="pattern">Шаблон поиска</param> /// <returns>Цель</returns> private BSharpBuilderWriteTarget FindSimilarTarget(BSharpBuilderWriteTarget pattern) { foreach (var target in _targets) { if (target.Directory != pattern.Directory) { continue; } if (target.Filename != pattern.Filename) { continue; } if (target.Extension != pattern.Extension) { continue; } return(target); } return(null); }
/// <summary> /// Добавление цели /// </summary> /// <param name="target">Цель</param> public void Add(BSharpBuilderWriteTarget target) { _targets.Add(target); }