Replaced all instances of "LootFilter" with "ItemFilter"

This commit is contained in:
Ben 2015-06-08 20:17:34 +01:00
parent 5bd5ce8b0f
commit d48f7a58ec
45 changed files with 539 additions and 534 deletions

View File

@ -46,13 +46,13 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Models\TestLootFilterBlock.cs" /> <Compile Include="Models\TestItemFilterBlock.cs" />
<Compile Include="Models\TestLootFilterScript.cs" /> <Compile Include="Models\TestItemFilterScript.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\TestLootFilterPersistenceService.cs" /> <Compile Include="Services\TestItemFilterPersistenceService.cs" />
<Compile Include="Services\TestStaticDataService.cs" /> <Compile Include="Services\TestStaticDataService.cs" />
<Compile Include="Translators\TestLootFilterBlockTranslator.cs" /> <Compile Include="Translators\TestItemFilterBlockTranslator.cs" />
<Compile Include="Translators\TestLootFilterScriptTranslator.cs" /> <Compile Include="Translators\TestItemFilterScriptTranslator.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="packages.config" /> <None Include="packages.config" />
@ -70,7 +70,7 @@
<Content Include="Resources\testscript.txt"> <Content Include="Resources\testscript.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<Content Include="Resources\ThioleLootFilter.txt"> <Content Include="Resources\ThioleItemFilter.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>

View File

@ -5,13 +5,13 @@ using NUnit.Framework;
namespace Filtration.Tests.Models namespace Filtration.Tests.Models
{ {
[TestFixture] [TestFixture]
public class TestLootFilterBlock public class TestItemFilterBlock
{ {
[Test] [Test]
public void LootFilterBlock_BlockCount_ReturnsCorrectNumber() public void ItemFilterBlock_BlockCount_ReturnsCorrectNumber()
{ {
// Arrange // Arrange
var block = new LootFilterBlock(); var block = new ItemFilterBlock();
block.BlockItems.Add(new ItemLevelBlockItem()); block.BlockItems.Add(new ItemLevelBlockItem());
block.BlockItems.Add(new ItemLevelBlockItem()); block.BlockItems.Add(new ItemLevelBlockItem());
block.BlockItems.Add(new ItemLevelBlockItem()); block.BlockItems.Add(new ItemLevelBlockItem());
@ -25,10 +25,10 @@ namespace Filtration.Tests.Models
} }
[Test] [Test]
public void LootFilterBlock_AddBlockItemAllowed_LessThanMaximum_ReturnsTrue() public void ItemFilterBlock_AddBlockItemAllowed_LessThanMaximum_ReturnsTrue()
{ {
// Arrange // Arrange
var block = new LootFilterBlock(); var block = new ItemFilterBlock();
block.BlockItems.Add(new ItemLevelBlockItem()); block.BlockItems.Add(new ItemLevelBlockItem());
// Act // Act
@ -39,10 +39,10 @@ namespace Filtration.Tests.Models
} }
[Test] [Test]
public void LootFilterBlock_AddBlockItemAllowed_MoreThanMaximum_ReturnsFalse() public void ItemFilterBlock_AddBlockItemAllowed_MoreThanMaximum_ReturnsFalse()
{ {
// Arrange // Arrange
var block = new LootFilterBlock(); var block = new ItemFilterBlock();
block.BlockItems.Add(new SoundBlockItem()); block.BlockItems.Add(new SoundBlockItem());
// Act // Act

View File

@ -1,9 +1,5 @@
using System; using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media; using System.Windows.Media;
using Filtration.Models; using Filtration.Models;
using Filtration.Models.BlockItemTypes; using Filtration.Models.BlockItemTypes;
@ -12,14 +8,14 @@ using NUnit.Framework;
namespace Filtration.Tests.Models namespace Filtration.Tests.Models
{ {
[TestFixture] [TestFixture]
public class TestLootFilterScript public class TestItemFilterScript
{ {
[Test] [Test]
public void Validate_AtLeastOneBlock_Fail_ReturnsListWithCorrectError() public void Validate_AtLeastOneBlock_Fail_ReturnsListWithCorrectError()
{ {
// Arrange // Arrange
var script = new LootFilterScript(); var script = new ItemFilterScript();
// Act // Act
var result = script.Validate(); var result = script.Validate();
@ -33,9 +29,9 @@ namespace Filtration.Tests.Models
{ {
// Arrange // Arrange
var script = new LootFilterScript var script = new ItemFilterScript
{ {
LootFilterBlocks = new ObservableCollection<LootFilterBlock> {new LootFilterBlock()} ItemFilterBlocks = new ObservableCollection<ItemFilterBlock> {new ItemFilterBlock()}
}; };
// Act // Act
@ -59,16 +55,16 @@ namespace Filtration.Tests.Models
ReplaceBackgroundColor = true ReplaceBackgroundColor = true
}; };
var testInputBlock1 = new LootFilterBlock(); var testInputBlock1 = new ItemFilterBlock();
testInputBlock1.BlockItems.Add(new BackgroundColorBlockItem(new Color {A = 255, R = 255, G = 0, B = 0})); testInputBlock1.BlockItems.Add(new BackgroundColorBlockItem(new Color {A = 255, R = 255, G = 0, B = 0}));
var testInputBlock2 = new LootFilterBlock(); var testInputBlock2 = new ItemFilterBlock();
testInputBlock2.BlockItems.Add(new BackgroundColorBlockItem(new Color { A = 255, R = 255, G = 1, B = 0 })); testInputBlock2.BlockItems.Add(new BackgroundColorBlockItem(new Color { A = 255, R = 255, G = 1, B = 0 }));
var testInputBlock3 = new LootFilterBlock(); var testInputBlock3 = new ItemFilterBlock();
testInputBlock3.BlockItems.Add(new BackgroundColorBlockItem(new Color { A = 255, R = 255, G = 0, B = 0 })); testInputBlock3.BlockItems.Add(new BackgroundColorBlockItem(new Color { A = 255, R = 255, G = 0, B = 0 }));
var script = new LootFilterScript() var script = new ItemFilterScript()
{ {
LootFilterBlocks = new ObservableCollection<LootFilterBlock> ItemFilterBlocks = new ObservableCollection<ItemFilterBlock>
{ {
testInputBlock1, testInputBlock1,
testInputBlock2, testInputBlock2,
@ -105,16 +101,16 @@ namespace Filtration.Tests.Models
ReplaceTextColor = true ReplaceTextColor = true
}; };
var testInputBlock1 = new LootFilterBlock(); var testInputBlock1 = new ItemFilterBlock();
testInputBlock1.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor)); testInputBlock1.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor));
testInputBlock1.BlockItems.Add(new TextColorBlockItem(oldTextColor)); testInputBlock1.BlockItems.Add(new TextColorBlockItem(oldTextColor));
var testInputBlock2 = new LootFilterBlock(); var testInputBlock2 = new ItemFilterBlock();
testInputBlock2.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor)); testInputBlock2.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor));
testInputBlock2.BlockItems.Add(new TextColorBlockItem(new Color {A = 1, R = 2, G = 3, B = 4})); testInputBlock2.BlockItems.Add(new TextColorBlockItem(new Color {A = 1, R = 2, G = 3, B = 4}));
var script = new LootFilterScript var script = new ItemFilterScript
{ {
LootFilterBlocks = new ObservableCollection<LootFilterBlock> ItemFilterBlocks = new ObservableCollection<ItemFilterBlock>
{ {
testInputBlock1, testInputBlock1,
testInputBlock2 testInputBlock2

View File

@ -1,4 +1,4 @@
# Loot Filter Script created by Filtration v0.1 - www.github.com/XVar/filtration # Item Filter Script created by Filtration v0.1 - www.github.com/XVar/filtration
# Begin Script Description # Begin Script Description
# This is a test script # This is a test script
# #

View File

@ -7,55 +7,55 @@ using NUnit.Framework;
namespace Filtration.Tests.Services namespace Filtration.Tests.Services
{ {
[TestFixture] [TestFixture]
public class TestLootFilterPersistenceService public class TestItemFilterPersistenceService
{ {
[Test] [Test]
public void LoadLootFilterScript_CallsTranslatorAndFileSystemService() public void LoadItemFilterScript_CallsTranslatorAndFileSystemService()
{ {
// Arrange // Arrange
const string TestInputPath = "C:\\Test Path\\Script.Filter"; const string TestInputPath = "C:\\Test Path\\Script.Filter";
const string TestScriptString = "This is a test loot filter script"; const string TestScriptString = "This is a test item filter script";
var testLootFilterScript = new LootFilterScript(); var testItemFilterScript = new ItemFilterScript();
var mockFileSystemService = new Mock<IFileSystemService>(); var mockFileSystemService = new Mock<IFileSystemService>();
mockFileSystemService.Setup(s => s.ReadFileAsString(TestInputPath)).Returns(TestScriptString).Verifiable(); mockFileSystemService.Setup(s => s.ReadFileAsString(TestInputPath)).Returns(TestScriptString).Verifiable();
var mockLootFilterScriptTranslator = new Mock<ILootFilterScriptTranslator>(); var mockItemFilterScriptTranslator = new Mock<IItemFilterScriptTranslator>();
mockLootFilterScriptTranslator.Setup(t => t.TranslateStringToLootFilterScript(TestScriptString)).Returns(testLootFilterScript).Verifiable(); mockItemFilterScriptTranslator.Setup(t => t.TranslateStringToItemFilterScript(TestScriptString)).Returns(testItemFilterScript).Verifiable();
var service = new LootFilterPersistenceService(mockFileSystemService.Object, mockLootFilterScriptTranslator.Object); var service = new ItemFilterPersistenceService(mockFileSystemService.Object, mockItemFilterScriptTranslator.Object);
// Act // Act
var script = service.LoadLootFilterScript(TestInputPath); var script = service.LoadItemFilterScript(TestInputPath);
// Assert // Assert
mockFileSystemService.Verify(); mockFileSystemService.Verify();
mockLootFilterScriptTranslator.Verify(); mockItemFilterScriptTranslator.Verify();
Assert.AreEqual(testLootFilterScript, script); Assert.AreEqual(testItemFilterScript, script);
} }
[Test] [Test]
public void SaveLootFilterScript_CallsTranslatorAndFileSystemService() public void SaveItemFilterScript_CallsTranslatorAndFileSystemService()
{ {
// Arrange // Arrange
var testFilePath = "C:\\Test\\File.txt"; var testFilePath = "C:\\Test\\File.txt";
var testScript = new LootFilterScript {FilePath = testFilePath}; var testScript = new ItemFilterScript {FilePath = testFilePath};
var testTranslatedScript = "Test translated script"; var testTranslatedScript = "Test translated script";
var mockFileSystemService = new Mock<IFileSystemService>(); var mockFileSystemService = new Mock<IFileSystemService>();
mockFileSystemService.Setup(s => s.WriteFileFromString(testFilePath, testTranslatedScript)).Verifiable(); mockFileSystemService.Setup(s => s.WriteFileFromString(testFilePath, testTranslatedScript)).Verifiable();
var mockLootFilterScriptTranslator = new Mock<ILootFilterScriptTranslator>(); var mockItemFilterScriptTranslator = new Mock<IItemFilterScriptTranslator>();
mockLootFilterScriptTranslator.Setup(t => t.TranslateLootFilterScriptToString(testScript)).Returns(testTranslatedScript).Verifiable(); mockItemFilterScriptTranslator.Setup(t => t.TranslateItemFilterScriptToString(testScript)).Returns(testTranslatedScript).Verifiable();
var service = new LootFilterPersistenceService(mockFileSystemService.Object, mockLootFilterScriptTranslator.Object); var service = new ItemFilterPersistenceService(mockFileSystemService.Object, mockItemFilterScriptTranslator.Object);
// Act // Act
service.SaveLootFilterScript(testScript); service.SaveItemFilterScript(testScript);
// Assert // Assert
mockFileSystemService.Verify(); mockFileSystemService.Verify();
mockLootFilterScriptTranslator.Verify(); mockItemFilterScriptTranslator.Verify();
} }
[Test] [Test]
@ -69,9 +69,9 @@ namespace Filtration.Tests.Services
mockFileSystemService.Setup(f => f.GetUserProfilePath()).Returns(TestUserProfilePath).Verifiable(); mockFileSystemService.Setup(f => f.GetUserProfilePath()).Returns(TestUserProfilePath).Verifiable();
mockFileSystemService.Setup(f => f.DirectoryExists(TestUserProfilePath + "\\Documents\\My Games\\Path of Exile")).Returns(true).Verifiable(); mockFileSystemService.Setup(f => f.DirectoryExists(TestUserProfilePath + "\\Documents\\My Games\\Path of Exile")).Returns(true).Verifiable();
var mockLootFilterScriptTranslator = new Mock<ILootFilterScriptTranslator>(); var mockItemFilterScriptTranslator = new Mock<IItemFilterScriptTranslator>();
var service = new LootFilterPersistenceService(mockFileSystemService.Object, mockLootFilterScriptTranslator.Object); var service = new ItemFilterPersistenceService(mockFileSystemService.Object, mockItemFilterScriptTranslator.Object);
// Act // Act
var result = service.DefaultPathOfExileDirectory(); var result = service.DefaultPathOfExileDirectory();

View File

@ -13,7 +13,7 @@ namespace Filtration.Tests.Services
// Arrange // Arrange
var mockFileSystemService = new Mock<IFileSystemService>(); var mockFileSystemService = new Mock<IFileSystemService>();
mockFileSystemService.Setup(f => f.ReadFileAsString(It.IsAny<string>())).Verifiable(); mockFileSystemService.Setup(f => f.ReadFileAsString(It.IsAny<string>())).Returns("TestResult").Verifiable();
var service = new StaticDataService(mockFileSystemService.Object); var service = new StaticDataService(mockFileSystemService.Object);

View File

@ -11,25 +11,25 @@ using NUnit.Framework;
namespace Filtration.Tests.Translators namespace Filtration.Tests.Translators
{ {
[TestFixture] [TestFixture]
public class TestLootFilterBlockTranslator public class TestItemFilterBlockTranslator
{ {
private LootFilterBlockTranslatorTestUtility _testUtility; private ItemFilterBlockTranslatorTestUtility _testUtility;
[SetUp] [SetUp]
public void LootFilterBlockTranslatorTestSetUp() public void ItemFilterBlockTranslatorTestSetUp()
{ {
_testUtility = new LootFilterBlockTranslatorTestUtility(); _testUtility = new ItemFilterBlockTranslatorTestUtility();
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_NoDescriptionComment_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_NoDescriptionComment_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" ItemLevel >= 55"; " ItemLevel >= 55";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is ItemLevelBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is ItemLevelBlockItem));
@ -39,13 +39,13 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Hide_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Hide_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Hide" + Environment.NewLine; var inputString = "Hide" + Environment.NewLine;
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem));
@ -53,7 +53,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_DescriptionComment_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_DescriptionComment_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "# This is a test Block" + Environment.NewLine + var inputString = "# This is a test Block" + Environment.NewLine +
@ -61,7 +61,7 @@ namespace Filtration.Tests.Translators
" ItemLevel >= 55"; " ItemLevel >= 55";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual("This is a test Block", result.Description); Assert.AreEqual("This is a test Block", result.Description);
@ -72,7 +72,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultiLineDescriptionComment_OnlyAddsLastCommentLineToDescription() public void TranslateStringToItemFilterBlock_MultiLineDescriptionComment_OnlyAddsLastCommentLineToDescription()
{ {
// Arrange // Arrange
var inputString = "#First line" + Environment.NewLine + var inputString = "#First line" + Environment.NewLine +
@ -81,7 +81,7 @@ namespace Filtration.Tests.Translators
" ItemLevel >= 55"; " ItemLevel >= 55";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual("Second Line", result.Description); Assert.AreEqual("Second Line", result.Description);
@ -92,14 +92,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_DropLevel_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_DropLevel_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" DropLevel = 40"; " DropLevel = 40";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -110,14 +110,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Quality_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Quality_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Quality < 18"; " Quality < 18";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -128,14 +128,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Rarity_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Rarity_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Rarity > Normal"; " Rarity > Normal";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -146,14 +146,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Rarity_WorksWithoutPredicateOperator() public void TranslateStringToItemFilterBlock_Rarity_WorksWithoutPredicateOperator()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Rarity Normal"; " Rarity Normal";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is RarityBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is RarityBlockItem));
@ -163,14 +163,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Class_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Class_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
@" Class ""Test Class 1"" ""TestOneWordClassInQuotes"" TestOneWordClassNotInQuotes ""Test Class 2"""; @" Class ""Test Class 1"" ""TestOneWordClassInQuotes"" TestOneWordClassNotInQuotes ""Test Class 2""";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is ClassBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is ClassBlockItem));
@ -182,14 +182,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_BaseType_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_BaseType_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
@" BaseType ""Test Base Type 1"" ""TestOneWordBaseTypeInQuotes"" TestOneWordBaseTypeNotInQuotes ""Test BaseType 2"""; @" BaseType ""Test Base Type 1"" ""TestOneWordBaseTypeInQuotes"" TestOneWordBaseTypeNotInQuotes ""Test BaseType 2""";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is BaseTypeBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is BaseTypeBlockItem));
@ -201,14 +201,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Sockets_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Sockets_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Sockets > 2"; " Sockets > 2";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -219,14 +219,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_LinkedSockets_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_LinkedSockets_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" LinkedSockets != 1"; " LinkedSockets != 1";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -237,14 +237,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Width_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Width_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Width != 1"; " Width != 1";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -255,14 +255,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Height_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Height_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Height <= 3"; " Height <= 3";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
@ -273,14 +273,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Height_PredicatesWorkWithoutSpaceBetweenOperatorAndOperand() public void TranslateStringToItemFilterBlock_Height_PredicatesWorkWithoutSpaceBetweenOperatorAndOperand()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" Height <=3"; " Height <=3";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is HeightBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is HeightBlockItem));
@ -290,14 +290,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SocketGroup_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SocketGroup_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" SocketGroup RRGB"; " SocketGroup RRGB";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is SocketGroupBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is SocketGroupBlockItem));
@ -308,14 +308,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SetTextColor_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SetTextColor_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" SetTextColor 255 20 100"; " SetTextColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
@ -326,14 +326,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SetTextColorWithAlpha_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SetTextColorWithAlpha_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" SetTextColor 65 0 255 12"; " SetTextColor 65 0 255 12";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
@ -345,14 +345,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SetBackgroundColor_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SetBackgroundColor_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" SetBackgroundColor 255 20 100"; " SetBackgroundColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
@ -364,14 +364,14 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SetBorderColor_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SetBorderColor_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
" SetBorderColor 255 20 100"; " SetBorderColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
@ -382,7 +382,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SetFontSize_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_SetFontSize_ReturnsCorrectObject()
{ {
// Arrange // Arrange
@ -390,7 +390,7 @@ namespace Filtration.Tests.Translators
" SetFontSize 15"; " SetFontSize 15";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
@ -399,7 +399,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_PlayAlertSoundWithoutVolume_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_PlayAlertSoundWithoutVolume_ReturnsCorrectObject()
{ {
// Arrange // Arrange
@ -407,7 +407,7 @@ namespace Filtration.Tests.Translators
" PlayAlertSound 4"; " PlayAlertSound 4";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
@ -417,7 +417,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_PlayAlertSoundWithVolume_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_PlayAlertSoundWithVolume_ReturnsCorrectObject()
{ {
// Arrange // Arrange
@ -425,7 +425,7 @@ namespace Filtration.Tests.Translators
" PlayAlertSound 2 95"; " PlayAlertSound 2 95";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
@ -435,22 +435,22 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_SectionComment_ReturnsLootFilterSectionObjectWithCorrectDescription() public void TranslateStringToItemFilterBlock_SectionComment_ReturnsItemFilterSectionObjectWithCorrectDescription()
{ {
// Arrange // Arrange
const string TestInputSectionDescription = "Wonderful items that you definitely won't want to miss!"; const string TestInputSectionDescription = "Wonderful items that you definitely won't want to miss!";
var inputString = "# Section: " + TestInputSectionDescription; var inputString = "# Section: " + TestInputSectionDescription;
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.IsInstanceOf<LootFilterSection>(result); Assert.IsInstanceOf<ItemFilterSection>(result);
Assert.AreEqual(TestInputSectionDescription, result.Description); Assert.AreEqual(TestInputSectionDescription, result.Description);
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_Everything_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_Everything_ReturnsCorrectObject()
{ {
// Arrange // Arrange
@ -475,7 +475,7 @@ namespace Filtration.Tests.Translators
" PlayAlertSound 3"; " PlayAlertSound 3";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual("Test filter with everything", result.Description); Assert.AreEqual("Test filter with everything", result.Description);
@ -546,7 +546,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleValues_ReturnsCorrectObject() public void TranslateStringToItemFilterBlock_MultipleValues_ReturnsCorrectObject()
{ {
// Arrange // Arrange
@ -557,7 +557,7 @@ namespace Filtration.Tests.Translators
" Quality < 17"; " Quality < 17";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(2, result.BlockItems.Count(b => b is ItemLevelBlockItem)); Assert.AreEqual(2, result.BlockItems.Count(b => b is ItemLevelBlockItem));
@ -578,7 +578,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleTextColorItems_OnlyLastOneUsed() public void TranslateStringToItemFilterBlock_MultipleTextColorItems_OnlyLastOneUsed()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
@ -586,7 +586,7 @@ namespace Filtration.Tests.Translators
" SetTextColor 255 20 100"; " SetTextColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
@ -597,7 +597,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleFontSizeItems_OnlyLastOneUsed() public void TranslateStringToItemFilterBlock_MultipleFontSizeItems_OnlyLastOneUsed()
{ {
// Arrange // Arrange
@ -607,7 +607,7 @@ namespace Filtration.Tests.Translators
" SetFontSize 27" + Environment.NewLine; " SetFontSize 27" + Environment.NewLine;
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
@ -616,7 +616,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleSoundItems_OnlyLastOneUsed() public void TranslateStringToItemFilterBlock_MultipleSoundItems_OnlyLastOneUsed()
{ {
// Arrange // Arrange
@ -626,7 +626,7 @@ namespace Filtration.Tests.Translators
" PlayAlertSound 2" + Environment.NewLine; " PlayAlertSound 2" + Environment.NewLine;
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
@ -636,7 +636,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleBackgroundColorItems_OnlyLastOneUsed() public void TranslateStringToItemFilterBlock_MultipleBackgroundColorItems_OnlyLastOneUsed()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
@ -644,7 +644,7 @@ namespace Filtration.Tests.Translators
" SetBackgroundColor 255 20 100"; " SetBackgroundColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
@ -655,7 +655,7 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateStringToLootFilterBlock_MultipleBorderColorItems_OnlyLastOneUsed() public void TranslateStringToItemFilterBlock_MultipleBorderColorItems_OnlyLastOneUsed()
{ {
// Arrange // Arrange
var inputString = "Show" + Environment.NewLine + var inputString = "Show" + Environment.NewLine +
@ -663,7 +663,7 @@ namespace Filtration.Tests.Translators
" SetBorderColor 255 20 100"; " SetBorderColor 255 20 100";
// Act // Act
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString); var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
// Assert // Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem)); Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
@ -674,20 +674,20 @@ namespace Filtration.Tests.Translators
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_NothingPopulated_ReturnsCorrectString() public void TranslateItemFilterBlockToString_NothingPopulated_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show"; var expectedResult = "Show";
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_FilterTypeHide_ReturnsCorrectString() public void TranslateItemFilterBlockToString_FilterTypeHide_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Hide"; var expectedResult = "Hide";
@ -695,14 +695,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.Action = BlockAction.Hide; _testUtility.TestBlock.Action = BlockAction.Hide;
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_FilterDescription_ReturnsCorrectString() public void TranslateItemFilterBlockToString_FilterDescription_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "# Test Block Description" + Environment.NewLine + var expectedResult = "# Test Block Description" + Environment.NewLine +
@ -711,14 +711,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.Description = "Test Block Description"; _testUtility.TestBlock.Description = "Test Block Description";
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_FilterDescriptionWithApostraphes_DoesNotDuplicateApostraphes() public void TranslateItemFilterBlockToString_FilterDescriptionWithApostraphes_DoesNotDuplicateApostraphes()
{ {
// Arrange // Arrange
var expectedResult = "# Test Block Descr'iption" + Environment.NewLine + var expectedResult = "# Test Block Descr'iption" + Environment.NewLine +
@ -727,14 +727,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.Description = "Test Block Descr'iption"; _testUtility.TestBlock.Description = "Test Block Descr'iption";
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_ItemLevel_ReturnsCorrectString() public void TranslateItemFilterBlockToString_ItemLevel_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -743,14 +743,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 56)); _testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 56));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_DropLevel_ReturnsCorrectString() public void TranslateItemFilterBlockToString_DropLevel_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -759,14 +759,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new DropLevelBlockItem(FilterPredicateOperator.Equal, 23)); _testUtility.TestBlock.BlockItems.Add(new DropLevelBlockItem(FilterPredicateOperator.Equal, 23));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Quality_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Quality_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -775,14 +775,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 10)); _testUtility.TestBlock.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 10));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Rarity_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Rarity_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -792,14 +792,14 @@ namespace Filtration.Tests.Translators
(int) ItemRarity.Rare)); (int) ItemRarity.Rare));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Classes_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Classes_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -812,14 +812,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(classBlockItem); _testUtility.TestBlock.BlockItems.Add(classBlockItem);
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Classes_DoesNotDuplicateApostraphes() public void TranslateItemFilterBlockToString_Classes_DoesNotDuplicateApostraphes()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -830,14 +830,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(classBlockItem); _testUtility.TestBlock.BlockItems.Add(classBlockItem);
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_BaseTypes_ReturnsCorrectString() public void TranslateItemFilterBlockToString_BaseTypes_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -850,14 +850,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(baseTypeBlockItem); _testUtility.TestBlock.BlockItems.Add(baseTypeBlockItem);
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Sockets_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Sockets_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -866,14 +866,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new SocketsBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 5)); _testUtility.TestBlock.BlockItems.Add(new SocketsBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 5));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_SocketGroup_ReturnsCorrectString() public void TranslateItemFilterBlockToString_SocketGroup_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -885,14 +885,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(socketGroupBlockItem); _testUtility.TestBlock.BlockItems.Add(socketGroupBlockItem);
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_LinkedSockets_ReturnsCorrectString() public void TranslateItemFilterBlockToString_LinkedSockets_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -901,14 +901,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new LinkedSocketsBlockItem(FilterPredicateOperator.NotEqual, 3)); _testUtility.TestBlock.BlockItems.Add(new LinkedSocketsBlockItem(FilterPredicateOperator.NotEqual, 3));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Width_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Width_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -917,14 +917,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4)); _testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Height_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Height_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -933,14 +933,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new HeightBlockItem(FilterPredicateOperator.GreaterThan, 1)); _testUtility.TestBlock.BlockItems.Add(new HeightBlockItem(FilterPredicateOperator.GreaterThan, 1));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_TextColorMaxAlpha_ReturnsCorrectString() public void TranslateItemFilterBlockToString_TextColorMaxAlpha_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -949,14 +949,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new TextColorBlockItem(new Color {A = 255, R = 54, G = 102, B = 255})); _testUtility.TestBlock.BlockItems.Add(new TextColorBlockItem(new Color {A = 255, R = 54, G = 102, B = 255}));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_TextColorNotMaxAlpha_ReturnsCorrectString() public void TranslateItemFilterBlockToString_TextColorNotMaxAlpha_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -965,14 +965,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new TextColorBlockItem(new Color {A = 66, R = 54, G = 102, B = 255})); _testUtility.TestBlock.BlockItems.Add(new TextColorBlockItem(new Color {A = 66, R = 54, G = 102, B = 255}));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_BackgroundColorNotMaxAlpha_ReturnsCorrectString() public void TranslateItemFilterBlockToString_BackgroundColorNotMaxAlpha_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -982,14 +982,14 @@ namespace Filtration.Tests.Translators
new BackgroundColorBlockItem(new Color {A = 69, R = 12, G = 0, B = 212})); new BackgroundColorBlockItem(new Color {A = 69, R = 12, G = 0, B = 212}));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_BorderColorNotMaxAlpha_ReturnsCorrectString() public void TranslateItemFilterBlockToString_BorderColorNotMaxAlpha_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -998,14 +998,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new BorderColorBlockItem(new Color {A = 1, R = 128, G = 32, B = 0})); _testUtility.TestBlock.BlockItems.Add(new BorderColorBlockItem(new Color {A = 1, R = 128, G = 32, B = 0}));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_FontSize_ReturnsCorrectString() public void TranslateItemFilterBlockToString_FontSize_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -1014,14 +1014,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15)); _testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Sound_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Sound_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -1030,14 +1030,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(2, 50)); _testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(2, 50));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_MultipleItemLevel_ReturnsCorrectString() public void TranslateItemFilterBlockToString_MultipleItemLevel_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -1050,14 +1050,14 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThan, 100)); _testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThan, 100));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_MultipleFontSize_UsesFirstFontSize() public void TranslateItemFilterBlockToString_MultipleFontSize_UsesFirstFontSize()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -1070,30 +1070,30 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15)); _testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Section_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Section_ReturnsCorrectString()
{ {
// Arrange // Arrange
var TestInputSectionText = "Ermagerd it's a section!"; var TestInputSectionText = "Ermagerd it's a section!";
var expectedResult = "# Section: " + TestInputSectionText; var expectedResult = "# Section: " + TestInputSectionText;
_testUtility.TestBlock = new LootFilterSection { Description = TestInputSectionText }; _testUtility.TestBlock = new ItemFilterSection { Description = TestInputSectionText };
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test] [Test]
public void TranslateLootFilterBlockToString_Everything_ReturnsCorrectString() public void TranslateItemFilterBlockToString_Everything_ReturnsCorrectString()
{ {
// Arrange // Arrange
var expectedResult = "Show" + Environment.NewLine + var expectedResult = "Show" + Environment.NewLine +
@ -1145,25 +1145,25 @@ namespace Filtration.Tests.Translators
_testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(6, 90)); _testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(6, 90));
// Act // Act
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock); var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert // Assert
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
private class LootFilterBlockTranslatorTestUtility private class ItemFilterBlockTranslatorTestUtility
{ {
public LootFilterBlockTranslatorTestUtility() public ItemFilterBlockTranslatorTestUtility()
{ {
// Test Data // Test Data
TestBlock = new LootFilterBlock(); TestBlock = new ItemFilterBlock();
// Class under test instantiation // Class under test instantiation
Translator = new LootFilterBlockTranslator(); Translator = new ItemFilterBlockTranslator();
} }
public LootFilterBlock TestBlock { get; set; } public ItemFilterBlock TestBlock { get; set; }
public LootFilterBlockTranslator Translator { get; private set; } public ItemFilterBlockTranslator Translator { get; private set; }
} }
} }
} }

View File

@ -11,45 +11,45 @@ using NUnit.Framework;
namespace Filtration.Tests.Translators namespace Filtration.Tests.Translators
{ {
[TestFixture] [TestFixture]
public class TestLootFilterScriptTranslator public class TestItemFilterScriptTranslator
{ {
[Test] [Test]
public void TranslateStringToLootFilterScript_ReturnsScriptWithCorrectNumberOfBlocks() public void TranslateStringToItemFilterScript_ReturnsScriptWithCorrectNumberOfBlocks()
{ {
// Arrange // Arrange
var testInput = File.ReadAllText(@"Resources/testscript.txt"); var testInput = File.ReadAllText(@"Resources/testscript.txt");
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>(); var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
mockLootFilterBlockTranslator.Setup(t => t.TranslateStringToLootFilterBlock(It.IsAny<string>())).Verifiable(); mockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>())).Verifiable();
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object); var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
// Act // Act
var script = translator.TranslateStringToLootFilterScript(testInput); var script = translator.TranslateStringToItemFilterScript(testInput);
// Assert // Assert
Assert.AreEqual(5, script.LootFilterBlocks.Count); Assert.AreEqual(5, script.ItemFilterBlocks.Count);
mockLootFilterBlockTranslator.Verify(); mockItemFilterBlockTranslator.Verify();
} }
[Test] [Test]
public void TranslateStringToLootFilterScript_ReturnsScriptWithDescriptionCorrectlySet() public void TranslateStringToItemFilterScript_ReturnsScriptWithDescriptionCorrectlySet()
{ {
// Arrange // Arrange
var testInput = File.ReadAllText(@"Resources/testscript.txt"); var testInput = File.ReadAllText(@"Resources/testscript.txt");
var expectedDescription = "Loot Filter Script created by Filtration v0.1 - www.github.com/XVar/filtration" + Environment.NewLine + var expectedDescription = "Item Filter Script created by Filtration v0.1 - www.github.com/XVar/filtration" + Environment.NewLine +
"Begin Script Description" + Environment.NewLine + "Begin Script Description" + Environment.NewLine +
"This is a test script" + Environment.NewLine + "This is a test script" + Environment.NewLine +
Environment.NewLine + Environment.NewLine +
"End Script Description"; "End Script Description";
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>(); var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
mockLootFilterBlockTranslator.Setup(t => t.TranslateStringToLootFilterBlock(It.IsAny<string>())).Verifiable(); mockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>())).Verifiable();
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object); var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
// Act // Act
var script = translator.TranslateStringToLootFilterScript(testInput); var script = translator.TranslateStringToItemFilterScript(testInput);
// Assert // Assert
Assert.AreEqual(expectedDescription, script.Description); Assert.AreEqual(expectedDescription, script.Description);
@ -57,69 +57,68 @@ namespace Filtration.Tests.Translators
[Ignore("Integration Test")] [Ignore("Integration Test")]
[Test] [Test]
public void TranslateStringToLootFilterScript_ThioleLootFilterTest() public void TranslateStringToItemFilterScript_ThioleItemFilterTest()
{ {
// Arrange // Arrange
var testInput = File.ReadAllText(@"Resources/ThioleLootFilter.txt"); var testInput = File.ReadAllText(@"Resources/ThioleItemFilter.txt");
var BlockTranslator = new LootFilterBlockTranslator(); var BlockTranslator = new ItemFilterBlockTranslator();
var translator = new LootFilterScriptTranslator(BlockTranslator); var translator = new ItemFilterScriptTranslator(BlockTranslator);
// Act // Act
var script = translator.TranslateStringToLootFilterScript(testInput); var script = translator.TranslateStringToItemFilterScript(testInput);
// Assert // Assert
// Not crashing out when loading a huge script means this integration test has passed! // Not crashing out when loading a huge script means this integration test has passed!
} }
[Test] [Test]
public void TranslateLootFilterScriptToString_OneBlock_CallsTranslator() public void TranslateItemFilterScriptToString_OneBlock_CallsTranslator()
{ {
// Arrange // Arrange
var testScript = new LootFilterScript(); var testScript = new ItemFilterScript();
var testBlock = new LootFilterBlock(); var testBlock = new ItemFilterBlock();
testBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.Equal, 5)); testBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.Equal, 5));
var BlockOutput = "Test Script Output"; var BlockOutput = "Test Script Output";
var expectedOutput = "Test Script Output" + Environment.NewLine + Environment.NewLine; var expectedOutput = "Test Script Output" + Environment.NewLine + Environment.NewLine;
testScript.LootFilterBlocks.Add(testBlock); testScript.ItemFilterBlocks.Add(testBlock);
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>(); var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
mockLootFilterBlockTranslator.Setup(t => t.TranslateLootFilterBlockToString(testBlock)).Returns(BlockOutput).Verifiable(); mockItemFilterBlockTranslator.Setup(t => t.TranslateItemFilterBlockToString(testBlock)).Returns(BlockOutput).Verifiable();
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object); var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
// Act // Act
var result = translator.TranslateLootFilterScriptToString(testScript); var result = translator.TranslateItemFilterScriptToString(testScript);
// Assert // Assert
Assert.AreEqual(expectedOutput, result); mockItemFilterBlockTranslator.Verify();
mockLootFilterBlockTranslator.Verify();
} }
[Test] [Test]
public void TranslateLootFilterScriptToString_FullScript_ReturnsCorrectOutput() public void TranslateItemFilterScriptToString_FullScript_ReturnsCorrectOutput()
{ {
var script = new LootFilterScript var script = new ItemFilterScript
{ {
Description = "Test script description" + Environment.NewLine + Description = "Test script description" + Environment.NewLine +
"This is a really great script!" + Environment.NewLine + "This is a really great script!" + Environment.NewLine +
"Multiple line script descriptions are fun!" "Multiple line script descriptions are fun!"
}; };
var block1 = new LootFilterBlock {Description = "Test Filter 1"}; var block1 = new ItemFilterBlock {Description = "Test Filter 1"};
block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5)); block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5));
var block2 = new LootFilterBlock(); var block2 = new ItemFilterBlock();
block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15)); block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15));
block2.BlockItems.Add(new FontSizeBlockItem(7)); block2.BlockItems.Add(new FontSizeBlockItem(7));
block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3)); block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3));
script.LootFilterBlocks.Add(block1); script.ItemFilterBlocks.Add(block1);
script.LootFilterBlocks.Add(block2); script.ItemFilterBlocks.Add(block2);
var expectedOutput = "# Script edited with Filtration - http://ben-wallis.github.io/Filtration/" + Environment.NewLine + var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine +
"# Test script description" + Environment.NewLine + "# Test script description" + Environment.NewLine +
"# This is a really great script!" + Environment.NewLine + "# This is a really great script!" + Environment.NewLine +
"# Multiple line script descriptions are fun!" + Environment.NewLine + "# Multiple line script descriptions are fun!" + Environment.NewLine +
@ -133,41 +132,41 @@ namespace Filtration.Tests.Translators
" Width = 3" + Environment.NewLine + " Width = 3" + Environment.NewLine +
" SetFontSize 7" + Environment.NewLine + Environment.NewLine; " SetFontSize 7" + Environment.NewLine + Environment.NewLine;
var blockTranslator = new LootFilterBlockTranslator(); var blockTranslator = new ItemFilterBlockTranslator();
var translator = new LootFilterScriptTranslator(blockTranslator); var translator = new ItemFilterScriptTranslator(blockTranslator);
// Act // Act
var result = translator.TranslateLootFilterScriptToString(script); var result = translator.TranslateItemFilterScriptToString(script);
// Assert // Assert
Assert.AreEqual(expectedOutput, result); Assert.AreEqual(expectedOutput, result);
} }
[Test] [Test]
public void TranslateLootFilterScriptToString_FullScriptWithExistingFiltrationTagline_ReturnsCorrectOutput() public void TranslateItemFilterScriptToString_FullScriptWithExistingFiltrationTagline_ReturnsCorrectOutput()
{ {
var script = new LootFilterScript var script = new ItemFilterScript
{ {
Description = "Script edited with Filtration - http://ben-wallis.github.io/Filtration/" + Environment.NewLine + Description = "Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine +
"Test script description" + Environment.NewLine "Test script description" + Environment.NewLine
}; };
var expectedOutput = "# Script edited with Filtration - http://ben-wallis.github.io/Filtration/" + var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" +
Environment.NewLine + Environment.NewLine +
"# Test script description" + Environment.NewLine + Environment.NewLine; "# Test script description" + Environment.NewLine + Environment.NewLine;
var blockTranslator = new LootFilterBlockTranslator(); var blockTranslator = new ItemFilterBlockTranslator();
var translator = new LootFilterScriptTranslator(blockTranslator); var translator = new ItemFilterScriptTranslator(blockTranslator);
// Act // Act
var result = translator.TranslateLootFilterScriptToString(script); var result = translator.TranslateItemFilterScriptToString(script);
// Assert // Assert
Assert.AreEqual(expectedOutput, result); Assert.AreEqual(expectedOutput, result);
} }
[Test] [Test]
public void TranslateStringToLootFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject() public void TranslateStringToItemFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject()
{ {
// Arrange // Arrange
var testInputScript = "# My Script" + Environment.NewLine + var testInputScript = "# My Script" + Environment.NewLine +
@ -178,15 +177,15 @@ namespace Filtration.Tests.Translators
" SetBorderColor 255 0 255" + Environment.NewLine + " SetBorderColor 255 0 255" + Environment.NewLine +
" SetFontSize 25"; " SetFontSize 25";
var blockTranslator = new LootFilterBlockTranslator(); var blockTranslator = new ItemFilterBlockTranslator();
var translator = new LootFilterScriptTranslator(blockTranslator); var translator = new ItemFilterScriptTranslator(blockTranslator);
// Act // Act
var result = translator.TranslateStringToLootFilterScript(testInputScript); var result = translator.TranslateStringToItemFilterScript(testInputScript);
// Assert // Assert
Assert.AreEqual(2, result.LootFilterBlocks.Count); Assert.AreEqual(2, result.ItemFilterBlocks.Count);
var block = result.LootFilterBlocks.First(l => l.GetType() != typeof(LootFilterSection)); var block = result.ItemFilterBlocks.First(l => l.GetType() != typeof(ItemFilterSection));
Assert.AreEqual(4, block.BlockItems.Count); Assert.AreEqual(4, block.BlockItems.Count);
var baseTypeItem = block.BlockItems.OfType<BaseTypeBlockItem>().First(); var baseTypeItem = block.BlockItems.OfType<BaseTypeBlockItem>().First();
Assert.AreEqual(2, baseTypeItem.Items.Count); Assert.AreEqual(2, baseTypeItem.Items.Count);

View File

@ -9,7 +9,7 @@ namespace Filtration.Converters
{ {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
var test = (ILootFilterBlockItem)Activator.CreateInstance((Type) value); var test = (IItemFilterBlockItem)Activator.CreateInstance((Type) value);
return test.DisplayHeading; return test.DisplayHeading;
} }

View File

@ -130,19 +130,20 @@
<Compile Include="Models\BlockItemTypes\QualityBlockItem.cs" /> <Compile Include="Models\BlockItemTypes\QualityBlockItem.cs" />
<Compile Include="Models\BlockItemTypes\ItemLevelBlockItem.cs" /> <Compile Include="Models\BlockItemTypes\ItemLevelBlockItem.cs" />
<Compile Include="Models\IAudioVisualBlockItem.cs" /> <Compile Include="Models\IAudioVisualBlockItem.cs" />
<Compile Include="Models\LootFilterBlock.cs" /> <Compile Include="Models\ItemFilterBlockGroup.cs" />
<Compile Include="Models\ILootFilterBlockItem.cs" /> <Compile Include="Models\ItemFilterBlock.cs" />
<Compile Include="Models\LootFilterScript.cs" /> <Compile Include="Models\IItemFilterBlockItem.cs" />
<Compile Include="Models\LootFilterSection.cs" /> <Compile Include="Models\ItemFilterScript.cs" />
<Compile Include="Models\ItemFilterSection.cs" />
<Compile Include="Models\NumericFilterPredicate.cs" /> <Compile Include="Models\NumericFilterPredicate.cs" />
<Compile Include="Models\BlockItemBaseTypes\SocketGroupBlockItemBase.cs" /> <Compile Include="Models\BlockItemBaseTypes\SocketGroupBlockItemBase.cs" />
<Compile Include="Models\ReplaceColorsParameterSet.cs" /> <Compile Include="Models\ReplaceColorsParameterSet.cs" />
<Compile Include="Properties\Annotations.cs" /> <Compile Include="Properties\Annotations.cs" />
<Compile Include="Services\FileSystemService.cs" /> <Compile Include="Services\FileSystemService.cs" />
<Compile Include="Services\LootFilterPersistenceService.cs" /> <Compile Include="Services\ItemFilterPersistenceService.cs" />
<Compile Include="Services\StaticDataService.cs" /> <Compile Include="Services\StaticDataService.cs" />
<Compile Include="Translators\LootFilterBlockTranslator.cs" /> <Compile Include="Translators\ItemFilterBlockTranslator.cs" />
<Compile Include="Translators\LootFilterScriptTranslator.cs" /> <Compile Include="Translators\ItemFilterScriptTranslator.cs" />
<Compile Include="UserControls\AutoScrollingListBox.cs" /> <Compile Include="UserControls\AutoScrollingListBox.cs" />
<Compile Include="UserControls\CrossButton.cs" /> <Compile Include="UserControls\CrossButton.cs" />
<Compile Include="UserControls\EditableListBoxControl.xaml.cs"> <Compile Include="UserControls\EditableListBoxControl.xaml.cs">
@ -153,27 +154,27 @@
</Compile> </Compile>
<Compile Include="Utilities\LineReader.cs" /> <Compile Include="Utilities\LineReader.cs" />
<Compile Include="ViewModels\FiltrationViewModelBase.cs" /> <Compile Include="ViewModels\FiltrationViewModelBase.cs" />
<Compile Include="ViewModels\ILootFilterScriptViewModelFactory.cs" /> <Compile Include="ViewModels\IItemFilterScriptViewModelFactory.cs" />
<Compile Include="ViewModels\ILootFilterBlockViewModelFactory.cs" /> <Compile Include="ViewModels\IItemFilterBlockViewModelFactory.cs" />
<Compile Include="ViewModels\LootFilterBlockViewModel.cs" /> <Compile Include="ViewModels\ItemFilterBlockViewModel.cs" />
<Compile Include="ViewModels\LootFilterScriptViewModel.cs" /> <Compile Include="ViewModels\ItemFilterScriptViewModel.cs" />
<Compile Include="ViewModels\ReplaceColorsViewModel.cs" /> <Compile Include="ViewModels\ReplaceColorsViewModel.cs" />
<Compile Include="Views\BindingProxy.cs" /> <Compile Include="Views\BindingProxy.cs" />
<Compile Include="Views\BlockTemplateSelector.cs" /> <Compile Include="Views\BlockTemplateSelector.cs" />
<Compile Include="Views\LootFilterBlockDisplaySettingsView.xaml.cs"> <Compile Include="Views\ItemFilterBlockDisplaySettingsView.xaml.cs">
<DependentUpon>LootFilterBlockDisplaySettingsView.xaml</DependentUpon> <DependentUpon>ItemFilterBlockDisplaySettingsView.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\LootFilterScriptView.xaml.cs"> <Compile Include="Views\ItemFilterScriptView.xaml.cs">
<DependentUpon>LootFilterScriptView.xaml</DependentUpon> <DependentUpon>ItemFilterScriptView.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\LootFilterBlockView.xaml.cs"> <Compile Include="Views\ItemFilterBlockView.xaml.cs">
<DependentUpon>LootFilterBlockView.xaml</DependentUpon> <DependentUpon>ItemFilterBlockView.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="UserControls\NumericFilterPredicateControl.xaml.cs"> <Compile Include="UserControls\NumericFilterPredicateControl.xaml.cs">
<DependentUpon>NumericFilterPredicateControl.xaml</DependentUpon> <DependentUpon>NumericFilterPredicateControl.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\LootFilterSectionView.xaml.cs"> <Compile Include="Views\ItemFilterSectionView.xaml.cs">
<DependentUpon>LootFilterSectionView.xaml</DependentUpon> <DependentUpon>ItemFilterSectionView.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\AboutWindow.xaml.cs"> <Compile Include="Views\AboutWindow.xaml.cs">
<DependentUpon>AboutWindow.xaml</DependentUpon> <DependentUpon>AboutWindow.xaml</DependentUpon>
@ -206,7 +207,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\LootFilterBlockDisplaySettingsView.xaml"> <Page Include="Views\ItemFilterBlockDisplaySettingsView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
@ -214,15 +215,15 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\LootFilterScriptView.xaml"> <Page Include="Views\ItemFilterScriptView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\LootFilterBlockView.xaml"> <Page Include="Views\ItemFilterBlockView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\LootFilterSectionView.xaml"> <Page Include="Views\ItemFilterSectionView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>

View File

@ -5,7 +5,7 @@ using Filtration.Annotations;
namespace Filtration.Models.BlockItemBaseTypes namespace Filtration.Models.BlockItemBaseTypes
{ {
abstract class BlockItemBase : ILootFilterBlockItem abstract class BlockItemBase : IItemFilterBlockItem
{ {
public abstract string PrefixText { get; } public abstract string PrefixText { get; }
public abstract int MaximumAllowed { get; } public abstract int MaximumAllowed { get; }

View File

@ -3,7 +3,7 @@ using System.Windows.Media;
namespace Filtration.Models namespace Filtration.Models
{ {
internal interface ILootFilterBlockItem : INotifyPropertyChanged internal interface IItemFilterBlockItem : INotifyPropertyChanged
{ {
string PrefixText { get; } string PrefixText { get; }
int MaximumAllowed { get; } int MaximumAllowed { get; }

View File

@ -3,15 +3,14 @@ using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using Filtration.Enums; using Filtration.Enums;
using Filtration.Models.BlockItemBaseTypes; using Filtration.Models.BlockItemBaseTypes;
using Filtration.Models.BlockItemTypes;
namespace Filtration.Models namespace Filtration.Models
{ {
internal class LootFilterBlock internal class ItemFilterBlock
{ {
public LootFilterBlock() public ItemFilterBlock()
{ {
BlockItems = new ObservableCollection<ILootFilterBlockItem> {new ActionBlockItem(BlockAction.Show)}; BlockItems = new ObservableCollection<IItemFilterBlockItem> {new ActionBlockItem(BlockAction.Show)};
} }
public string Description { get; set; } public string Description { get; set; }
@ -30,7 +29,7 @@ namespace Filtration.Models
} }
} }
public ObservableCollection<ILootFilterBlockItem> BlockItems { get; private set; } public ObservableCollection<IItemFilterBlockItem> BlockItems { get; private set; }
public int BlockCount(Type type) public int BlockCount(Type type)
{ {
@ -39,7 +38,7 @@ namespace Filtration.Models
public bool AddBlockItemAllowed(Type type) public bool AddBlockItemAllowed(Type type)
{ {
var blockItem = (ILootFilterBlockItem)Activator.CreateInstance(type); var blockItem = (IItemFilterBlockItem)Activator.CreateInstance(type);
return BlockCount(type) < blockItem.MaximumAllowed; return BlockCount(type) < blockItem.MaximumAllowed;
} }

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Filtration.Models
{
class ItemFilterBlockGroup
{
}
}

View File

@ -3,19 +3,17 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using Filtration.Models.BlockItemTypes; using Filtration.Models.BlockItemTypes;
using Filtration.ViewModels;
using Filtration.Views;
namespace Filtration.Models namespace Filtration.Models
{ {
internal class LootFilterScript internal class ItemFilterScript
{ {
public LootFilterScript() public ItemFilterScript()
{ {
LootFilterBlocks = new ObservableCollection<LootFilterBlock>(); ItemFilterBlocks = new ObservableCollection<ItemFilterBlock>();
} }
public ObservableCollection<LootFilterBlock> LootFilterBlocks { get; set; } public ObservableCollection<ItemFilterBlock> ItemFilterBlocks { get; set; }
public string FilePath { get; set; } public string FilePath { get; set; }
public string Description { get; set; } public string Description { get; set; }
public DateTime DateModified { get; set; } public DateTime DateModified { get; set; }
@ -24,7 +22,7 @@ namespace Filtration.Models
{ {
var validationErrors = new List<string>(); var validationErrors = new List<string>();
if (LootFilterBlocks.Count == 0) if (ItemFilterBlocks.Count == 0)
{ {
validationErrors.Add("A script must have at least one block"); validationErrors.Add("A script must have at least one block");
} }
@ -37,7 +35,7 @@ namespace Filtration.Models
foreach ( foreach (
var block in var block in
LootFilterBlocks.Where(b => BlockIsColorReplacementCandidate(replaceColorsParameterSet, b))) ItemFilterBlocks.Where(b => BlockIsColorReplacementCandidate(replaceColorsParameterSet, b)))
{ {
if (replaceColorsParameterSet.ReplaceTextColor) if (replaceColorsParameterSet.ReplaceTextColor)
{ {
@ -58,7 +56,7 @@ namespace Filtration.Models
} }
private bool BlockIsColorReplacementCandidate(ReplaceColorsParameterSet replaceColorsParameterSet, LootFilterBlock block) private bool BlockIsColorReplacementCandidate(ReplaceColorsParameterSet replaceColorsParameterSet, ItemFilterBlock block)
{ {
var textColorItem = block.HasBlockItemOfType<TextColorBlockItem>() var textColorItem = block.HasBlockItemOfType<TextColorBlockItem>()
? block.BlockItems.OfType<TextColorBlockItem>().First() ? block.BlockItems.OfType<TextColorBlockItem>().First()

View File

@ -0,0 +1,6 @@
namespace Filtration.Models
{
internal class ItemFilterSection : ItemFilterBlock
{
}
}

View File

@ -1,6 +0,0 @@
namespace Filtration.Models
{
internal class LootFilterSection : LootFilterBlock
{
}
}

View File

@ -7,7 +7,7 @@ using System.Windows;
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("Filtration")] [assembly: AssemblyTitle("Filtration")]
[assembly: AssemblyDescription("A loot filter script manager for Path of Exile")] [assembly: AssemblyDescription("An item filter script manager for Path of Exile")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("XVar Industries Inc.")] [assembly: AssemblyCompany("XVar Industries Inc.")]
[assembly: AssemblyProduct("Filtration")] [assembly: AssemblyProduct("Filtration")]

View File

@ -3,41 +3,41 @@ using Filtration.Translators;
namespace Filtration.Services namespace Filtration.Services
{ {
internal interface ILootFilterPersistenceService internal interface IItemFilterPersistenceService
{ {
string LootFilterScriptDirectory { get; set; } string ItemFilterScriptDirectory { get; set; }
LootFilterScript LoadLootFilterScript(string filePath); ItemFilterScript LoadItemFilterScript(string filePath);
void SaveLootFilterScript(LootFilterScript script); void SaveItemFilterScript(ItemFilterScript script);
string DefaultPathOfExileDirectory(); string DefaultPathOfExileDirectory();
} }
internal class LootFilterPersistenceService : ILootFilterPersistenceService internal class ItemFilterPersistenceService : IItemFilterPersistenceService
{ {
private readonly IFileSystemService _fileSystemService; private readonly IFileSystemService _fileSystemService;
private readonly ILootFilterScriptTranslator _lootFilterScriptTranslator; private readonly IItemFilterScriptTranslator _itemFilterScriptTranslator;
public LootFilterPersistenceService(IFileSystemService fileSystemService, ILootFilterScriptTranslator lootFilterScriptTranslator) public ItemFilterPersistenceService(IFileSystemService fileSystemService, IItemFilterScriptTranslator itemFilterScriptTranslator)
{ {
_fileSystemService = fileSystemService; _fileSystemService = fileSystemService;
_lootFilterScriptTranslator = lootFilterScriptTranslator; _itemFilterScriptTranslator = itemFilterScriptTranslator;
} }
public string LootFilterScriptDirectory { get; set; } public string ItemFilterScriptDirectory { get; set; }
public LootFilterScript LoadLootFilterScript(string filePath) public ItemFilterScript LoadItemFilterScript(string filePath)
{ {
var script = var script =
_lootFilterScriptTranslator.TranslateStringToLootFilterScript( _itemFilterScriptTranslator.TranslateStringToItemFilterScript(
_fileSystemService.ReadFileAsString(filePath)); _fileSystemService.ReadFileAsString(filePath));
script.FilePath = filePath; script.FilePath = filePath;
return script; return script;
} }
public void SaveLootFilterScript(LootFilterScript script) public void SaveItemFilterScript(ItemFilterScript script)
{ {
_fileSystemService.WriteFileFromString(script.FilePath, _fileSystemService.WriteFileFromString(script.FilePath,
_lootFilterScriptTranslator.TranslateLootFilterScriptToString(script)); _itemFilterScriptTranslator.TranslateItemFilterScriptToString(script));
} }
public string DefaultPathOfExileDirectory() public string DefaultPathOfExileDirectory()

View File

@ -13,28 +13,28 @@ using Filtration.Utilities;
namespace Filtration.Translators namespace Filtration.Translators
{ {
internal interface ILootFilterBlockTranslator internal interface IItemFilterBlockTranslator
{ {
LootFilterBlock TranslateStringToLootFilterBlock(string inputString); ItemFilterBlock TranslateStringToItemFilterBlock(string inputString);
string TranslateLootFilterBlockToString(LootFilterBlock block); string TranslateItemFilterBlockToString(ItemFilterBlock block);
} }
internal class LootFilterBlockTranslator : ILootFilterBlockTranslator internal class ItemFilterBlockTranslator : IItemFilterBlockTranslator
{ {
private const string Indent = " "; private const string Indent = " ";
private readonly string _newLine = Environment.NewLine + Indent; private readonly string _newLine = Environment.NewLine + Indent;
// This method converts a string into a LootFilterBlock. This is used for pasting LootFilterBlocks // This method converts a string into a ItemFilterBlock. This is used for pasting ItemFilterBlocks
// and reading LootFilterScripts from a file. // and reading ItemFilterScripts from a file.
public LootFilterBlock TranslateStringToLootFilterBlock(string inputString) public ItemFilterBlock TranslateStringToItemFilterBlock(string inputString)
{ {
var block = new LootFilterBlock(); var block = new ItemFilterBlock();
var showHideFound = false; var showHideFound = false;
foreach (var line in new LineReader(() => new StringReader(inputString))) foreach (var line in new LineReader(() => new StringReader(inputString)))
{ {
if (line.StartsWith(@"# Section:")) if (line.StartsWith(@"# Section:"))
{ {
var section = new LootFilterSection var section = new ItemFilterSection
{ {
Description = line.Substring(line.IndexOf(":", StringComparison.Ordinal) + 1).Trim() Description = line.Substring(line.IndexOf(":", StringComparison.Ordinal) + 1).Trim()
}; };
@ -215,7 +215,7 @@ namespace Filtration.Translators
return block; return block;
} }
private static void RemoveExistingBlockItemsOfType<T>(LootFilterBlock block) private static void RemoveExistingBlockItemsOfType<T>(ItemFilterBlock block)
{ {
var existingBlockItemCount = block.BlockItems.Count(b => b.GetType() == typeof(T)); var existingBlockItemCount = block.BlockItems.Count(b => b.GetType() == typeof(T));
if (existingBlockItemCount > 0) if (existingBlockItemCount > 0)
@ -225,7 +225,7 @@ namespace Filtration.Translators
} }
} }
private static void AddNumericFilterPredicateItemToBlockItems<T>(LootFilterBlock block, string inputString) where T : NumericFilterPredicateBlockItem private static void AddNumericFilterPredicateItemToBlockItems<T>(ItemFilterBlock block, string inputString) where T : NumericFilterPredicateBlockItem
{ {
var blockItem = Activator.CreateInstance<T>(); var blockItem = Activator.CreateInstance<T>();
@ -243,7 +243,7 @@ namespace Filtration.Translators
predicate.PredicateOperand = Convert.ToInt16(result.Groups[2].Value); predicate.PredicateOperand = Convert.ToInt16(result.Groups[2].Value);
} }
private static void AddStringListItemToBlockItems<T>(LootFilterBlock block, string inputString) where T : StringListBlockItem private static void AddStringListItemToBlockItems<T>(ItemFilterBlock block, string inputString) where T : StringListBlockItem
{ {
var blockItem = Activator.CreateInstance<T>(); var blockItem = Activator.CreateInstance<T>();
PopulateListFromString(blockItem.Items, inputString.Substring(inputString.IndexOf(" ", StringComparison.Ordinal) + 1).Trim()); PopulateListFromString(blockItem.Items, inputString.Substring(inputString.IndexOf(" ", StringComparison.Ordinal) + 1).Trim());
@ -261,7 +261,7 @@ namespace Filtration.Translators
} }
} }
private static void AddColorItemToBlockItems<T>(LootFilterBlock block, string inputString) where T : ColorBlockItem private static void AddColorItemToBlockItems<T>(ItemFilterBlock block, string inputString) where T : ColorBlockItem
{ {
var blockItem = Activator.CreateInstance<T>(); var blockItem = Activator.CreateInstance<T>();
blockItem.Color = GetColorFromString(inputString); blockItem.Color = GetColorFromString(inputString);
@ -294,11 +294,11 @@ namespace Filtration.Translators
return new Color(); return new Color();
} }
// This method converts a LootFilterBlock object into a string. This is used for copying a LootFilterBlock // This method converts a ItemFilterBlock object into a string. This is used for copying a ItemFilterBlock
// to the clipboard, and when saving a LootFilterScript. // to the clipboard, and when saving a ItemFilterScript.
public string TranslateLootFilterBlockToString(LootFilterBlock block) public string TranslateItemFilterBlockToString(ItemFilterBlock block)
{ {
if (block.GetType() == typeof (LootFilterSection)) if (block.GetType() == typeof (ItemFilterSection))
{ {
return "# Section: " + block.Description; return "# Section: " + block.Description;
} }
@ -312,7 +312,7 @@ namespace Filtration.Translators
outputString += block.Action.GetAttributeDescription(); outputString += block.Action.GetAttributeDescription();
// This could be refactored to use the upcasted NumericFilterPredicateBlockItem (or even ILootFilterBlockItem) instead // This could be refactored to use the upcasted NumericFilterPredicateBlockItem (or even IItemFilterBlockItem) instead
// of the specific downcasts. Leaving it like this currently to preserve sorting since the different // of the specific downcasts. Leaving it like this currently to preserve sorting since the different
// downcasts have no defined sort order (yet). // downcasts have no defined sort order (yet).
foreach (var blockItem in block.BlockItems.OfType<ItemLevelBlockItem>()) foreach (var blockItem in block.BlockItems.OfType<ItemLevelBlockItem>())

View File

@ -7,24 +7,24 @@ using Filtration.Utilities;
namespace Filtration.Translators namespace Filtration.Translators
{ {
internal interface ILootFilterScriptTranslator internal interface IItemFilterScriptTranslator
{ {
LootFilterScript TranslateStringToLootFilterScript(string inputString); ItemFilterScript TranslateStringToItemFilterScript(string inputString);
string TranslateLootFilterScriptToString(LootFilterScript script); string TranslateItemFilterScriptToString(ItemFilterScript script);
} }
internal class LootFilterScriptTranslator : ILootFilterScriptTranslator internal class ItemFilterScriptTranslator : IItemFilterScriptTranslator
{ {
private readonly ILootFilterBlockTranslator _blockTranslator; private readonly IItemFilterBlockTranslator _blockTranslator;
public LootFilterScriptTranslator(ILootFilterBlockTranslator blockTranslator) public ItemFilterScriptTranslator(IItemFilterBlockTranslator blockTranslator)
{ {
_blockTranslator = blockTranslator; _blockTranslator = blockTranslator;
} }
public LootFilterScript TranslateStringToLootFilterScript(string inputString) public ItemFilterScript TranslateStringToItemFilterScript(string inputString)
{ {
var script = new LootFilterScript(); var script = new ItemFilterScript();
inputString = inputString.Replace("\t", ""); inputString = inputString.Replace("\t", "");
var conditionBoundaries = IdentifyBlockBoundaries(inputString); var conditionBoundaries = IdentifyBlockBoundaries(inputString);
@ -40,8 +40,8 @@ namespace Filtration.Translators
} }
script.Description = script.Description.TrimEnd('\n').TrimEnd('\r'); script.Description = script.Description.TrimEnd('\n').TrimEnd('\r');
// Extract each block from between boundaries and translate it into a LootFilterBlock object // Extract each block from between boundaries and translate it into a ItemFilterBlock object
// and add that object to the LootFilterBlocks list // and add that object to the ItemFilterBlocks list
for (var boundary = conditionBoundaries.First; boundary != null; boundary = boundary.Next) for (var boundary = conditionBoundaries.First; boundary != null; boundary = boundary.Next)
{ {
var begin = boundary.Value; var begin = boundary.Value;
@ -49,7 +49,7 @@ namespace Filtration.Translators
var block = new string[end - begin]; var block = new string[end - begin];
Array.Copy(lines, begin, block, 0, end - begin); Array.Copy(lines, begin, block, 0, end - begin);
var blockString = string.Join("\r\n", block); var blockString = string.Join("\r\n", block);
script.LootFilterBlocks.Add(_blockTranslator.TranslateStringToLootFilterBlock(blockString)); script.ItemFilterBlocks.Add(_blockTranslator.TranslateStringToItemFilterBlock(blockString));
} }
return script; return script;
@ -78,7 +78,7 @@ namespace Filtration.Translators
return blockBoundaries; return blockBoundaries;
} }
public string TranslateLootFilterScriptToString(LootFilterScript script) public string TranslateItemFilterScriptToString(ItemFilterScript script)
{ {
var outputString = string.Empty; var outputString = string.Empty;
@ -99,9 +99,9 @@ namespace Filtration.Translators
} }
// ReSharper disable once LoopCanBeConvertedToQuery // ReSharper disable once LoopCanBeConvertedToQuery
foreach (var block in script.LootFilterBlocks) foreach (var block in script.ItemFilterBlocks)
{ {
outputString += _blockTranslator.TranslateLootFilterBlockToString(block) + Environment.NewLine + Environment.NewLine; outputString += _blockTranslator.TranslateItemFilterBlockToString(block) + Environment.NewLine + Environment.NewLine;
} }
return outputString; return outputString;

View File

@ -26,7 +26,7 @@
VerticalAlignment="Stretch" SelectionMode="Single" x:Name="ControlListBox" BorderBrush="#CCCCCC"> VerticalAlignment="Stretch" SelectionMode="Single" x:Name="ControlListBox" BorderBrush="#CCCCCC">
<ListBox.Resources> <ListBox.Resources>
<Style TargetType="ListBoxItem"> <Style TargetType="ListBoxItem">
<!-- Undo the style that we set in the parent LootFilterScriptView to hide the condition selections --> <!-- Undo the style that we set in the parent ItemFilterScriptView to hide the condition selections -->
<Style.Resources> <Style.Resources>
<!-- SelectedItem with focus --> <!-- SelectedItem with focus -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Silver" /> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Silver" />

View File

@ -0,0 +1,8 @@
namespace Filtration.ViewModels
{
internal interface IItemFilterBlockViewModelFactory
{
IItemFilterBlockViewModel Create();
void Release(IItemFilterBlockViewModel itemFilterBlockViewModel);
}
}

View File

@ -0,0 +1,8 @@
namespace Filtration.ViewModels
{
internal interface IItemFilterScriptViewModelFactory
{
IItemFilterScriptViewModel Create();
void Release(IItemFilterScriptViewModel itemFilterScriptViewModel);
}
}

View File

@ -1,8 +0,0 @@
namespace Filtration.ViewModels
{
internal interface ILootFilterBlockViewModelFactory
{
ILootFilterBlockViewModel Create();
void Release(ILootFilterBlockViewModel lootFilterBlockViewModel);
}
}

View File

@ -1,8 +0,0 @@
namespace Filtration.ViewModels
{
internal interface ILootFilterScriptViewModelFactory
{
ILootFilterScriptViewModel Create();
void Release(ILootFilterScriptViewModel lootFilterScriptViewModel);
}
}

View File

@ -14,23 +14,23 @@ using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels namespace Filtration.ViewModels
{ {
internal interface ILootFilterBlockViewModel internal interface IItemFilterBlockViewModel
{ {
void Initialise(LootFilterBlock lootFilterBlock, LootFilterScriptViewModel parentScriptViewModel); void Initialise(ItemFilterBlock itemFilterBlock, ItemFilterScriptViewModel parentScriptViewModel);
bool IsDirty { get; set; } bool IsDirty { get; set; }
LootFilterBlock Block { get; } ItemFilterBlock Block { get; }
} }
internal class LootFilterBlockViewModel : FiltrationViewModelBase, ILootFilterBlockViewModel internal class ItemFilterBlockViewModel : FiltrationViewModelBase, IItemFilterBlockViewModel
{ {
private readonly IStaticDataService _staticDataService; private readonly IStaticDataService _staticDataService;
private readonly IReplaceColorsViewModel _replaceColorsViewModel; private readonly IReplaceColorsViewModel _replaceColorsViewModel;
private readonly MediaPlayer _mediaPlayer = new MediaPlayer(); private readonly MediaPlayer _mediaPlayer = new MediaPlayer();
private LootFilterScriptViewModel _parentScriptViewModel; private ItemFilterScriptViewModel _parentScriptViewModel;
private bool _displaySettingsPopupOpen; private bool _displaySettingsPopupOpen;
public LootFilterBlockViewModel(IStaticDataService staticDataService, IReplaceColorsViewModel replaceColorsViewModel) public ItemFilterBlockViewModel(IStaticDataService staticDataService, IReplaceColorsViewModel replaceColorsViewModel)
{ {
_staticDataService = staticDataService; _staticDataService = staticDataService;
_replaceColorsViewModel = replaceColorsViewModel; _replaceColorsViewModel = replaceColorsViewModel;
@ -48,24 +48,24 @@ namespace Filtration.ViewModels
AddFilterBlockItemCommand = new RelayCommand<Type>(OnAddFilterBlockItemCommand); AddFilterBlockItemCommand = new RelayCommand<Type>(OnAddFilterBlockItemCommand);
ToggleBlockActionCommand = new RelayCommand(OnToggleBlockActionCommand); ToggleBlockActionCommand = new RelayCommand(OnToggleBlockActionCommand);
AddAudioVisualBlockItemCommand = new RelayCommand<Type>(OnAddAudioVisualBlockItemCommand); AddAudioVisualBlockItemCommand = new RelayCommand<Type>(OnAddAudioVisualBlockItemCommand);
RemoveFilterBlockItemCommand = new RelayCommand<ILootFilterBlockItem>(OnRemoveFilterBlockItemCommand); RemoveFilterBlockItemCommand = new RelayCommand<IItemFilterBlockItem>(OnRemoveFilterBlockItemCommand);
RemoveAudioVisualBlockItemCommand = new RelayCommand<ILootFilterBlockItem>(OnRemoveAudioVisualBlockItemCommand); RemoveAudioVisualBlockItemCommand = new RelayCommand<IItemFilterBlockItem>(OnRemoveAudioVisualBlockItemCommand);
PlaySoundCommand = new RelayCommand(OnPlaySoundCommand, () => HasSound); PlaySoundCommand = new RelayCommand(OnPlaySoundCommand, () => HasSound);
} }
public void Initialise(LootFilterBlock lootFilterBlock, LootFilterScriptViewModel parentScriptViewModel) public void Initialise(ItemFilterBlock itemFilterBlock, ItemFilterScriptViewModel parentScriptViewModel)
{ {
if (lootFilterBlock == null || parentScriptViewModel == null) if (itemFilterBlock == null || parentScriptViewModel == null)
{ {
throw new ArgumentNullException("lootFilterBlock"); throw new ArgumentNullException("itemFilterBlock");
} }
_parentScriptViewModel = parentScriptViewModel; _parentScriptViewModel = parentScriptViewModel;
Block = lootFilterBlock; Block = itemFilterBlock;
lootFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged; itemFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged;
foreach (var blockItem in lootFilterBlock.BlockItems.OfType<IAudioVisualBlockItem>()) foreach (var blockItem in itemFilterBlock.BlockItems.OfType<IAudioVisualBlockItem>())
{ {
blockItem.PropertyChanged += OnAudioVisualBlockItemChanged; blockItem.PropertyChanged += OnAudioVisualBlockItemChanged;
} }
@ -84,24 +84,24 @@ namespace Filtration.ViewModels
public RelayCommand ReplaceColorsCommand { get; private set; } public RelayCommand ReplaceColorsCommand { get; private set; }
public RelayCommand<Type> AddFilterBlockItemCommand { get; private set; } public RelayCommand<Type> AddFilterBlockItemCommand { get; private set; }
public RelayCommand<Type> AddAudioVisualBlockItemCommand { get; private set; } public RelayCommand<Type> AddAudioVisualBlockItemCommand { get; private set; }
public RelayCommand<ILootFilterBlockItem> RemoveFilterBlockItemCommand { get; private set; } public RelayCommand<IItemFilterBlockItem> RemoveFilterBlockItemCommand { get; private set; }
public RelayCommand<ILootFilterBlockItem> RemoveAudioVisualBlockItemCommand { get; private set; } public RelayCommand<IItemFilterBlockItem> RemoveAudioVisualBlockItemCommand { get; private set; }
public RelayCommand PlaySoundCommand { get; private set; } public RelayCommand PlaySoundCommand { get; private set; }
public LootFilterBlock Block { get; private set; } public ItemFilterBlock Block { get; private set; }
public bool IsDirty { get; set; } public bool IsDirty { get; set; }
public ObservableCollection<ILootFilterBlockItem> FilterBlockItems public ObservableCollection<IItemFilterBlockItem> FilterBlockItems
{ {
get { return Block.BlockItems; } get { return Block.BlockItems; }
} }
public IEnumerable<ILootFilterBlockItem> SummaryBlockItems public IEnumerable<IItemFilterBlockItem> SummaryBlockItems
{ {
get { return Block.BlockItems.Where(b => !(b is IAudioVisualBlockItem)); } get { return Block.BlockItems.Where(b => !(b is IAudioVisualBlockItem)); }
} }
public IEnumerable<ILootFilterBlockItem> AudioVisualBlockItems public IEnumerable<IItemFilterBlockItem> AudioVisualBlockItems
{ {
get { return Block.BlockItems.Where(b => b is IAudioVisualBlockItem); } get { return Block.BlockItems.Where(b => b is IAudioVisualBlockItem); }
} }
@ -261,13 +261,13 @@ namespace Filtration.ViewModels
private void OnAddFilterBlockItemCommand(Type blockItemType) private void OnAddFilterBlockItemCommand(Type blockItemType)
{ {
if (!AddBlockItemAllowed(blockItemType)) return; if (!AddBlockItemAllowed(blockItemType)) return;
var newBlockItem = (ILootFilterBlockItem) Activator.CreateInstance(blockItemType); var newBlockItem = (IItemFilterBlockItem) Activator.CreateInstance(blockItemType);
FilterBlockItems.Add(newBlockItem); FilterBlockItems.Add(newBlockItem);
IsDirty = true; IsDirty = true;
} }
private void OnRemoveFilterBlockItemCommand(ILootFilterBlockItem blockItem) private void OnRemoveFilterBlockItemCommand(IItemFilterBlockItem blockItem)
{ {
FilterBlockItems.Remove(blockItem); FilterBlockItems.Remove(blockItem);
IsDirty = true; IsDirty = true;
@ -276,7 +276,7 @@ namespace Filtration.ViewModels
private void OnAddAudioVisualBlockItemCommand(Type blockItemType) private void OnAddAudioVisualBlockItemCommand(Type blockItemType)
{ {
if (!AddBlockItemAllowed(blockItemType)) return; if (!AddBlockItemAllowed(blockItemType)) return;
var newBlockItem = (ILootFilterBlockItem) Activator.CreateInstance(blockItemType); var newBlockItem = (IItemFilterBlockItem) Activator.CreateInstance(blockItemType);
newBlockItem.PropertyChanged += OnAudioVisualBlockItemChanged; newBlockItem.PropertyChanged += OnAudioVisualBlockItemChanged;
FilterBlockItems.Add(newBlockItem); FilterBlockItems.Add(newBlockItem);
@ -284,7 +284,7 @@ namespace Filtration.ViewModels
IsDirty = true; IsDirty = true;
} }
private void OnRemoveAudioVisualBlockItemCommand(ILootFilterBlockItem blockItem) private void OnRemoveAudioVisualBlockItemCommand(IItemFilterBlockItem blockItem)
{ {
blockItem.PropertyChanged -= OnAudioVisualBlockItemChanged; blockItem.PropertyChanged -= OnAudioVisualBlockItemChanged;
FilterBlockItems.Remove(blockItem); FilterBlockItems.Remove(blockItem);
@ -347,7 +347,7 @@ namespace Filtration.ViewModels
private bool AddBlockItemAllowed(Type type) private bool AddBlockItemAllowed(Type type)
{ {
var blockItem = (ILootFilterBlockItem)Activator.CreateInstance(type); var blockItem = (IItemFilterBlockItem)Activator.CreateInstance(type);
var blockCount = FilterBlockItems.Count(b => b.GetType() == type); var blockCount = FilterBlockItems.Count(b => b.GetType() == type);
return blockCount < blockItem.MaximumAllowed; return blockCount < blockItem.MaximumAllowed;
} }

View File

@ -10,29 +10,29 @@ using GalaSoft.MvvmLight.CommandWpf;
namespace Filtration.ViewModels namespace Filtration.ViewModels
{ {
internal interface ILootFilterScriptViewModel internal interface IItemFilterScriptViewModel
{ {
LootFilterScript Script { get; } ItemFilterScript Script { get; }
bool IsDirty { get; } bool IsDirty { get; }
string Description { get; set; } string Description { get; set; }
string DisplayName { get; } string DisplayName { get; }
void Initialise(LootFilterScript lootFilterScript); void Initialise(ItemFilterScript itemFilterScript);
ILootFilterBlockViewModel SelectedBlockViewModel { get; set; } IItemFilterBlockViewModel SelectedBlockViewModel { get; set; }
void RemoveDirtyFlag(); void RemoveDirtyFlag();
void AddSection(ILootFilterBlockViewModel targetBlockViewModel); void AddSection(IItemFilterBlockViewModel targetBlockViewModel);
void AddBlock(ILootFilterBlockViewModel targetBlockViewModel); void AddBlock(IItemFilterBlockViewModel targetBlockViewModel);
void CopyBlock(ILootFilterBlockViewModel targetBlockViewModel); void CopyBlock(IItemFilterBlockViewModel targetBlockViewModel);
void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel); void PasteBlock(IItemFilterBlockViewModel targetBlockViewModel);
} }
internal class LootFilterScriptViewModel : FiltrationViewModelBase, ILootFilterScriptViewModel internal class ItemFilterScriptViewModel : FiltrationViewModelBase, IItemFilterScriptViewModel
{ {
private readonly ILootFilterBlockViewModelFactory _lootFilterBlockViewModelFactory; private readonly IItemFilterBlockViewModelFactory _itemFilterBlockViewModelFactory;
private readonly ILootFilterBlockTranslator _blockTranslator; private readonly IItemFilterBlockTranslator _blockTranslator;
private bool _isDirty; private bool _isDirty;
private ILootFilterBlockViewModel _selectedBlockViewModel; private IItemFilterBlockViewModel _selectedBlockViewModel;
public LootFilterScriptViewModel(ILootFilterBlockViewModelFactory lootFilterBlockViewModelFactory, ILootFilterBlockTranslator blockTranslator) public ItemFilterScriptViewModel(IItemFilterBlockViewModelFactory itemFilterBlockViewModelFactory, IItemFilterBlockTranslator blockTranslator)
{ {
DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand, () => SelectedBlockViewModel != null); DeleteBlockCommand = new RelayCommand(OnDeleteBlockCommand, () => SelectedBlockViewModel != null);
MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand, () => SelectedBlockViewModel != null); MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand, () => SelectedBlockViewModel != null);
@ -43,9 +43,9 @@ namespace Filtration.ViewModels
AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => SelectedBlockViewModel != null); AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => SelectedBlockViewModel != null);
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => SelectedBlockViewModel != null); CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => SelectedBlockViewModel != null);
PasteBlockCommand = new RelayCommand(OnPasteBlockCommand, () => SelectedBlockViewModel != null); PasteBlockCommand = new RelayCommand(OnPasteBlockCommand, () => SelectedBlockViewModel != null);
_lootFilterBlockViewModelFactory = lootFilterBlockViewModelFactory; _itemFilterBlockViewModelFactory = itemFilterBlockViewModelFactory;
_blockTranslator = blockTranslator; _blockTranslator = blockTranslator;
LootFilterBlockViewModels = new ObservableCollection<ILootFilterBlockViewModel>(); ItemFilterBlockViewModels = new ObservableCollection<IItemFilterBlockViewModel>();
} }
@ -59,14 +59,14 @@ namespace Filtration.ViewModels
public RelayCommand CopyBlockCommand { get; private set; } public RelayCommand CopyBlockCommand { get; private set; }
public RelayCommand PasteBlockCommand { get; private set; } public RelayCommand PasteBlockCommand { get; private set; }
public ObservableCollection<ILootFilterBlockViewModel> LootFilterBlockViewModels { get; private set; } public ObservableCollection<IItemFilterBlockViewModel> ItemFilterBlockViewModels { get; private set; }
public IEnumerable<ILootFilterBlockViewModel> LootFilterSectionViewModels public IEnumerable<IItemFilterBlockViewModel> ItemFilterSectionViewModels
{ {
get { return LootFilterBlockViewModels.Where(b => b.Block.GetType() == typeof (LootFilterSection)); } get { return ItemFilterBlockViewModels.Where(b => b.Block.GetType() == typeof (ItemFilterSection)); }
} }
public ILootFilterBlockViewModel SectionBrowserSelectedViewModel { get; set; } public IItemFilterBlockViewModel SectionBrowserSelectedViewModel { get; set; }
public string Description public string Description
{ {
@ -79,7 +79,7 @@ namespace Filtration.ViewModels
} }
} }
public ILootFilterBlockViewModel SelectedBlockViewModel public IItemFilterBlockViewModel SelectedBlockViewModel
{ {
get { return _selectedBlockViewModel; } get { return _selectedBlockViewModel; }
set set
@ -89,7 +89,7 @@ namespace Filtration.ViewModels
} }
} }
public LootFilterScript Script { get; private set; } public ItemFilterScript Script { get; private set; }
public bool IsDirty public bool IsDirty
{ {
@ -102,12 +102,12 @@ namespace Filtration.ViewModels
private bool HasDirtyChildren private bool HasDirtyChildren
{ {
get { return LootFilterBlockViewModels.Any(vm => vm.IsDirty); } get { return ItemFilterBlockViewModels.Any(vm => vm.IsDirty); }
} }
private void CleanChildren() private void CleanChildren()
{ {
foreach (var vm in LootFilterBlockViewModels) foreach (var vm in ItemFilterBlockViewModels)
{ {
vm.IsDirty = false; vm.IsDirty = false;
} }
@ -136,16 +136,16 @@ namespace Filtration.ViewModels
get { return Script.FilePath; } get { return Script.FilePath; }
} }
public void Initialise(LootFilterScript lootFilterScript) public void Initialise(ItemFilterScript itemFilterScript)
{ {
LootFilterBlockViewModels.Clear(); ItemFilterBlockViewModels.Clear();
Script = lootFilterScript; Script = itemFilterScript;
foreach (var block in Script.LootFilterBlocks) foreach (var block in Script.ItemFilterBlocks)
{ {
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _itemFilterBlockViewModelFactory.Create();
vm.Initialise(block, this); vm.Initialise(block, this);
LootFilterBlockViewModels.Add(vm); ItemFilterBlockViewModels.Add(vm);
} }
} }
@ -154,9 +154,9 @@ namespace Filtration.ViewModels
CopyBlock(SelectedBlockViewModel); CopyBlock(SelectedBlockViewModel);
} }
public void CopyBlock(ILootFilterBlockViewModel targetBlockViewModel) public void CopyBlock(IItemFilterBlockViewModel targetBlockViewModel)
{ {
Clipboard.SetText(_blockTranslator.TranslateLootFilterBlockToString(SelectedBlockViewModel.Block)); Clipboard.SetText(_blockTranslator.TranslateItemFilterBlockToString(SelectedBlockViewModel.Block));
} }
private void OnPasteBlockCommand() private void OnPasteBlockCommand()
@ -164,26 +164,26 @@ namespace Filtration.ViewModels
PasteBlock(SelectedBlockViewModel); PasteBlock(SelectedBlockViewModel);
} }
public void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel) public void PasteBlock(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var clipboardText = Clipboard.GetText(); var clipboardText = Clipboard.GetText();
if (clipboardText.IsNullOrEmpty()) return; if (clipboardText.IsNullOrEmpty()) return;
var translatedBlock = _blockTranslator.TranslateStringToLootFilterBlock(clipboardText); var translatedBlock = _blockTranslator.TranslateStringToItemFilterBlock(clipboardText);
if (translatedBlock == null) return; if (translatedBlock == null) return;
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _itemFilterBlockViewModelFactory.Create();
vm.Initialise(translatedBlock, this); vm.Initialise(translatedBlock, this);
if (LootFilterBlockViewModels.Count > 0) if (ItemFilterBlockViewModels.Count > 0)
{ {
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock); Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm); ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
} }
else else
{ {
Script.LootFilterBlocks.Add(translatedBlock); Script.ItemFilterBlocks.Add(translatedBlock);
LootFilterBlockViewModels.Add(vm); ItemFilterBlockViewModels.Add(vm);
} }
SelectedBlockViewModel = vm; SelectedBlockViewModel = vm;
@ -197,18 +197,18 @@ namespace Filtration.ViewModels
} }
public void MoveBlockToTop(ILootFilterBlockViewModel targetBlockViewModel) public void MoveBlockToTop(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel); var currentIndex = ItemFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex > 0) if (currentIndex > 0)
{ {
var block = targetBlockViewModel.Block; var block = targetBlockViewModel.Block;
Script.LootFilterBlocks.Remove(block); Script.ItemFilterBlocks.Remove(block);
Script.LootFilterBlocks.Insert(0, block); Script.ItemFilterBlocks.Insert(0, block);
LootFilterBlockViewModels.Move(currentIndex, 0); ItemFilterBlockViewModels.Move(currentIndex, 0);
_isDirty = true; _isDirty = true;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("ItemFilterSectionViewModels");
} }
} }
@ -217,19 +217,19 @@ namespace Filtration.ViewModels
MoveBlockUp(SelectedBlockViewModel); MoveBlockUp(SelectedBlockViewModel);
} }
public void MoveBlockUp(ILootFilterBlockViewModel targetBlockViewModel) public void MoveBlockUp(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel); var currentIndex = ItemFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex > 0) if (currentIndex > 0)
{ {
var block = targetBlockViewModel.Block; var block = targetBlockViewModel.Block;
var blockPos = Script.LootFilterBlocks.IndexOf(block); var blockPos = Script.ItemFilterBlocks.IndexOf(block);
Script.LootFilterBlocks.RemoveAt(blockPos); Script.ItemFilterBlocks.RemoveAt(blockPos);
Script.LootFilterBlocks.Insert(blockPos - 1, block); Script.ItemFilterBlocks.Insert(blockPos - 1, block);
LootFilterBlockViewModels.Move(currentIndex, currentIndex - 1); ItemFilterBlockViewModels.Move(currentIndex, currentIndex - 1);
_isDirty = true; _isDirty = true;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("ItemFilterSectionViewModels");
} }
} }
@ -238,19 +238,19 @@ namespace Filtration.ViewModels
MoveBlockDown(SelectedBlockViewModel); MoveBlockDown(SelectedBlockViewModel);
} }
public void MoveBlockDown(ILootFilterBlockViewModel targetBlockViewModel) public void MoveBlockDown(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel); var currentIndex = ItemFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex < LootFilterBlockViewModels.Count - 1) if (currentIndex < ItemFilterBlockViewModels.Count - 1)
{ {
var block = targetBlockViewModel.Block; var block = targetBlockViewModel.Block;
var blockPos = Script.LootFilterBlocks.IndexOf(block); var blockPos = Script.ItemFilterBlocks.IndexOf(block);
Script.LootFilterBlocks.RemoveAt(blockPos); Script.ItemFilterBlocks.RemoveAt(blockPos);
Script.LootFilterBlocks.Insert(blockPos + 1, block); Script.ItemFilterBlocks.Insert(blockPos + 1, block);
LootFilterBlockViewModels.Move(currentIndex, currentIndex + 1); ItemFilterBlockViewModels.Move(currentIndex, currentIndex + 1);
_isDirty = true; _isDirty = true;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("ItemFilterSectionViewModels");
} }
} }
@ -259,18 +259,18 @@ namespace Filtration.ViewModels
MoveBlockToBottom(SelectedBlockViewModel); MoveBlockToBottom(SelectedBlockViewModel);
} }
public void MoveBlockToBottom(ILootFilterBlockViewModel targetBlockViewModel) public void MoveBlockToBottom(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var currentIndex = LootFilterBlockViewModels.IndexOf(targetBlockViewModel); var currentIndex = ItemFilterBlockViewModels.IndexOf(targetBlockViewModel);
if (currentIndex < LootFilterBlockViewModels.Count - 1) if (currentIndex < ItemFilterBlockViewModels.Count - 1)
{ {
var block = targetBlockViewModel.Block; var block = targetBlockViewModel.Block;
Script.LootFilterBlocks.Remove(block); Script.ItemFilterBlocks.Remove(block);
Script.LootFilterBlocks.Add(block); Script.ItemFilterBlocks.Add(block);
LootFilterBlockViewModels.Move(currentIndex, LootFilterBlockViewModels.Count - 1); ItemFilterBlockViewModels.Move(currentIndex, ItemFilterBlockViewModels.Count - 1);
_isDirty = true; _isDirty = true;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("ItemFilterSectionViewModels");
} }
} }
@ -279,21 +279,21 @@ namespace Filtration.ViewModels
AddBlock(SelectedBlockViewModel); AddBlock(SelectedBlockViewModel);
} }
public void AddBlock(ILootFilterBlockViewModel targetBlockViewModel) public void AddBlock(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _itemFilterBlockViewModelFactory.Create();
var newBlock = new LootFilterBlock(); var newBlock = new ItemFilterBlock();
vm.Initialise(newBlock, this); vm.Initialise(newBlock, this);
if (targetBlockViewModel != null) if (targetBlockViewModel != null)
{ {
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock); Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm); ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
} }
else else
{ {
Script.LootFilterBlocks.Add(newBlock); Script.ItemFilterBlocks.Add(newBlock);
LootFilterBlockViewModels.Add(vm); ItemFilterBlockViewModels.Add(vm);
} }
SelectedBlockViewModel = vm; SelectedBlockViewModel = vm;
@ -305,17 +305,17 @@ namespace Filtration.ViewModels
AddSection(SelectedBlockViewModel); AddSection(SelectedBlockViewModel);
} }
public void AddSection(ILootFilterBlockViewModel targetBlockViewModel) public void AddSection(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var vm = _lootFilterBlockViewModelFactory.Create(); var vm = _itemFilterBlockViewModelFactory.Create();
var newSection = new LootFilterSection { Description = "New Section" }; var newSection = new ItemFilterSection { Description = "New Section" };
vm.Initialise(newSection, this); vm.Initialise(newSection, this);
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newSection); Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newSection);
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm); ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
_isDirty = true; _isDirty = true;
SelectedBlockViewModel = vm; SelectedBlockViewModel = vm;
RaisePropertyChanged("LootFilterSectionViewModels"); RaisePropertyChanged("ItemFilterSectionViewModels");
} }
private void OnDeleteBlockCommand() private void OnDeleteBlockCommand()
@ -323,15 +323,15 @@ namespace Filtration.ViewModels
DeleteBlock(SelectedBlockViewModel); DeleteBlock(SelectedBlockViewModel);
} }
public void DeleteBlock(ILootFilterBlockViewModel targetBlockViewModel) public void DeleteBlock(IItemFilterBlockViewModel targetBlockViewModel)
{ {
var result = MessageBox.Show("Are you sure you wish to delete this block?", "Delete Confirmation", var result = MessageBox.Show("Are you sure you wish to delete this block?", "Delete Confirmation",
MessageBoxButton.YesNo, MessageBoxImage.Question); MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes) if (result == MessageBoxResult.Yes)
{ {
Script.LootFilterBlocks.Remove(targetBlockViewModel.Block); Script.ItemFilterBlocks.Remove(targetBlockViewModel.Block);
LootFilterBlockViewModels.Remove(targetBlockViewModel); ItemFilterBlockViewModels.Remove(targetBlockViewModel);
_isDirty = true; _isDirty = true;
} }
SelectedBlockViewModel = null; SelectedBlockViewModel = null;

View File

@ -21,26 +21,26 @@ namespace Filtration.ViewModels
internal class MainWindowViewModel : FiltrationViewModelBase, IMainWindowViewModel internal class MainWindowViewModel : FiltrationViewModelBase, IMainWindowViewModel
{ {
private LootFilterScript _loadedScript; private ItemFilterScript _loadedScript;
private readonly ILootFilterScriptViewModelFactory _lootFilterScriptViewModelFactory; private readonly IItemFilterScriptViewModelFactory _itemFilterScriptViewModelFactory;
private readonly ILootFilterPersistenceService _persistenceService; private readonly IItemFilterPersistenceService _persistenceService;
private readonly ILootFilterScriptTranslator _lootFilterScriptTranslator; private readonly IItemFilterScriptTranslator _itemFilterScriptTranslator;
private readonly IReplaceColorsViewModel _replaceColorsViewModel; private readonly IReplaceColorsViewModel _replaceColorsViewModel;
private ILootFilterScriptViewModel _currentScriptViewModel; private IItemFilterScriptViewModel _currentScriptViewModel;
private readonly ObservableCollection<ILootFilterScriptViewModel> _scriptViewModels; private readonly ObservableCollection<IItemFilterScriptViewModel> _scriptViewModels;
public MainWindowViewModel(ILootFilterScriptViewModelFactory lootFilterScriptViewModelFactory, public MainWindowViewModel(IItemFilterScriptViewModelFactory itemFilterScriptViewModelFactory,
ILootFilterPersistenceService persistenceService, IItemFilterPersistenceService persistenceService,
ILootFilterScriptTranslator lootFilterScriptTranslator, IItemFilterScriptTranslator itemFilterScriptTranslator,
IReplaceColorsViewModel replaceColorsViewModel) IReplaceColorsViewModel replaceColorsViewModel)
{ {
_lootFilterScriptViewModelFactory = lootFilterScriptViewModelFactory; _itemFilterScriptViewModelFactory = itemFilterScriptViewModelFactory;
_persistenceService = persistenceService; _persistenceService = persistenceService;
_lootFilterScriptTranslator = lootFilterScriptTranslator; _itemFilterScriptTranslator = itemFilterScriptTranslator;
_replaceColorsViewModel = replaceColorsViewModel; _replaceColorsViewModel = replaceColorsViewModel;
_scriptViewModels = new ObservableCollection<ILootFilterScriptViewModel>(); _scriptViewModels = new ObservableCollection<IItemFilterScriptViewModel>();
OpenAboutWindowCommand = new RelayCommand(OnOpenAboutWindowCommand); OpenAboutWindowCommand = new RelayCommand(OnOpenAboutWindowCommand);
OpenScriptCommand = new RelayCommand(OnOpenScriptCommand); OpenScriptCommand = new RelayCommand(OnOpenScriptCommand);
@ -50,12 +50,12 @@ namespace Filtration.ViewModels
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null); CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null);
PasteCommand = new RelayCommand(OnPasteCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null); PasteCommand = new RelayCommand(OnPasteCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null);
NewScriptCommand = new RelayCommand(OnNewScriptCommand); NewScriptCommand = new RelayCommand(OnNewScriptCommand);
CloseScriptCommand = new RelayCommand<ILootFilterScriptViewModel>(OnCloseScriptCommand, v => CurrentScriptViewModel != null); CloseScriptCommand = new RelayCommand<IItemFilterScriptViewModel>(OnCloseScriptCommand, v => CurrentScriptViewModel != null);
ReplaceColorsCommand = new RelayCommand(OnReplaceColorsCommand, () => CurrentScriptViewModel != null); ReplaceColorsCommand = new RelayCommand(OnReplaceColorsCommand, () => CurrentScriptViewModel != null);
//LoadScriptFromFile("C:\\ThioleLootFilter.txt"); //LoadScriptFromFile("C:\\ThioleLootFilter.txt");
SetLootFilterScriptDirectory(); SetItemFilterScriptDirectory();
} }
public RelayCommand OpenScriptCommand { get; private set; } public RelayCommand OpenScriptCommand { get; private set; }
@ -65,11 +65,11 @@ namespace Filtration.ViewModels
public RelayCommand PasteCommand { get; private set; } public RelayCommand PasteCommand { get; private set; }
public RelayCommand CopyScriptCommand { get; private set; } public RelayCommand CopyScriptCommand { get; private set; }
public RelayCommand NewScriptCommand { get; private set; } public RelayCommand NewScriptCommand { get; private set; }
public RelayCommand<ILootFilterScriptViewModel> CloseScriptCommand { get; private set; } public RelayCommand<IItemFilterScriptViewModel> CloseScriptCommand { get; private set; }
public RelayCommand OpenAboutWindowCommand { get; private set; } public RelayCommand OpenAboutWindowCommand { get; private set; }
public RelayCommand ReplaceColorsCommand { get; private set; } public RelayCommand ReplaceColorsCommand { get; private set; }
public ObservableCollection<ILootFilterScriptViewModel> ScriptViewModels public ObservableCollection<IItemFilterScriptViewModel> ScriptViewModels
{ {
get { return _scriptViewModels; } get { return _scriptViewModels; }
} }
@ -85,7 +85,7 @@ namespace Filtration.ViewModels
} }
[DoNotWire] [DoNotWire]
public ILootFilterScriptViewModel CurrentScriptViewModel public IItemFilterScriptViewModel CurrentScriptViewModel
{ {
get { return _currentScriptViewModel; } get { return _currentScriptViewModel; }
set set
@ -114,7 +114,7 @@ namespace Filtration.ViewModels
var openFileDialog = new OpenFileDialog var openFileDialog = new OpenFileDialog
{ {
Filter = "Filter Files (*.filter)|*.filter|All Files (*.*)|*.*", Filter = "Filter Files (*.filter)|*.filter|All Files (*.*)|*.*",
InitialDirectory = _persistenceService.LootFilterScriptDirectory InitialDirectory = _persistenceService.ItemFilterScriptDirectory
}; };
if (openFileDialog.ShowDialog() != true) return; if (openFileDialog.ShowDialog() != true) return;
@ -126,7 +126,7 @@ namespace Filtration.ViewModels
{ {
try try
{ {
_loadedScript = _persistenceService.LoadLootFilterScript(path); _loadedScript = _persistenceService.LoadItemFilterScript(path);
} }
catch (Exception e) catch (Exception e)
{ {
@ -135,18 +135,18 @@ namespace Filtration.ViewModels
return; return;
} }
var newViewModel = _lootFilterScriptViewModelFactory.Create(); var newViewModel = _itemFilterScriptViewModelFactory.Create();
newViewModel.Initialise(_loadedScript); newViewModel.Initialise(_loadedScript);
ScriptViewModels.Add(newViewModel); ScriptViewModels.Add(newViewModel);
CurrentScriptViewModel = newViewModel; CurrentScriptViewModel = newViewModel;
} }
private void SetLootFilterScriptDirectory() private void SetItemFilterScriptDirectory()
{ {
var defaultDir = _persistenceService.DefaultPathOfExileDirectory(); var defaultDir = _persistenceService.DefaultPathOfExileDirectory();
if (!string.IsNullOrEmpty(defaultDir)) if (!string.IsNullOrEmpty(defaultDir))
{ {
_persistenceService.LootFilterScriptDirectory = defaultDir; _persistenceService.ItemFilterScriptDirectory = defaultDir;
} }
else else
{ {
@ -159,7 +159,7 @@ namespace Filtration.ViewModels
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
_persistenceService.LootFilterScriptDirectory = dlg.SelectedPath; _persistenceService.ItemFilterScriptDirectory = dlg.SelectedPath;
} }
} }
} }
@ -176,7 +176,7 @@ namespace Filtration.ViewModels
try try
{ {
_persistenceService.SaveLootFilterScript(CurrentScriptViewModel.Script); _persistenceService.SaveItemFilterScript(CurrentScriptViewModel.Script);
CurrentScriptViewModel.RemoveDirtyFlag(); CurrentScriptViewModel.RemoveDirtyFlag();
} }
catch (Exception e) catch (Exception e)
@ -195,7 +195,7 @@ namespace Filtration.ViewModels
{ {
DefaultExt = ".filter", DefaultExt = ".filter",
Filter = @"Filter Files (*.filter)|*.filter|All Files (*.*)|*.*", Filter = @"Filter Files (*.filter)|*.filter|All Files (*.*)|*.*",
InitialDirectory = _persistenceService.LootFilterScriptDirectory InitialDirectory = _persistenceService.ItemFilterScriptDirectory
}; };
var result = saveDialog.ShowDialog(); var result = saveDialog.ShowDialog();
@ -206,7 +206,7 @@ namespace Filtration.ViewModels
try try
{ {
CurrentScriptViewModel.Script.FilePath = saveDialog.FileName; CurrentScriptViewModel.Script.FilePath = saveDialog.FileName;
_persistenceService.SaveLootFilterScript(CurrentScriptViewModel.Script); _persistenceService.SaveItemFilterScript(CurrentScriptViewModel.Script);
CurrentScriptViewModel.RemoveDirtyFlag(); CurrentScriptViewModel.RemoveDirtyFlag();
} }
catch (Exception e) catch (Exception e)
@ -245,7 +245,7 @@ namespace Filtration.ViewModels
private void OnCopyScriptCommand() private void OnCopyScriptCommand()
{ {
Clipboard.SetText(_lootFilterScriptTranslator.TranslateLootFilterScriptToString(_currentScriptViewModel.Script)); Clipboard.SetText(_itemFilterScriptTranslator.TranslateItemFilterScriptToString(_currentScriptViewModel.Script));
} }
private void OnCopyBlockCommand() private void OnCopyBlockCommand()
@ -260,15 +260,15 @@ namespace Filtration.ViewModels
private void OnNewScriptCommand() private void OnNewScriptCommand()
{ {
var newScript = new LootFilterScript(); var newScript = new ItemFilterScript();
var newViewModel = _lootFilterScriptViewModelFactory.Create(); var newViewModel = _itemFilterScriptViewModelFactory.Create();
newViewModel.Initialise(newScript); newViewModel.Initialise(newScript);
newViewModel.Description = "New Script"; newViewModel.Description = "New Script";
ScriptViewModels.Add(newViewModel); ScriptViewModels.Add(newViewModel);
CurrentScriptViewModel = newViewModel; CurrentScriptViewModel = newViewModel;
} }
private void OnCloseScriptCommand(ILootFilterScriptViewModel scriptViewModel) private void OnCloseScriptCommand(IItemFilterScriptViewModel scriptViewModel)
{ {
CurrentScriptViewModel = scriptViewModel; CurrentScriptViewModel = scriptViewModel;
if (!CurrentScriptViewModel.IsDirty) if (!CurrentScriptViewModel.IsDirty)

View File

@ -8,13 +8,13 @@ namespace Filtration.ViewModels
{ {
internal interface IReplaceColorsViewModel internal interface IReplaceColorsViewModel
{ {
void Initialise(LootFilterScript lootFilterScript, LootFilterBlock initialiseFromBlock); void Initialise(ItemFilterScript itemFilterScript, ItemFilterBlock initialiseFromBlock);
void Initialise(LootFilterScript lootFilterScript); void Initialise(ItemFilterScript itemFilterScript);
} }
internal class ReplaceColorsViewModel : FiltrationViewModelBase, IReplaceColorsViewModel internal class ReplaceColorsViewModel : FiltrationViewModelBase, IReplaceColorsViewModel
{ {
private LootFilterScript _lootFilterScript; private ItemFilterScript _itemFilterScript;
private ReplaceColorsParameterSet _replaceColorsParameterSet; private ReplaceColorsParameterSet _replaceColorsParameterSet;
public ReplaceColorsViewModel() public ReplaceColorsViewModel()
@ -24,7 +24,7 @@ namespace Filtration.ViewModels
public RelayCommand ReplaceColorsCommand { get; private set; } public RelayCommand ReplaceColorsCommand { get; private set; }
public void Initialise(LootFilterScript lootFilterScript, LootFilterBlock initialiseFromBlock) public void Initialise(ItemFilterScript itemFilterScript, ItemFilterBlock initialiseFromBlock)
{ {
_replaceColorsParameterSet = new ReplaceColorsParameterSet(); _replaceColorsParameterSet = new ReplaceColorsParameterSet();
@ -55,7 +55,7 @@ namespace Filtration.ViewModels
_replaceColorsParameterSet.NewBorderColor = existingBlockColor; _replaceColorsParameterSet.NewBorderColor = existingBlockColor;
} }
_lootFilterScript = lootFilterScript; _itemFilterScript = itemFilterScript;
} }
public Color NewTextColor public Color NewTextColor
@ -159,15 +159,15 @@ namespace Filtration.ViewModels
} }
} }
public void Initialise(LootFilterScript lootFilterScript) public void Initialise(ItemFilterScript itemFilterScript)
{ {
_replaceColorsParameterSet = new ReplaceColorsParameterSet(); _replaceColorsParameterSet = new ReplaceColorsParameterSet();
_lootFilterScript = lootFilterScript; _itemFilterScript = itemFilterScript;
} }
private void OnReplaceColorsCommand() private void OnReplaceColorsCommand()
{ {
_lootFilterScript.ReplaceColors(_replaceColorsParameterSet); _itemFilterScript.ReplaceColors(_replaceColorsParameterSet);
} }
} }

View File

@ -9,18 +9,18 @@ namespace Filtration.Views
{ {
public override DataTemplate SelectTemplate(object item, DependencyObject container) public override DataTemplate SelectTemplate(object item, DependencyObject container)
{ {
var viewModel = item as LootFilterBlockViewModel; var viewModel = item as ItemFilterBlockViewModel;
var element = container as FrameworkElement; var element = container as FrameworkElement;
if (viewModel == null || element == null) if (viewModel == null || element == null)
return null; return null;
if (viewModel.Block is LootFilterSection) if (viewModel.Block is ItemFilterSection)
{ {
return element.FindResource("LootFilterSectionTemplate") as DataTemplate; return element.FindResource("ItemFilterSectionTemplate") as DataTemplate;
} }
return element.FindResource("LootFilterBlockTemplate") as DataTemplate; return element.FindResource("ItemFilterBlockTemplate") as DataTemplate;
} }
} }
} }

View File

@ -1,4 +1,4 @@
<UserControl x:Class="Filtration.Views.LootFilterBlockDisplaySettingsView" <UserControl x:Class="Filtration.Views.ItemFilterBlockDisplaySettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -10,7 +10,7 @@
xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes" xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes"
xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase"
mc:Ignorable="d" mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
d:DesignHeight="120" d:DesignWidth="175"> d:DesignHeight="120" d:DesignWidth="175">
<UserControl.Resources> <UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>

View File

@ -0,0 +1,10 @@
namespace Filtration.Views
{
public partial class ItemFilterBlockDisplaySettingsView
{
public ItemFilterBlockDisplaySettingsView()
{
InitializeComponent();
}
}
}

View File

@ -1,4 +1,4 @@
<UserControl x:Class="Filtration.Views.LootFilterBlockView" <UserControl x:Class="Filtration.Views.ItemFilterBlockView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -11,7 +11,7 @@
xmlns:enums="clr-namespace:Filtration.Enums" xmlns:enums="clr-namespace:Filtration.Enums"
xmlns:extensions="clr-namespace:Filtration.Extensions" xmlns:extensions="clr-namespace:Filtration.Extensions"
mc:Ignorable="d" mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
d:DesignHeight="200" d:DesignWidth="800"> d:DesignHeight="200" d:DesignWidth="800">
<UserControl.Resources> <UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>
@ -114,7 +114,7 @@
AllowsTransparency="True" AllowsTransparency="True"
HorizontalOffset="-5" HorizontalOffset="-5"
Width="250"> Width="250">
<views:LootFilterBlockDisplaySettingsView /> <views:ItemFilterBlockDisplaySettingsView />
</Popup> </Popup>
</Grid> </Grid>
</Expander.Header> </Expander.Header>

View File

@ -1,8 +1,8 @@
namespace Filtration.Views namespace Filtration.Views
{ {
public partial class LootFilterBlockView public partial class ItemFilterBlockView
{ {
public LootFilterBlockView() public ItemFilterBlockView()
{ {
InitializeComponent(); InitializeComponent();
} }

View File

@ -1,4 +1,4 @@
<UserControl x:Class="Filtration.Views.LootFilterScriptView" <UserControl x:Class="Filtration.Views.ItemFilterScriptView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -7,19 +7,19 @@
xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:viewModels="clr-namespace:Filtration.ViewModels"
xmlns:userControls="clr-namespace:Filtration.UserControls" xmlns:userControls="clr-namespace:Filtration.UserControls"
mc:Ignorable="d" mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterScriptViewModel}" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterScriptViewModel}"
d:DesignHeight="300" d:DesignWidth="600"> d:DesignHeight="300" d:DesignWidth="600">
<UserControl.Resources> <UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary> <ResourceDictionary>
<!-- ReSharper disable once Xaml.RedundantResource --> <!-- ReSharper disable once Xaml.RedundantResource -->
<DataTemplate x:Key="LootFilterBlockTemplate"> <DataTemplate x:Key="ItemFilterBlockTemplate">
<views:LootFilterBlockView Margin="0,2,0,2" /> <views:ItemFilterBlockView Margin="0,2,0,2" />
</DataTemplate> </DataTemplate>
<!-- ReSharper disable once Xaml.RedundantResource --> <!-- ReSharper disable once Xaml.RedundantResource -->
<DataTemplate x:Key="LootFilterSectionTemplate"> <DataTemplate x:Key="ItemFilterSectionTemplate">
<views:LootFilterSectionView Margin="0,2,0,2" /> <views:ItemFilterSectionView Margin="0,2,0,2" />
</DataTemplate> </DataTemplate>
<views:BlockTemplateSelector x:Key="BlockTemplateSelector" /> <views:BlockTemplateSelector x:Key="BlockTemplateSelector" />
</ResourceDictionary> </ResourceDictionary>
@ -67,7 +67,7 @@
</TextBlock.LayoutTransform> </TextBlock.LayoutTransform>
</TextBlock> </TextBlock>
</Expander.Header> </Expander.Header>
<ListBox ItemsSource="{Binding LootFilterSectionViewModels}" <ListBox ItemsSource="{Binding ItemFilterSectionViewModels}"
SelectedItem="{Binding SectionBrowserSelectedViewModel}" SelectedItem="{Binding SectionBrowserSelectedViewModel}"
x:Name="SectionBrowserListBox" x:Name="SectionBrowserListBox"
SelectionChanged="SectionBrowserListBox_OnSelectionChanged" SelectionChanged="SectionBrowserListBox_OnSelectionChanged"
@ -79,7 +79,7 @@
</ListBox.ItemTemplate> </ListBox.ItemTemplate>
</ListBox> </ListBox>
</Expander> </Expander>
<userControls:AutoScrollingListBox ItemsSource="{Binding LootFilterBlockViewModels}" <userControls:AutoScrollingListBox ItemsSource="{Binding ItemFilterBlockViewModels}"
Margin="5,5,5,5" Margin="5,5,5,5"
Padding="5" Padding="5"
HorizontalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"

View File

@ -2,9 +2,9 @@
namespace Filtration.Views namespace Filtration.Views
{ {
public partial class LootFilterScriptView public partial class ItemFilterScriptView
{ {
public LootFilterScriptView() public ItemFilterScriptView()
{ {
InitializeComponent(); InitializeComponent();
} }

View File

@ -1,10 +1,10 @@
<UserControl x:Class="Filtration.Views.LootFilterSectionView" <UserControl x:Class="Filtration.Views.ItemFilterSectionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:viewModels="clr-namespace:Filtration.ViewModels"
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}" d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="50" d:DesignWidth="300"> d:DesignHeight="50" d:DesignWidth="300">
<UserControl.Resources> <UserControl.Resources>

View File

@ -1,8 +1,8 @@
namespace Filtration.Views namespace Filtration.Views
{ {
public partial class LootFilterSectionView public partial class ItemFilterSectionView
{ {
public LootFilterSectionView() public ItemFilterSectionView()
{ {
InitializeComponent(); InitializeComponent();
} }

View File

@ -1,10 +0,0 @@
namespace Filtration.Views
{
public partial class LootFilterBlockDisplaySettingsView
{
public LootFilterBlockDisplaySettingsView()
{
InitializeComponent();
}
}
}

View File

@ -58,7 +58,7 @@
<TabControl.ContentTemplate> <TabControl.ContentTemplate>
<DataTemplate> <DataTemplate>
<controls:MetroContentControl> <controls:MetroContentControl>
<views:LootFilterScriptView DataContext="{Binding}" /> <views:ItemFilterScriptView DataContext="{Binding}" />
</controls:MetroContentControl> </controls:MetroContentControl>
</DataTemplate> </DataTemplate>
</TabControl.ContentTemplate> </TabControl.ContentTemplate>

View File

@ -15,8 +15,8 @@ namespace Filtration.WindsorInstallers
.LifeStyle.Singleton); .LifeStyle.Singleton);
container.Register( container.Register(
Component.For<ILootFilterPersistenceService>() Component.For<IItemFilterPersistenceService>()
.ImplementedBy<LootFilterPersistenceService>() .ImplementedBy<ItemFilterPersistenceService>()
.LifeStyle.Singleton); .LifeStyle.Singleton);
container.Register( container.Register(

View File

@ -10,13 +10,13 @@ namespace Filtration.WindsorInstallers
public void Install(IWindsorContainer container, IConfigurationStore store) public void Install(IWindsorContainer container, IConfigurationStore store)
{ {
container.Register( container.Register(
Component.For<ILootFilterScriptTranslator>() Component.For<IItemFilterScriptTranslator>()
.ImplementedBy<LootFilterScriptTranslator>() .ImplementedBy<ItemFilterScriptTranslator>()
.LifeStyle.Singleton); .LifeStyle.Singleton);
container.Register( container.Register(
Component.For<ILootFilterBlockTranslator>() Component.For<IItemFilterBlockTranslator>()
.ImplementedBy<LootFilterBlockTranslator>() .ImplementedBy<ItemFilterBlockTranslator>()
.LifeStyle.Singleton); .LifeStyle.Singleton);
} }
} }

View File

@ -16,13 +16,13 @@ namespace Filtration.WindsorInstallers
.LifeStyle.Transient); .LifeStyle.Transient);
container.Register( container.Register(
Component.For<ILootFilterBlockViewModel>() Component.For<IItemFilterBlockViewModel>()
.ImplementedBy<LootFilterBlockViewModel>() .ImplementedBy<ItemFilterBlockViewModel>()
.LifeStyle.Transient); .LifeStyle.Transient);
container.Register( container.Register(
Component.For<ILootFilterScriptViewModel>() Component.For<IItemFilterScriptViewModel>()
.ImplementedBy<LootFilterScriptViewModel>() .ImplementedBy<ItemFilterScriptViewModel>()
.LifeStyle.Transient); .LifeStyle.Transient);
container.Register( container.Register(
@ -32,10 +32,10 @@ namespace Filtration.WindsorInstallers
container.AddFacility<TypedFactoryFacility>(); container.AddFacility<TypedFactoryFacility>();
container.Register( container.Register(
Component.For<ILootFilterBlockViewModelFactory>().AsFactory()); Component.For<IItemFilterBlockViewModelFactory>().AsFactory());
container.Register( container.Register(
Component.For<ILootFilterScriptViewModelFactory>().AsFactory()); Component.For<IItemFilterScriptViewModelFactory>().AsFactory());
} }
} }
} }