private AssemblyInformation SaveIfNotExistsOrDifferent(AssemblyInformation existingAsm, AssemblyInformation newAsm, byte[] asmBytes) { if (existingAsm != null) { newAsm.Code = existingAsm.Code; // Prepare for update. } if (existingAsm == null || newAsm.CompareTo(existingAsm) == 1 || (newAsm.Version == existingAsm.Version && newAsm.MD5 != existingAsm.MD5)) { asmDAO.SaveAssembly(newAsm, asmBytes); return(newAsm); } else { return(existingAsm); } }
private AssemblyInformation SaveIfNotExistsOrDifferent(AssemblyInformation existingAsm, AssemblyInformation newAsm, string baseDirectory) { if (existingAsm != null) { newAsm.Code = existingAsm.Code; // Prepare for update. } if (existingAsm == null || newAsm.CompareTo(existingAsm) == 1 || (newAsm.Version == existingAsm.Version && newAsm.MD5 != existingAsm.MD5)) { byte[] asmBytes = File.ReadAllBytes(Path.Combine(baseDirectory, newAsm.FileName)); asmDAO.SaveAssembly(newAsm, asmBytes); // TODO: remove deleteDependencies from SaveAssembly do some sort of incremental SaveIfNotExists // Updating each assembly deparatly. Right now we just update everything if mainDll differs. foreach (var dependency in newAsm.Dependencies) { string dependencyCode = asmDAO.GetDependencyCode(dependency.MD5); if (string.IsNullOrEmpty(dependencyCode)) { asmBytes = File.ReadAllBytes(Path.Combine(baseDirectory, dependency.FileName)); asmDAO.SaveAssemblyDependency(newAsm, dependency, asmBytes); } else { asmDAO.SaveAssemblyDependency(newAsm, dependencyCode); } } asmDAO.DeleteOrphanDependency(); licenseManager.UpdateAddinDueDate(newAsm); return(newAsm); } else { return(existingAsm); } }
private AssemblyInformation SaveIfNotExistsOrDifferent(AssemblyInformation existingAsm, AssemblyInformation newAsm, string baseDirectory) { if (existingAsm != null) newAsm.Code = existingAsm.Code; // Prepare for update. if (existingAsm == null || newAsm.CompareTo(existingAsm) == 1 || (newAsm.Version == existingAsm.Version && newAsm.MD5 != existingAsm.MD5)) { byte[] asmBytes = File.ReadAllBytes(Path.Combine(baseDirectory, newAsm.FileName)); asmDAO.SaveAssembly(newAsm, asmBytes); // TODO: remove deleteDependencies from SaveAssembly do some sort of incremental SaveIfNotExists // Updating each assembly deparatly. Right now we just update everything if mainDll differs. foreach (var dependency in newAsm.Dependencies) { string dependencyCode = asmDAO.GetDependencyCode(dependency.MD5); if (string.IsNullOrEmpty(dependencyCode)) { asmBytes = File.ReadAllBytes(Path.Combine(baseDirectory, dependency.FileName)); asmDAO.SaveAssemblyDependency(newAsm, dependency, asmBytes); } else { asmDAO.SaveAssemblyDependency(newAsm, dependencyCode); } } asmDAO.DeleteOrphanDependency(); licenseManager.UpdateAddinDueDate(newAsm); return newAsm; } else { return existingAsm; } }