Skip to content

Commit

Permalink
Clean up types, add null checks, try unsafe casts.
Browse files Browse the repository at this point in the history
  • Loading branch information
comintern committed Jan 17, 2019
1 parent d0474b3 commit a354a0b
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 12 deletions.
44 changes: 35 additions & 9 deletions Rubberduck.Core/UI/CodeExplorer/Commands/AddTemplateCommand.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using Rubberduck.Navigation.CodeExplorer;
using Rubberduck.Templates;
Expand Down Expand Up @@ -28,24 +29,49 @@ public bool CanExecuteForNode(ICodeExplorerNode model)

protected override bool EvaluateCanExecute(object parameter)
{
// TODO this cast needs to be safer.
var data = ((string templateName, ICodeExplorerNode model)) parameter;
if (parameter is null)
{
return false;
}

try
{
// TODO this cast needs to be safer.
var data = ((string templateName, ICodeExplorerNode model))parameter;

return base.EvaluateCanExecute(data.model);
return base.EvaluateCanExecute(data.model);
}
catch (Exception ex)
{
Logger.Trace(ex);
return false;
}
}

protected override void OnExecute(object parameter)
{
// TODO this cast needs to be safer.
var data = ((string templateName, ICodeExplorerNode node)) parameter;

if (string.IsNullOrWhiteSpace(data.templateName) || !(data.node is CodeExplorerItemViewModel model))
if (parameter is null)
{
return;
}

var moduleText = GetTemplate(data.templateName);
AddComponent(model, moduleText);
try
{
// TODO this cast needs to be safer.
var data = ((string templateName, ICodeExplorerNode node))parameter;

if (string.IsNullOrWhiteSpace(data.templateName) || !(data.node is CodeExplorerItemViewModel model))
{
return;
}

var moduleText = GetTemplate(data.templateName);
AddComponent(model, moduleText);
}
catch (Exception ex)
{
Logger.Trace(ex);
}
}

private string GetTemplate(string name)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ public class TemplateCommandParameterToTupleConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
(string templateName, CodeExplorerItemViewModel model) data = (
(string templateName, ICodeExplorerNode model) data = (
values[0] as string,
values[1] as CodeExplorerItemViewModel);
values[1] as ICodeExplorerNode);
return data;
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
var data = ((string templateName, CodeExplorerItemViewModel model))value;
var data = ((string templateName, ICodeExplorerNode model))value;
return new[] {(object) data.templateName, data.model};
}
}
Expand Down

0 comments on commit a354a0b

Please sign in to comment.