Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/20/11 14:16:53 (13 years ago)
Author:
cneumuel
Message:

#1233

  • renamed UptimeCalendar and Appointment to Downtime
  • added service methods to delete plugins and get plugin by hash
  • made reverted TransactionManager change, made it non-static and added interface
  • moved magic numbers to application settings
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Util/PluginUtil.cs

    r6444 r6452  
    3030namespace HeuristicLab.Clients.Hive {
    3131  public static class PluginUtil {
    32     private static object locker = new object();
    3332
    3433    /// <summary>
     
    4140    /// <returns></returns>
    4241    public static List<Guid> GetPluginDependencies(IHiveService service, List<Plugin> onlinePlugins, List<Plugin> alreadyUploadedPlugins, IEnumerable<IPluginDescription> neededPlugins) {
    43       lock (locker) {
    44         var pluginIds = new List<Guid>();
    45         Dictionary<IPluginDescription, byte[]> checksumsNeededPlugins = CalcChecksumsForPlugins(neededPlugins);
     42      var pluginIds = new List<Guid>();
     43      Dictionary<IPluginDescription, byte[]> checksumsNeededPlugins = CalcChecksumsForPlugins(neededPlugins);
    4644
    47         foreach (var neededPlugin in checksumsNeededPlugins) {
    48           Plugin foundPlugin = alreadyUploadedPlugins.FirstOrDefault(p => p.Hash.SequenceEqual(neededPlugin.Value));
     45      foreach (var neededPlugin in checksumsNeededPlugins) {
     46        Plugin foundPlugin = alreadyUploadedPlugins.FirstOrDefault(p => p.Hash.SequenceEqual(neededPlugin.Value));
     47        if (foundPlugin == null) {
     48          foundPlugin = onlinePlugins.FirstOrDefault(p => {
     49            if (p.Hash != null) {
     50              return p.Hash.SequenceEqual(neededPlugin.Value);
     51            } else {
     52              return false;
     53            }
     54          });
     55
    4956          if (foundPlugin == null) {
    50             foundPlugin = onlinePlugins.FirstOrDefault(p => {
    51               if (p.Hash != null) {
    52                 return p.Hash.SequenceEqual(neededPlugin.Value);
    53               } else {
    54                 return false;
    55               }
    56             });
    57 
    58             if (foundPlugin == null) {
    59               Plugin p = CreatePlugin(neededPlugin.Key, neededPlugin.Value);
    60               List<PluginData> pd = CreatePluginDatas(neededPlugin.Key);
    61               try {
    62                 p.Id = service.AddPlugin(p, pd);
    63                 alreadyUploadedPlugins.Add(p);
    64                 pluginIds.Add(p.Id);
    65               }
    66               catch (FaultException<PluginAlreadyExistsFault> fault) {
    67                 onlinePlugins.Add(service.GetPlugin(fault.Detail.Id));
    68               }
    69             } else {
    70               pluginIds.Add(foundPlugin.Id);
     57            Plugin p = CreatePlugin(neededPlugin.Key, neededPlugin.Value);
     58            List<PluginData> pd = CreatePluginDatas(neededPlugin.Key);
     59            try {
     60              p.Id = service.AddPlugin(p, pd);
     61              alreadyUploadedPlugins.Add(p);
     62              pluginIds.Add(p.Id);
     63            }
     64            catch (FaultException<PluginAlreadyExistsFault> fault) {
     65              onlinePlugins.Add(service.GetPlugin(fault.Detail.Id));
    7166            }
    7267          } else {
    7368            pluginIds.Add(foundPlugin.Id);
    7469          }
     70        } else {
     71          pluginIds.Add(foundPlugin.Id);
    7572        }
    76         return pluginIds;
    7773      }
     74      return pluginIds;
    7875    }
    7976
Note: See TracChangeset for help on using the changeset viewer.