Skip to content

Commit

Permalink
Merge branch 'feature/update' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
jas88 committed Jun 19, 2023
2 parents 28005e6 + f472ed3 commit aaafe35
Show file tree
Hide file tree
Showing 45 changed files with 2,564 additions and 2,617 deletions.
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
using MapsDirectlyToDatabaseTable.Versioning;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Rdmp.Core.MapsDirectlyToDatabaseTable.Versioning;

namespace LoadModules.Extensions.AutomationPlugins
namespace LoadModules.Extensions.AutomationPlugins;

public class AutomateExtractionPluginPatcher:PluginPatcher
{
public class AutomateExtractionPluginPatcher:PluginPatcher
public AutomateExtractionPluginPatcher():base("db")
{
public AutomateExtractionPluginPatcher():base("db")
{

}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,152 +8,151 @@
using Rdmp.Core.Icons.IconOverlays;
using Rdmp.Core.Icons.IconProvision;
using Rdmp.Core.Providers.Nodes;
using ReusableLibraryCode.Icons.IconProvision;
using Rdmp.Core.ReusableLibraryCode.Icons.IconProvision;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using System;
using System.Collections.Generic;
using System.Linq;

namespace LoadModules.Extensions.AutomationPlugins
namespace LoadModules.Extensions.AutomationPlugins;

public class AutomationUserInterface : PluginUserInterface
{
public class AutomationUserInterface : PluginUserInterface
{
public AutomateExtractionRepository AutomationRepository { get; private set; }
public AutomateExtraction[] AllAutomateExtractions { get; private set; }
public AutomateExtractionSchedule[] AllSchedules { get; private set; }
public AutomateExtractionRepository AutomationRepository { get; private set; }
public AutomateExtraction[] AllAutomateExtractions { get; private set; }
public AutomateExtractionSchedule[] AllSchedules { get; private set; }

public AutomationUserInterface(IBasicActivateItems itemActivator) : base(itemActivator)
public AutomationUserInterface(IBasicActivateItems itemActivator) : base(itemActivator)
{
_overlayProvider = new IconOverlayProvider();
try
{
_overlayProvider = new IconOverlayProvider();
try
{
_scheduleIcon = Image.Load<Rgba32>(AutomationImages.AutomateExtractionSchedule);
_automateExtractionIcon = Image.Load<Rgba32>(AutomationImages.AutomateExtraction);
}
catch (Exception)
{
_scheduleIcon = Image.Load<Rgba32>(CatalogueIcons.NoIconAvailable);
_automateExtractionIcon = Image.Load<Rgba32>(CatalogueIcons.NoIconAvailable);
}

_scheduleIcon = Image.Load<Rgba32>(AutomationImages.AutomateExtractionSchedule);
_automateExtractionIcon = Image.Load<Rgba32>(AutomationImages.AutomateExtraction);
}

public override Image<Rgba32> GetImage(object concept, OverlayKind kind = OverlayKind.None)
catch (Exception)
{
if (concept is AutomateExtractionSchedule || concept as Type == typeof(AutomateExtractionSchedule))
{
return _overlayProvider.GetOverlay(_scheduleIcon,kind);
}
_scheduleIcon = Image.Load<Rgba32>(CatalogueIcons.NoIconAvailable);
_automateExtractionIcon = Image.Load<Rgba32>(CatalogueIcons.NoIconAvailable);
}

if (concept is AutomateExtraction || concept as Type == typeof(AutomateExtraction))
{
return _overlayProvider.GetOverlay(_automateExtractionIcon, kind);
}
}

return base.GetImage(concept, kind);
public override Image<Rgba32> GetImage(object concept, OverlayKind kind = OverlayKind.None)
{
if (concept is AutomateExtractionSchedule || concept as Type == typeof(AutomateExtractionSchedule))
{
return _overlayProvider.GetOverlay(_scheduleIcon,kind);
}

public override object[] GetChildren(object model)
if (concept is AutomateExtraction || concept as Type == typeof(AutomateExtraction))
{
if (model is IProject p)
{
var schedule = GetScheduleIfAny(p);

if(schedule != null)
return new[] { schedule };
}
return _overlayProvider.GetOverlay(_automateExtractionIcon, kind);
}

if(model is IExtractionConfiguration ec)
{
var automate = GetAutomateExtractionIfAny(ec);
if (automate != null)
return new[] { automate };
}
return base.GetImage(concept, kind);
}

return base.GetChildren(model);
public override object[] GetChildren(object model)
{
if (model is IProject p)
{
var schedule = GetScheduleIfAny(p);

if(schedule != null)
return new[] { schedule };
}

private AutomateExtractionSchedule GetScheduleIfAny(IProject p)
if(model is IExtractionConfiguration ec)
{
TryGettingAutomationRepository();
var automate = GetAutomateExtractionIfAny(ec);
if (automate != null)
return new[] { automate };
}

if (AutomationRepository == null)
{
return null;
}
return base.GetChildren(model);
}

return AllSchedules.FirstOrDefault(aes => aes.Project_ID == p.ID);
}
private AutomateExtractionSchedule GetScheduleIfAny(IProject p)
{
TryGettingAutomationRepository();

private AutomateExtraction GetAutomateExtractionIfAny(IExtractionConfiguration ec)
if (AutomationRepository == null)
{
TryGettingAutomationRepository();
return null;
}

if (AutomationRepository == null)
{
return null;
}
return AllSchedules.FirstOrDefault(aes => aes.Project_ID == p.ID);
}

private AutomateExtraction GetAutomateExtractionIfAny(IExtractionConfiguration ec)
{
TryGettingAutomationRepository();

return AllAutomateExtractions.FirstOrDefault(ae => ae.ExtractionConfiguration_ID == ec.ID);
if (AutomationRepository == null)
{
return null;
}

DateTime lastLook = DateTime.MinValue;
private IconOverlayProvider _overlayProvider;
private Image<Rgba32> _scheduleIcon;
private Image<Rgba32> _automateExtractionIcon;
return AllAutomateExtractions.FirstOrDefault(ae => ae.ExtractionConfiguration_ID == ec.ID);
}

private void TryGettingAutomationRepository()
{
// we looked recently already dont spam that thing
if (DateTime.Now - lastLook < TimeSpan.FromSeconds(5))
return;
DateTime lastLook = DateTime.MinValue;
private IconOverlayProvider _overlayProvider;
private Image<Rgba32> _scheduleIcon;
private Image<Rgba32> _automateExtractionIcon;

if (AutomationRepository != null)
return;
private void TryGettingAutomationRepository()
{
// we looked recently already dont spam that thing
if (DateTime.Now - lastLook < TimeSpan.FromSeconds(5))
return;

try
{
var repo = new AutomateExtractionRepositoryFinder(BasicActivator.RepositoryLocator);
AutomationRepository = (AutomateExtractionRepository)repo.GetRepositoryIfAny();
if (AutomationRepository != null)
return;

try
{
var repo = new AutomateExtractionRepositoryFinder(BasicActivator.RepositoryLocator);
AutomationRepository = (AutomateExtractionRepository)repo.GetRepositoryIfAny();

AllAutomateExtractions = AutomationRepository.GetAllObjects<AutomateExtraction>();
AllSchedules = AutomationRepository.GetAllObjects<AutomateExtractionSchedule>();
AllAutomateExtractions = AutomationRepository.GetAllObjects<AutomateExtraction>();
AllSchedules = AutomationRepository.GetAllObjects<AutomateExtractionSchedule>();

lastLook = DateTime.Now;
}
catch (Exception)
{
AutomationRepository = null;
lastLook = DateTime.Now;
}
lastLook = DateTime.Now;
}
catch (Exception)
{
AutomationRepository = null;
lastLook = DateTime.Now;
}
}

public override IEnumerable<IAtomicCommand> GetAdditionalRightClickMenuItems(object o)
public override IEnumerable<IAtomicCommand> GetAdditionalRightClickMenuItems(object o)
{
if (o is AllExternalServersNode)
{
if (o is AllExternalServersNode)
{
yield return new ExecuteCommandCreateNewExternalDatabaseServer(BasicActivator, new AutomateExtractionPluginPatcher(), PermissableDefaults.None);
}
yield return new ExecuteCommandCreateNewExternalDatabaseServer(BasicActivator, new AutomateExtractionPluginPatcher(), PermissableDefaults.None);
}


if(o is IProject p)
{
yield return new ExecuteCommandCreateNewAutomateExtractionSchedule(BasicActivator, p);
}
if(o is IExtractionConfiguration ec)
{
yield return new ExecuteCommandCreateNewAutomateExtraction(BasicActivator, ec);
}
if(o is IProject p)
{
yield return new ExecuteCommandCreateNewAutomateExtractionSchedule(BasicActivator, p);
}
if(o is IExtractionConfiguration ec)
{
yield return new ExecuteCommandCreateNewAutomateExtraction(BasicActivator, ec);
}

if(o is AutomateExtraction ae)
if(o is AutomateExtraction ae)
{
yield return new ExecuteCommandSet(BasicActivator, ae, typeof(AutomateExtraction).GetProperty(nameof(AutomateExtraction.BaselineDate)))
{
yield return new ExecuteCommandSet(BasicActivator, ae, typeof(AutomateExtraction).GetProperty(nameof(AutomateExtraction.BaselineDate)))
{
OverrideCommandName = "Set Baseline Date"
};
}

OverrideCommandName = "Set Baseline Date"
};
}

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,31 @@
using Rdmp.Core.CommandExecution;
using Rdmp.Core.Startup;

namespace LoadModules.Extensions.AutomationPlugins
namespace LoadModules.Extensions.AutomationPlugins;

public class BasicAutomationCommandExecution : BasicCommandExecution
{
public class BasicAutomationCommandExecution : BasicCommandExecution
{
protected PluginRepository AutomationRepository { get; }
protected PluginRepository AutomationRepository { get; }

public BasicAutomationCommandExecution(IBasicActivateItems activator):base(activator)
public BasicAutomationCommandExecution(IBasicActivateItems activator):base(activator)
{
var repoFinder = new AutomateExtractionRepositoryFinder(BasicActivator.RepositoryLocator);
try
{
var repoFinder = new AutomateExtractionRepositoryFinder(BasicActivator.RepositoryLocator);
try
{
AutomationRepository = repoFinder.GetRepositoryIfAny();
}
catch (System.Exception e)
{
SetImpossible("No Automation Repository Found:" + e.Message);
return;
}

if (AutomationRepository == null)
{
SetImpossible("There is no Automation Repository configured");
return;
}

AutomationRepository = repoFinder.GetRepositoryIfAny();
}
catch (System.Exception e)
{
SetImpossible("No Automation Repository Found:" + e.Message);
return;
}

if (AutomationRepository == null)
{
SetImpossible("There is no Automation Repository configured");
return;
}

}

}
Loading

0 comments on commit aaafe35

Please sign in to comment.