C# Localde Dosya Karşılaştırma
public void
databaseScriptReviewFileOpenerControlOnCompareFiles(long
deploymentItemOperationIdFirst, long
deploymentItemOperationIdSecond)
{
string
originalScriptFirst = ProxyFactory.CreateProxy<IDeploymentItemService>().GenerateDeploymentItemAlterScript(deploymentItemOperationIdFirst).Result;
string
originalScriptSecond = ProxyFactory.CreateProxy<IDeploymentItemService>().GenerateDeploymentItemAlterScript(deploymentItemOperationIdSecond).Result;
string
originalScriptFileFirst = GetTemporaryScriptFile(originalScriptFirst);
string
originalScriptFileSecond = GetTemporaryScriptFile(originalScriptSecond);
string
arguments = string.Format("\"{0}\" \"{1}\"",
originalScriptFileFirst, originalScriptFileSecond);
string
compareToolPath = GetParameterToolPath();
if
(string.IsNullOrEmpty(compareToolPath))
{
throw
new ValidationException("Sisteminizde herhangi bir karşılaştırma aracı
bulunamadı. Lütfen kontrol ediniz!", "Karşılaştırma
Aracı Bulunamadı");
}
else
{
RunSafely(() =>
{
ProcessStartInfo
start = new ProcessStartInfo();
start.Arguments =
arguments;
start.FileName =
compareToolPath;
Process.Start(start);
});
}
}
private static
string GetParameterToolPath()
{
List<ParameterEntity> compareToolList = ProxyFactory.CreateProxy<IReleaseManagementParameterService>().GetParameterEntityList(ReleaseManagementParameterType.CompareToolPath).Result;
foreach
(var item in
compareToolList)
{
if
(File.Exists(item.ParameterValue))
return
item.ParameterValue;
}
return
string.Empty;
}
private
static string
GetTemporaryScriptFile(string originalScript)
{
string
originalScriptFile = Path.GetTempPath() + Guid.NewGuid().ToString() + ".sql";
File.WriteAllText(originalScriptFile,
originalScript);
return
originalScriptFile;
}
Yorumlar
Yorum Gönder