Replaced all instances of "LootFilter" with "ItemFilter"
This commit is contained in:
parent
5bd5ce8b0f
commit
d48f7a58ec
|
@ -46,13 +46,13 @@
|
|||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Models\TestLootFilterBlock.cs" />
|
||||
<Compile Include="Models\TestLootFilterScript.cs" />
|
||||
<Compile Include="Models\TestItemFilterBlock.cs" />
|
||||
<Compile Include="Models\TestItemFilterScript.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Services\TestLootFilterPersistenceService.cs" />
|
||||
<Compile Include="Services\TestItemFilterPersistenceService.cs" />
|
||||
<Compile Include="Services\TestStaticDataService.cs" />
|
||||
<Compile Include="Translators\TestLootFilterBlockTranslator.cs" />
|
||||
<Compile Include="Translators\TestLootFilterScriptTranslator.cs" />
|
||||
<Compile Include="Translators\TestItemFilterBlockTranslator.cs" />
|
||||
<Compile Include="Translators\TestItemFilterScriptTranslator.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
@ -70,7 +70,7 @@
|
|||
<Content Include="Resources\testscript.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Resources\ThioleLootFilter.txt">
|
||||
<Content Include="Resources\ThioleItemFilter.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
|
|
@ -5,13 +5,13 @@ using NUnit.Framework;
|
|||
namespace Filtration.Tests.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLootFilterBlock
|
||||
public class TestItemFilterBlock
|
||||
{
|
||||
[Test]
|
||||
public void LootFilterBlock_BlockCount_ReturnsCorrectNumber()
|
||||
public void ItemFilterBlock_BlockCount_ReturnsCorrectNumber()
|
||||
{
|
||||
// Arrange
|
||||
var block = new LootFilterBlock();
|
||||
var block = new ItemFilterBlock();
|
||||
block.BlockItems.Add(new ItemLevelBlockItem());
|
||||
block.BlockItems.Add(new ItemLevelBlockItem());
|
||||
block.BlockItems.Add(new ItemLevelBlockItem());
|
||||
|
@ -25,10 +25,10 @@ namespace Filtration.Tests.Models
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void LootFilterBlock_AddBlockItemAllowed_LessThanMaximum_ReturnsTrue()
|
||||
public void ItemFilterBlock_AddBlockItemAllowed_LessThanMaximum_ReturnsTrue()
|
||||
{
|
||||
// Arrange
|
||||
var block = new LootFilterBlock();
|
||||
var block = new ItemFilterBlock();
|
||||
block.BlockItems.Add(new ItemLevelBlockItem());
|
||||
|
||||
// Act
|
||||
|
@ -39,10 +39,10 @@ namespace Filtration.Tests.Models
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void LootFilterBlock_AddBlockItemAllowed_MoreThanMaximum_ReturnsFalse()
|
||||
public void ItemFilterBlock_AddBlockItemAllowed_MoreThanMaximum_ReturnsFalse()
|
||||
{
|
||||
// Arrange
|
||||
var block = new LootFilterBlock();
|
||||
var block = new ItemFilterBlock();
|
||||
block.BlockItems.Add(new SoundBlockItem());
|
||||
|
||||
// Act
|
|
@ -1,9 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
using Filtration.Models;
|
||||
using Filtration.Models.BlockItemTypes;
|
||||
|
@ -12,14 +8,14 @@ using NUnit.Framework;
|
|||
namespace Filtration.Tests.Models
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLootFilterScript
|
||||
public class TestItemFilterScript
|
||||
{
|
||||
[Test]
|
||||
public void Validate_AtLeastOneBlock_Fail_ReturnsListWithCorrectError()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
var script = new LootFilterScript();
|
||||
var script = new ItemFilterScript();
|
||||
|
||||
// Act
|
||||
var result = script.Validate();
|
||||
|
@ -33,9 +29,9 @@ namespace Filtration.Tests.Models
|
|||
{
|
||||
// Arrange
|
||||
|
||||
var script = new LootFilterScript
|
||||
var script = new ItemFilterScript
|
||||
{
|
||||
LootFilterBlocks = new ObservableCollection<LootFilterBlock> {new LootFilterBlock()}
|
||||
ItemFilterBlocks = new ObservableCollection<ItemFilterBlock> {new ItemFilterBlock()}
|
||||
};
|
||||
|
||||
// Act
|
||||
|
@ -59,16 +55,16 @@ namespace Filtration.Tests.Models
|
|||
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}));
|
||||
var testInputBlock2 = new LootFilterBlock();
|
||||
var testInputBlock2 = new ItemFilterBlock();
|
||||
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 }));
|
||||
|
||||
var script = new LootFilterScript()
|
||||
var script = new ItemFilterScript()
|
||||
{
|
||||
LootFilterBlocks = new ObservableCollection<LootFilterBlock>
|
||||
ItemFilterBlocks = new ObservableCollection<ItemFilterBlock>
|
||||
{
|
||||
testInputBlock1,
|
||||
testInputBlock2,
|
||||
|
@ -105,16 +101,16 @@ namespace Filtration.Tests.Models
|
|||
ReplaceTextColor = true
|
||||
};
|
||||
|
||||
var testInputBlock1 = new LootFilterBlock();
|
||||
var testInputBlock1 = new ItemFilterBlock();
|
||||
testInputBlock1.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor));
|
||||
testInputBlock1.BlockItems.Add(new TextColorBlockItem(oldTextColor));
|
||||
var testInputBlock2 = new LootFilterBlock();
|
||||
var testInputBlock2 = new ItemFilterBlock();
|
||||
testInputBlock2.BlockItems.Add(new BackgroundColorBlockItem(oldBackgroundColor));
|
||||
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,
|
||||
testInputBlock2
|
|
@ -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
|
||||
# This is a test script
|
||||
#
|
||||
|
|
|
@ -7,55 +7,55 @@ using NUnit.Framework;
|
|||
namespace Filtration.Tests.Services
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLootFilterPersistenceService
|
||||
public class TestItemFilterPersistenceService
|
||||
{
|
||||
[Test]
|
||||
public void LoadLootFilterScript_CallsTranslatorAndFileSystemService()
|
||||
public void LoadItemFilterScript_CallsTranslatorAndFileSystemService()
|
||||
{
|
||||
// Arrange
|
||||
const string TestInputPath = "C:\\Test Path\\Script.Filter";
|
||||
const string TestScriptString = "This is a test loot filter script";
|
||||
var testLootFilterScript = new LootFilterScript();
|
||||
const string TestScriptString = "This is a test item filter script";
|
||||
var testItemFilterScript = new ItemFilterScript();
|
||||
|
||||
var mockFileSystemService = new Mock<IFileSystemService>();
|
||||
mockFileSystemService.Setup(s => s.ReadFileAsString(TestInputPath)).Returns(TestScriptString).Verifiable();
|
||||
|
||||
var mockLootFilterScriptTranslator = new Mock<ILootFilterScriptTranslator>();
|
||||
mockLootFilterScriptTranslator.Setup(t => t.TranslateStringToLootFilterScript(TestScriptString)).Returns(testLootFilterScript).Verifiable();
|
||||
var mockItemFilterScriptTranslator = new Mock<IItemFilterScriptTranslator>();
|
||||
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
|
||||
var script = service.LoadLootFilterScript(TestInputPath);
|
||||
var script = service.LoadItemFilterScript(TestInputPath);
|
||||
|
||||
// Assert
|
||||
mockFileSystemService.Verify();
|
||||
mockLootFilterScriptTranslator.Verify();
|
||||
Assert.AreEqual(testLootFilterScript, script);
|
||||
mockItemFilterScriptTranslator.Verify();
|
||||
Assert.AreEqual(testItemFilterScript, script);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SaveLootFilterScript_CallsTranslatorAndFileSystemService()
|
||||
public void SaveItemFilterScript_CallsTranslatorAndFileSystemService()
|
||||
{
|
||||
// Arrange
|
||||
var testFilePath = "C:\\Test\\File.txt";
|
||||
var testScript = new LootFilterScript {FilePath = testFilePath};
|
||||
var testScript = new ItemFilterScript {FilePath = testFilePath};
|
||||
var testTranslatedScript = "Test translated script";
|
||||
|
||||
var mockFileSystemService = new Mock<IFileSystemService>();
|
||||
mockFileSystemService.Setup(s => s.WriteFileFromString(testFilePath, testTranslatedScript)).Verifiable();
|
||||
|
||||
var mockLootFilterScriptTranslator = new Mock<ILootFilterScriptTranslator>();
|
||||
mockLootFilterScriptTranslator.Setup(t => t.TranslateLootFilterScriptToString(testScript)).Returns(testTranslatedScript).Verifiable();
|
||||
var mockItemFilterScriptTranslator = new Mock<IItemFilterScriptTranslator>();
|
||||
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
|
||||
service.SaveLootFilterScript(testScript);
|
||||
service.SaveItemFilterScript(testScript);
|
||||
|
||||
// Assert
|
||||
mockFileSystemService.Verify();
|
||||
mockLootFilterScriptTranslator.Verify();
|
||||
mockItemFilterScriptTranslator.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -69,9 +69,9 @@ namespace Filtration.Tests.Services
|
|||
mockFileSystemService.Setup(f => f.GetUserProfilePath()).Returns(TestUserProfilePath).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
|
||||
var result = service.DefaultPathOfExileDirectory();
|
|
@ -13,7 +13,7 @@ namespace Filtration.Tests.Services
|
|||
// Arrange
|
||||
|
||||
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);
|
||||
|
||||
|
|
|
@ -11,25 +11,25 @@ using NUnit.Framework;
|
|||
namespace Filtration.Tests.Translators
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLootFilterBlockTranslator
|
||||
public class TestItemFilterBlockTranslator
|
||||
{
|
||||
private LootFilterBlockTranslatorTestUtility _testUtility;
|
||||
private ItemFilterBlockTranslatorTestUtility _testUtility;
|
||||
|
||||
[SetUp]
|
||||
public void LootFilterBlockTranslatorTestSetUp()
|
||||
public void ItemFilterBlockTranslatorTestSetUp()
|
||||
{
|
||||
_testUtility = new LootFilterBlockTranslatorTestUtility();
|
||||
_testUtility = new ItemFilterBlockTranslatorTestUtility();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_NoDescriptionComment_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_NoDescriptionComment_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ItemLevelBlockItem));
|
||||
|
@ -39,13 +39,13 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Hide_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Hide_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Hide" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem));
|
||||
|
@ -53,7 +53,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_DescriptionComment_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_DescriptionComment_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "# This is a test Block" + Environment.NewLine +
|
||||
|
@ -61,7 +61,7 @@ namespace Filtration.Tests.Translators
|
|||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("This is a test Block", result.Description);
|
||||
|
@ -72,7 +72,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultiLineDescriptionComment_OnlyAddsLastCommentLineToDescription()
|
||||
public void TranslateStringToItemFilterBlock_MultiLineDescriptionComment_OnlyAddsLastCommentLineToDescription()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "#First line" + Environment.NewLine +
|
||||
|
@ -81,7 +81,7 @@ namespace Filtration.Tests.Translators
|
|||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("Second Line", result.Description);
|
||||
|
@ -92,14 +92,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_DropLevel_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_DropLevel_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" DropLevel = 40";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -110,14 +110,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Quality_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Quality_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Quality < 18";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -128,14 +128,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Rarity_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Rarity_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Rarity > Normal";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -146,14 +146,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Rarity_WorksWithoutPredicateOperator()
|
||||
public void TranslateStringToItemFilterBlock_Rarity_WorksWithoutPredicateOperator()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Rarity Normal";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is RarityBlockItem));
|
||||
|
@ -163,14 +163,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Class_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Class_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
@" Class ""Test Class 1"" ""TestOneWordClassInQuotes"" TestOneWordClassNotInQuotes ""Test Class 2""";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ClassBlockItem));
|
||||
|
@ -182,14 +182,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_BaseType_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_BaseType_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
@" BaseType ""Test Base Type 1"" ""TestOneWordBaseTypeInQuotes"" TestOneWordBaseTypeNotInQuotes ""Test BaseType 2""";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BaseTypeBlockItem));
|
||||
|
@ -201,14 +201,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Sockets_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Sockets_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Sockets > 2";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -219,14 +219,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_LinkedSockets_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_LinkedSockets_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" LinkedSockets != 1";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -237,14 +237,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Width_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Width_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Width != 1";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -255,14 +255,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Height_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Height_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Height <= 3";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
|
||||
|
@ -273,14 +273,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Height_PredicatesWorkWithoutSpaceBetweenOperatorAndOperand()
|
||||
public void TranslateStringToItemFilterBlock_Height_PredicatesWorkWithoutSpaceBetweenOperatorAndOperand()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" Height <=3";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is HeightBlockItem));
|
||||
|
@ -290,14 +290,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SocketGroup_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SocketGroup_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" SocketGroup RRGB";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SocketGroupBlockItem));
|
||||
|
@ -308,14 +308,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SetTextColor_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SetTextColor_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" SetTextColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
|
@ -326,14 +326,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SetTextColorWithAlpha_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SetTextColorWithAlpha_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" SetTextColor 65 0 255 12";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
|
@ -345,14 +345,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SetBackgroundColor_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SetBackgroundColor_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" SetBackgroundColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
|
||||
|
@ -364,14 +364,14 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SetBorderColor_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SetBorderColor_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
" SetBorderColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
|
||||
|
@ -382,7 +382,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SetFontSize_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_SetFontSize_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -390,7 +390,7 @@ namespace Filtration.Tests.Translators
|
|||
" SetFontSize 15";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
|
||||
|
@ -399,7 +399,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_PlayAlertSoundWithoutVolume_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_PlayAlertSoundWithoutVolume_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -407,7 +407,7 @@ namespace Filtration.Tests.Translators
|
|||
" PlayAlertSound 4";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
|
@ -417,7 +417,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_PlayAlertSoundWithVolume_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_PlayAlertSoundWithVolume_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -425,7 +425,7 @@ namespace Filtration.Tests.Translators
|
|||
" PlayAlertSound 2 95";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
|
@ -435,22 +435,22 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_SectionComment_ReturnsLootFilterSectionObjectWithCorrectDescription()
|
||||
public void TranslateStringToItemFilterBlock_SectionComment_ReturnsItemFilterSectionObjectWithCorrectDescription()
|
||||
{
|
||||
// Arrange
|
||||
const string TestInputSectionDescription = "Wonderful items that you definitely won't want to miss!";
|
||||
var inputString = "# Section: " + TestInputSectionDescription;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.IsInstanceOf<LootFilterSection>(result);
|
||||
Assert.IsInstanceOf<ItemFilterSection>(result);
|
||||
Assert.AreEqual(TestInputSectionDescription, result.Description);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_Everything_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_Everything_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -475,7 +475,7 @@ namespace Filtration.Tests.Translators
|
|||
" PlayAlertSound 3";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("Test filter with everything", result.Description);
|
||||
|
@ -546,7 +546,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleValues_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterBlock_MultipleValues_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -557,7 +557,7 @@ namespace Filtration.Tests.Translators
|
|||
" Quality < 17";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(2, result.BlockItems.Count(b => b is ItemLevelBlockItem));
|
||||
|
@ -578,7 +578,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleTextColorItems_OnlyLastOneUsed()
|
||||
public void TranslateStringToItemFilterBlock_MultipleTextColorItems_OnlyLastOneUsed()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
|
@ -586,7 +586,7 @@ namespace Filtration.Tests.Translators
|
|||
" SetTextColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
|
@ -597,7 +597,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleFontSizeItems_OnlyLastOneUsed()
|
||||
public void TranslateStringToItemFilterBlock_MultipleFontSizeItems_OnlyLastOneUsed()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -607,7 +607,7 @@ namespace Filtration.Tests.Translators
|
|||
" SetFontSize 27" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
|
||||
|
@ -616,7 +616,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleSoundItems_OnlyLastOneUsed()
|
||||
public void TranslateStringToItemFilterBlock_MultipleSoundItems_OnlyLastOneUsed()
|
||||
{
|
||||
// Arrange
|
||||
|
||||
|
@ -626,7 +626,7 @@ namespace Filtration.Tests.Translators
|
|||
" PlayAlertSound 2" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
|
@ -636,7 +636,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleBackgroundColorItems_OnlyLastOneUsed()
|
||||
public void TranslateStringToItemFilterBlock_MultipleBackgroundColorItems_OnlyLastOneUsed()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
|
@ -644,7 +644,7 @@ namespace Filtration.Tests.Translators
|
|||
" SetBackgroundColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
|
||||
|
@ -655,7 +655,7 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterBlock_MultipleBorderColorItems_OnlyLastOneUsed()
|
||||
public void TranslateStringToItemFilterBlock_MultipleBorderColorItems_OnlyLastOneUsed()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine +
|
||||
|
@ -663,7 +663,7 @@ namespace Filtration.Tests.Translators
|
|||
" SetBorderColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToLootFilterBlock(inputString);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
|
||||
|
@ -674,20 +674,20 @@ namespace Filtration.Tests.Translators
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_NothingPopulated_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_NothingPopulated_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_FilterTypeHide_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_FilterTypeHide_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Hide";
|
||||
|
@ -695,14 +695,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.Action = BlockAction.Hide;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_FilterDescription_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_FilterDescription_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "# Test Block Description" + Environment.NewLine +
|
||||
|
@ -711,14 +711,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.Description = "Test Block Description";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_FilterDescriptionWithApostraphes_DoesNotDuplicateApostraphes()
|
||||
public void TranslateItemFilterBlockToString_FilterDescriptionWithApostraphes_DoesNotDuplicateApostraphes()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "# Test Block Descr'iption" + Environment.NewLine +
|
||||
|
@ -727,14 +727,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.Description = "Test Block Descr'iption";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_ItemLevel_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_ItemLevel_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -743,14 +743,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 56));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_DropLevel_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_DropLevel_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -759,14 +759,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new DropLevelBlockItem(FilterPredicateOperator.Equal, 23));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Quality_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Quality_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -775,14 +775,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 10));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Rarity_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Rarity_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -792,14 +792,14 @@ namespace Filtration.Tests.Translators
|
|||
(int) ItemRarity.Rare));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Classes_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Classes_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -812,14 +812,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(classBlockItem);
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Classes_DoesNotDuplicateApostraphes()
|
||||
public void TranslateItemFilterBlockToString_Classes_DoesNotDuplicateApostraphes()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -830,14 +830,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(classBlockItem);
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_BaseTypes_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_BaseTypes_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -850,14 +850,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(baseTypeBlockItem);
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Sockets_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Sockets_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -866,14 +866,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new SocketsBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 5));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_SocketGroup_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_SocketGroup_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -885,14 +885,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(socketGroupBlockItem);
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_LinkedSockets_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_LinkedSockets_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -901,14 +901,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new LinkedSocketsBlockItem(FilterPredicateOperator.NotEqual, 3));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Width_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Width_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -917,14 +917,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Height_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Height_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -933,14 +933,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new HeightBlockItem(FilterPredicateOperator.GreaterThan, 1));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_TextColorMaxAlpha_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_TextColorMaxAlpha_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
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}));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_TextColorNotMaxAlpha_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_TextColorNotMaxAlpha_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
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}));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_BackgroundColorNotMaxAlpha_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_BackgroundColorNotMaxAlpha_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
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}));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_BorderColorNotMaxAlpha_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_BorderColorNotMaxAlpha_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
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}));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_FontSize_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_FontSize_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -1014,14 +1014,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Sound_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Sound_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -1030,14 +1030,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(2, 50));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_MultipleItemLevel_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_MultipleItemLevel_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -1050,14 +1050,14 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThan, 100));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_MultipleFontSize_UsesFirstFontSize()
|
||||
public void TranslateItemFilterBlockToString_MultipleFontSize_UsesFirstFontSize()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -1070,30 +1070,30 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new FontSizeBlockItem(15));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Section_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Section_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var TestInputSectionText = "Ermagerd it's a section!";
|
||||
var expectedResult = "# Section: " + TestInputSectionText;
|
||||
|
||||
_testUtility.TestBlock = new LootFilterSection { Description = TestInputSectionText };
|
||||
_testUtility.TestBlock = new ItemFilterSection { Description = TestInputSectionText };
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterBlockToString_Everything_ReturnsCorrectString()
|
||||
public void TranslateItemFilterBlockToString_Everything_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var expectedResult = "Show" + Environment.NewLine +
|
||||
|
@ -1145,25 +1145,25 @@ namespace Filtration.Tests.Translators
|
|||
_testUtility.TestBlock.BlockItems.Add(new SoundBlockItem(6, 90));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateLootFilterBlockToString(_testUtility.TestBlock);
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
private class LootFilterBlockTranslatorTestUtility
|
||||
private class ItemFilterBlockTranslatorTestUtility
|
||||
{
|
||||
public LootFilterBlockTranslatorTestUtility()
|
||||
public ItemFilterBlockTranslatorTestUtility()
|
||||
{
|
||||
// Test Data
|
||||
TestBlock = new LootFilterBlock();
|
||||
TestBlock = new ItemFilterBlock();
|
||||
|
||||
// Class under test instantiation
|
||||
Translator = new LootFilterBlockTranslator();
|
||||
Translator = new ItemFilterBlockTranslator();
|
||||
}
|
||||
|
||||
public LootFilterBlock TestBlock { get; set; }
|
||||
public LootFilterBlockTranslator Translator { get; private set; }
|
||||
public ItemFilterBlock TestBlock { get; set; }
|
||||
public ItemFilterBlockTranslator Translator { get; private set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,45 +11,45 @@ using NUnit.Framework;
|
|||
namespace Filtration.Tests.Translators
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLootFilterScriptTranslator
|
||||
public class TestItemFilterScriptTranslator
|
||||
{
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterScript_ReturnsScriptWithCorrectNumberOfBlocks()
|
||||
public void TranslateStringToItemFilterScript_ReturnsScriptWithCorrectNumberOfBlocks()
|
||||
{
|
||||
// Arrange
|
||||
var testInput = File.ReadAllText(@"Resources/testscript.txt");
|
||||
|
||||
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>();
|
||||
mockLootFilterBlockTranslator.Setup(t => t.TranslateStringToLootFilterBlock(It.IsAny<string>())).Verifiable();
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
mockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>())).Verifiable();
|
||||
|
||||
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object);
|
||||
var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
|
||||
|
||||
// Act
|
||||
var script = translator.TranslateStringToLootFilterScript(testInput);
|
||||
var script = translator.TranslateStringToItemFilterScript(testInput);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(5, script.LootFilterBlocks.Count);
|
||||
mockLootFilterBlockTranslator.Verify();
|
||||
Assert.AreEqual(5, script.ItemFilterBlocks.Count);
|
||||
mockItemFilterBlockTranslator.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterScript_ReturnsScriptWithDescriptionCorrectlySet()
|
||||
public void TranslateStringToItemFilterScript_ReturnsScriptWithDescriptionCorrectlySet()
|
||||
{
|
||||
// Arrange
|
||||
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 +
|
||||
"This is a test script" + Environment.NewLine +
|
||||
Environment.NewLine +
|
||||
"End Script Description";
|
||||
|
||||
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>();
|
||||
mockLootFilterBlockTranslator.Setup(t => t.TranslateStringToLootFilterBlock(It.IsAny<string>())).Verifiable();
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
mockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>())).Verifiable();
|
||||
|
||||
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object);
|
||||
var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
|
||||
|
||||
// Act
|
||||
var script = translator.TranslateStringToLootFilterScript(testInput);
|
||||
var script = translator.TranslateStringToItemFilterScript(testInput);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedDescription, script.Description);
|
||||
|
@ -57,69 +57,68 @@ namespace Filtration.Tests.Translators
|
|||
|
||||
[Ignore("Integration Test")]
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterScript_ThioleLootFilterTest()
|
||||
public void TranslateStringToItemFilterScript_ThioleItemFilterTest()
|
||||
{
|
||||
// Arrange
|
||||
var testInput = File.ReadAllText(@"Resources/ThioleLootFilter.txt");
|
||||
var testInput = File.ReadAllText(@"Resources/ThioleItemFilter.txt");
|
||||
|
||||
|
||||
var BlockTranslator = new LootFilterBlockTranslator();
|
||||
var translator = new LootFilterScriptTranslator(BlockTranslator);
|
||||
var BlockTranslator = new ItemFilterBlockTranslator();
|
||||
var translator = new ItemFilterScriptTranslator(BlockTranslator);
|
||||
|
||||
// Act
|
||||
var script = translator.TranslateStringToLootFilterScript(testInput);
|
||||
var script = translator.TranslateStringToItemFilterScript(testInput);
|
||||
// Assert
|
||||
// Not crashing out when loading a huge script means this integration test has passed!
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateLootFilterScriptToString_OneBlock_CallsTranslator()
|
||||
public void TranslateItemFilterScriptToString_OneBlock_CallsTranslator()
|
||||
{
|
||||
// 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));
|
||||
|
||||
var BlockOutput = "Test Script Output";
|
||||
var expectedOutput = "Test Script Output" + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
testScript.LootFilterBlocks.Add(testBlock);
|
||||
testScript.ItemFilterBlocks.Add(testBlock);
|
||||
|
||||
var mockLootFilterBlockTranslator = new Mock<ILootFilterBlockTranslator>();
|
||||
mockLootFilterBlockTranslator.Setup(t => t.TranslateLootFilterBlockToString(testBlock)).Returns(BlockOutput).Verifiable();
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
mockItemFilterBlockTranslator.Setup(t => t.TranslateItemFilterBlockToString(testBlock)).Returns(BlockOutput).Verifiable();
|
||||
|
||||
var translator = new LootFilterScriptTranslator(mockLootFilterBlockTranslator.Object);
|
||||
var translator = new ItemFilterScriptTranslator(mockItemFilterBlockTranslator.Object);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateLootFilterScriptToString(testScript);
|
||||
var result = translator.TranslateItemFilterScriptToString(testScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedOutput, result);
|
||||
mockLootFilterBlockTranslator.Verify();
|
||||
mockItemFilterBlockTranslator.Verify();
|
||||
}
|
||||
|
||||
[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 +
|
||||
"This is a really great script!" + Environment.NewLine +
|
||||
"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));
|
||||
|
||||
var block2 = new LootFilterBlock();
|
||||
var block2 = new ItemFilterBlock();
|
||||
block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15));
|
||||
block2.BlockItems.Add(new FontSizeBlockItem(7));
|
||||
block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3));
|
||||
|
||||
script.LootFilterBlocks.Add(block1);
|
||||
script.LootFilterBlocks.Add(block2);
|
||||
script.ItemFilterBlocks.Add(block1);
|
||||
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 +
|
||||
"# This is a really great script!" + Environment.NewLine +
|
||||
"# Multiple line script descriptions are fun!" + Environment.NewLine +
|
||||
|
@ -133,41 +132,41 @@ namespace Filtration.Tests.Translators
|
|||
" Width = 3" + Environment.NewLine +
|
||||
" SetFontSize 7" + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
var blockTranslator = new LootFilterBlockTranslator();
|
||||
var translator = new LootFilterScriptTranslator(blockTranslator);
|
||||
var blockTranslator = new ItemFilterBlockTranslator();
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateLootFilterScriptToString(script);
|
||||
var result = translator.TranslateItemFilterScriptToString(script);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedOutput, result);
|
||||
}
|
||||
|
||||
[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
|
||||
};
|
||||
|
||||
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 +
|
||||
"# Test script description" + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
var blockTranslator = new LootFilterBlockTranslator();
|
||||
var translator = new LootFilterScriptTranslator(blockTranslator);
|
||||
var blockTranslator = new ItemFilterBlockTranslator();
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateLootFilterScriptToString(script);
|
||||
var result = translator.TranslateItemFilterScriptToString(script);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedOutput, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToLootFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject()
|
||||
public void TranslateStringToItemFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject()
|
||||
{
|
||||
// Arrange
|
||||
var testInputScript = "# My Script" + Environment.NewLine +
|
||||
|
@ -178,15 +177,15 @@ namespace Filtration.Tests.Translators
|
|||
" SetBorderColor 255 0 255" + Environment.NewLine +
|
||||
" SetFontSize 25";
|
||||
|
||||
var blockTranslator = new LootFilterBlockTranslator();
|
||||
var translator = new LootFilterScriptTranslator(blockTranslator);
|
||||
var blockTranslator = new ItemFilterBlockTranslator();
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateStringToLootFilterScript(testInputScript);
|
||||
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(2, result.LootFilterBlocks.Count);
|
||||
var block = result.LootFilterBlocks.First(l => l.GetType() != typeof(LootFilterSection));
|
||||
Assert.AreEqual(2, result.ItemFilterBlocks.Count);
|
||||
var block = result.ItemFilterBlocks.First(l => l.GetType() != typeof(ItemFilterSection));
|
||||
Assert.AreEqual(4, block.BlockItems.Count);
|
||||
var baseTypeItem = block.BlockItems.OfType<BaseTypeBlockItem>().First();
|
||||
Assert.AreEqual(2, baseTypeItem.Items.Count);
|
|
@ -9,7 +9,7 @@ namespace Filtration.Converters
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -130,19 +130,20 @@
|
|||
<Compile Include="Models\BlockItemTypes\QualityBlockItem.cs" />
|
||||
<Compile Include="Models\BlockItemTypes\ItemLevelBlockItem.cs" />
|
||||
<Compile Include="Models\IAudioVisualBlockItem.cs" />
|
||||
<Compile Include="Models\LootFilterBlock.cs" />
|
||||
<Compile Include="Models\ILootFilterBlockItem.cs" />
|
||||
<Compile Include="Models\LootFilterScript.cs" />
|
||||
<Compile Include="Models\LootFilterSection.cs" />
|
||||
<Compile Include="Models\ItemFilterBlockGroup.cs" />
|
||||
<Compile Include="Models\ItemFilterBlock.cs" />
|
||||
<Compile Include="Models\IItemFilterBlockItem.cs" />
|
||||
<Compile Include="Models\ItemFilterScript.cs" />
|
||||
<Compile Include="Models\ItemFilterSection.cs" />
|
||||
<Compile Include="Models\NumericFilterPredicate.cs" />
|
||||
<Compile Include="Models\BlockItemBaseTypes\SocketGroupBlockItemBase.cs" />
|
||||
<Compile Include="Models\ReplaceColorsParameterSet.cs" />
|
||||
<Compile Include="Properties\Annotations.cs" />
|
||||
<Compile Include="Services\FileSystemService.cs" />
|
||||
<Compile Include="Services\LootFilterPersistenceService.cs" />
|
||||
<Compile Include="Services\ItemFilterPersistenceService.cs" />
|
||||
<Compile Include="Services\StaticDataService.cs" />
|
||||
<Compile Include="Translators\LootFilterBlockTranslator.cs" />
|
||||
<Compile Include="Translators\LootFilterScriptTranslator.cs" />
|
||||
<Compile Include="Translators\ItemFilterBlockTranslator.cs" />
|
||||
<Compile Include="Translators\ItemFilterScriptTranslator.cs" />
|
||||
<Compile Include="UserControls\AutoScrollingListBox.cs" />
|
||||
<Compile Include="UserControls\CrossButton.cs" />
|
||||
<Compile Include="UserControls\EditableListBoxControl.xaml.cs">
|
||||
|
@ -153,27 +154,27 @@
|
|||
</Compile>
|
||||
<Compile Include="Utilities\LineReader.cs" />
|
||||
<Compile Include="ViewModels\FiltrationViewModelBase.cs" />
|
||||
<Compile Include="ViewModels\ILootFilterScriptViewModelFactory.cs" />
|
||||
<Compile Include="ViewModels\ILootFilterBlockViewModelFactory.cs" />
|
||||
<Compile Include="ViewModels\LootFilterBlockViewModel.cs" />
|
||||
<Compile Include="ViewModels\LootFilterScriptViewModel.cs" />
|
||||
<Compile Include="ViewModels\IItemFilterScriptViewModelFactory.cs" />
|
||||
<Compile Include="ViewModels\IItemFilterBlockViewModelFactory.cs" />
|
||||
<Compile Include="ViewModels\ItemFilterBlockViewModel.cs" />
|
||||
<Compile Include="ViewModels\ItemFilterScriptViewModel.cs" />
|
||||
<Compile Include="ViewModels\ReplaceColorsViewModel.cs" />
|
||||
<Compile Include="Views\BindingProxy.cs" />
|
||||
<Compile Include="Views\BlockTemplateSelector.cs" />
|
||||
<Compile Include="Views\LootFilterBlockDisplaySettingsView.xaml.cs">
|
||||
<DependentUpon>LootFilterBlockDisplaySettingsView.xaml</DependentUpon>
|
||||
<Compile Include="Views\ItemFilterBlockDisplaySettingsView.xaml.cs">
|
||||
<DependentUpon>ItemFilterBlockDisplaySettingsView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\LootFilterScriptView.xaml.cs">
|
||||
<DependentUpon>LootFilterScriptView.xaml</DependentUpon>
|
||||
<Compile Include="Views\ItemFilterScriptView.xaml.cs">
|
||||
<DependentUpon>ItemFilterScriptView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\LootFilterBlockView.xaml.cs">
|
||||
<DependentUpon>LootFilterBlockView.xaml</DependentUpon>
|
||||
<Compile Include="Views\ItemFilterBlockView.xaml.cs">
|
||||
<DependentUpon>ItemFilterBlockView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\NumericFilterPredicateControl.xaml.cs">
|
||||
<DependentUpon>NumericFilterPredicateControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\LootFilterSectionView.xaml.cs">
|
||||
<DependentUpon>LootFilterSectionView.xaml</DependentUpon>
|
||||
<Compile Include="Views\ItemFilterSectionView.xaml.cs">
|
||||
<DependentUpon>ItemFilterSectionView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\AboutWindow.xaml.cs">
|
||||
<DependentUpon>AboutWindow.xaml</DependentUpon>
|
||||
|
@ -206,7 +207,7 @@
|
|||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LootFilterBlockDisplaySettingsView.xaml">
|
||||
<Page Include="Views\ItemFilterBlockDisplaySettingsView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
|
@ -214,15 +215,15 @@
|
|||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LootFilterScriptView.xaml">
|
||||
<Page Include="Views\ItemFilterScriptView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LootFilterBlockView.xaml">
|
||||
<Page Include="Views\ItemFilterBlockView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LootFilterSectionView.xaml">
|
||||
<Page Include="Views\ItemFilterSectionView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
|
|
|
@ -5,7 +5,7 @@ using Filtration.Annotations;
|
|||
|
||||
namespace Filtration.Models.BlockItemBaseTypes
|
||||
{
|
||||
abstract class BlockItemBase : ILootFilterBlockItem
|
||||
abstract class BlockItemBase : IItemFilterBlockItem
|
||||
{
|
||||
public abstract string PrefixText { get; }
|
||||
public abstract int MaximumAllowed { get; }
|
||||
|
|
|
@ -3,7 +3,7 @@ using System.Windows.Media;
|
|||
|
||||
namespace Filtration.Models
|
||||
{
|
||||
internal interface ILootFilterBlockItem : INotifyPropertyChanged
|
||||
internal interface IItemFilterBlockItem : INotifyPropertyChanged
|
||||
{
|
||||
string PrefixText { get; }
|
||||
int MaximumAllowed { get; }
|
|
@ -3,15 +3,14 @@ using System.Collections.ObjectModel;
|
|||
using System.Linq;
|
||||
using Filtration.Enums;
|
||||
using Filtration.Models.BlockItemBaseTypes;
|
||||
using Filtration.Models.BlockItemTypes;
|
||||
|
||||
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; }
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -39,7 +38,7 @@ namespace Filtration.Models
|
|||
|
||||
public bool AddBlockItemAllowed(Type type)
|
||||
{
|
||||
var blockItem = (ILootFilterBlockItem)Activator.CreateInstance(type);
|
||||
var blockItem = (IItemFilterBlockItem)Activator.CreateInstance(type);
|
||||
return BlockCount(type) < blockItem.MaximumAllowed;
|
||||
}
|
||||
|
|
@ -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
|
||||
{
|
||||
}
|
||||
}
|
|
@ -3,19 +3,17 @@ using System.Collections.Generic;
|
|||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Filtration.Models.BlockItemTypes;
|
||||
using Filtration.ViewModels;
|
||||
using Filtration.Views;
|
||||
|
||||
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 Description { get; set; }
|
||||
public DateTime DateModified { get; set; }
|
||||
|
@ -24,7 +22,7 @@ namespace Filtration.Models
|
|||
{
|
||||
var validationErrors = new List<string>();
|
||||
|
||||
if (LootFilterBlocks.Count == 0)
|
||||
if (ItemFilterBlocks.Count == 0)
|
||||
{
|
||||
validationErrors.Add("A script must have at least one block");
|
||||
}
|
||||
|
@ -37,7 +35,7 @@ namespace Filtration.Models
|
|||
|
||||
foreach (
|
||||
var block in
|
||||
LootFilterBlocks.Where(b => BlockIsColorReplacementCandidate(replaceColorsParameterSet, b)))
|
||||
ItemFilterBlocks.Where(b => BlockIsColorReplacementCandidate(replaceColorsParameterSet, b)))
|
||||
{
|
||||
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>()
|
||||
? block.BlockItems.OfType<TextColorBlockItem>().First()
|
|
@ -0,0 +1,6 @@
|
|||
namespace Filtration.Models
|
||||
{
|
||||
internal class ItemFilterSection : ItemFilterBlock
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
namespace Filtration.Models
|
||||
{
|
||||
internal class LootFilterSection : LootFilterBlock
|
||||
{
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ using System.Windows;
|
|||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[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: AssemblyCompany("XVar Industries Inc.")]
|
||||
[assembly: AssemblyProduct("Filtration")]
|
||||
|
|
|
@ -3,41 +3,41 @@ using Filtration.Translators;
|
|||
|
||||
namespace Filtration.Services
|
||||
{
|
||||
internal interface ILootFilterPersistenceService
|
||||
internal interface IItemFilterPersistenceService
|
||||
{
|
||||
string LootFilterScriptDirectory { get; set; }
|
||||
LootFilterScript LoadLootFilterScript(string filePath);
|
||||
void SaveLootFilterScript(LootFilterScript script);
|
||||
string ItemFilterScriptDirectory { get; set; }
|
||||
ItemFilterScript LoadItemFilterScript(string filePath);
|
||||
void SaveItemFilterScript(ItemFilterScript script);
|
||||
string DefaultPathOfExileDirectory();
|
||||
}
|
||||
|
||||
internal class LootFilterPersistenceService : ILootFilterPersistenceService
|
||||
internal class ItemFilterPersistenceService : IItemFilterPersistenceService
|
||||
{
|
||||
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;
|
||||
_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 =
|
||||
_lootFilterScriptTranslator.TranslateStringToLootFilterScript(
|
||||
_itemFilterScriptTranslator.TranslateStringToItemFilterScript(
|
||||
_fileSystemService.ReadFileAsString(filePath));
|
||||
|
||||
script.FilePath = filePath;
|
||||
return script;
|
||||
}
|
||||
|
||||
public void SaveLootFilterScript(LootFilterScript script)
|
||||
public void SaveItemFilterScript(ItemFilterScript script)
|
||||
{
|
||||
_fileSystemService.WriteFileFromString(script.FilePath,
|
||||
_lootFilterScriptTranslator.TranslateLootFilterScriptToString(script));
|
||||
_itemFilterScriptTranslator.TranslateItemFilterScriptToString(script));
|
||||
}
|
||||
|
||||
public string DefaultPathOfExileDirectory()
|
|
@ -13,28 +13,28 @@ using Filtration.Utilities;
|
|||
|
||||
namespace Filtration.Translators
|
||||
{
|
||||
internal interface ILootFilterBlockTranslator
|
||||
internal interface IItemFilterBlockTranslator
|
||||
{
|
||||
LootFilterBlock TranslateStringToLootFilterBlock(string inputString);
|
||||
string TranslateLootFilterBlockToString(LootFilterBlock block);
|
||||
ItemFilterBlock TranslateStringToItemFilterBlock(string inputString);
|
||||
string TranslateItemFilterBlockToString(ItemFilterBlock block);
|
||||
}
|
||||
|
||||
internal class LootFilterBlockTranslator : ILootFilterBlockTranslator
|
||||
internal class ItemFilterBlockTranslator : IItemFilterBlockTranslator
|
||||
{
|
||||
private const string Indent = " ";
|
||||
private readonly string _newLine = Environment.NewLine + Indent;
|
||||
|
||||
// This method converts a string into a LootFilterBlock. This is used for pasting LootFilterBlocks
|
||||
// and reading LootFilterScripts from a file.
|
||||
public LootFilterBlock TranslateStringToLootFilterBlock(string inputString)
|
||||
// This method converts a string into a ItemFilterBlock. This is used for pasting ItemFilterBlocks
|
||||
// and reading ItemFilterScripts from a file.
|
||||
public ItemFilterBlock TranslateStringToItemFilterBlock(string inputString)
|
||||
{
|
||||
var block = new LootFilterBlock();
|
||||
var block = new ItemFilterBlock();
|
||||
var showHideFound = false;
|
||||
foreach (var line in new LineReader(() => new StringReader(inputString)))
|
||||
{
|
||||
if (line.StartsWith(@"# Section:"))
|
||||
{
|
||||
var section = new LootFilterSection
|
||||
var section = new ItemFilterSection
|
||||
{
|
||||
Description = line.Substring(line.IndexOf(":", StringComparison.Ordinal) + 1).Trim()
|
||||
};
|
||||
|
@ -215,7 +215,7 @@ namespace Filtration.Translators
|
|||
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));
|
||||
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>();
|
||||
|
||||
|
@ -243,7 +243,7 @@ namespace Filtration.Translators
|
|||
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>();
|
||||
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>();
|
||||
blockItem.Color = GetColorFromString(inputString);
|
||||
|
@ -294,11 +294,11 @@ namespace Filtration.Translators
|
|||
return new Color();
|
||||
}
|
||||
|
||||
// This method converts a LootFilterBlock object into a string. This is used for copying a LootFilterBlock
|
||||
// to the clipboard, and when saving a LootFilterScript.
|
||||
public string TranslateLootFilterBlockToString(LootFilterBlock block)
|
||||
// This method converts a ItemFilterBlock object into a string. This is used for copying a ItemFilterBlock
|
||||
// to the clipboard, and when saving a ItemFilterScript.
|
||||
public string TranslateItemFilterBlockToString(ItemFilterBlock block)
|
||||
{
|
||||
if (block.GetType() == typeof (LootFilterSection))
|
||||
if (block.GetType() == typeof (ItemFilterSection))
|
||||
{
|
||||
return "# Section: " + block.Description;
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ namespace Filtration.Translators
|
|||
|
||||
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
|
||||
// downcasts have no defined sort order (yet).
|
||||
foreach (var blockItem in block.BlockItems.OfType<ItemLevelBlockItem>())
|
|
@ -7,24 +7,24 @@ using Filtration.Utilities;
|
|||
|
||||
namespace Filtration.Translators
|
||||
{
|
||||
internal interface ILootFilterScriptTranslator
|
||||
internal interface IItemFilterScriptTranslator
|
||||
{
|
||||
LootFilterScript TranslateStringToLootFilterScript(string inputString);
|
||||
string TranslateLootFilterScriptToString(LootFilterScript script);
|
||||
ItemFilterScript TranslateStringToItemFilterScript(string inputString);
|
||||
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;
|
||||
}
|
||||
|
||||
public LootFilterScript TranslateStringToLootFilterScript(string inputString)
|
||||
public ItemFilterScript TranslateStringToItemFilterScript(string inputString)
|
||||
{
|
||||
var script = new LootFilterScript();
|
||||
var script = new ItemFilterScript();
|
||||
inputString = inputString.Replace("\t", "");
|
||||
var conditionBoundaries = IdentifyBlockBoundaries(inputString);
|
||||
|
||||
|
@ -40,8 +40,8 @@ namespace Filtration.Translators
|
|||
}
|
||||
script.Description = script.Description.TrimEnd('\n').TrimEnd('\r');
|
||||
|
||||
// Extract each block from between boundaries and translate it into a LootFilterBlock object
|
||||
// and add that object to the LootFilterBlocks list
|
||||
// Extract each block from between boundaries and translate it into a ItemFilterBlock object
|
||||
// and add that object to the ItemFilterBlocks list
|
||||
for (var boundary = conditionBoundaries.First; boundary != null; boundary = boundary.Next)
|
||||
{
|
||||
var begin = boundary.Value;
|
||||
|
@ -49,7 +49,7 @@ namespace Filtration.Translators
|
|||
var block = new string[end - begin];
|
||||
Array.Copy(lines, begin, block, 0, end - begin);
|
||||
var blockString = string.Join("\r\n", block);
|
||||
script.LootFilterBlocks.Add(_blockTranslator.TranslateStringToLootFilterBlock(blockString));
|
||||
script.ItemFilterBlocks.Add(_blockTranslator.TranslateStringToItemFilterBlock(blockString));
|
||||
}
|
||||
|
||||
return script;
|
||||
|
@ -78,7 +78,7 @@ namespace Filtration.Translators
|
|||
return blockBoundaries;
|
||||
}
|
||||
|
||||
public string TranslateLootFilterScriptToString(LootFilterScript script)
|
||||
public string TranslateItemFilterScriptToString(ItemFilterScript script)
|
||||
{
|
||||
var outputString = string.Empty;
|
||||
|
||||
|
@ -99,9 +99,9 @@ namespace Filtration.Translators
|
|||
}
|
||||
|
||||
// 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;
|
|
@ -26,7 +26,7 @@
|
|||
VerticalAlignment="Stretch" SelectionMode="Single" x:Name="ControlListBox" BorderBrush="#CCCCCC">
|
||||
<ListBox.Resources>
|
||||
<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>
|
||||
<!-- SelectedItem with focus -->
|
||||
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Silver" />
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
namespace Filtration.ViewModels
|
||||
{
|
||||
internal interface IItemFilterBlockViewModelFactory
|
||||
{
|
||||
IItemFilterBlockViewModel Create();
|
||||
void Release(IItemFilterBlockViewModel itemFilterBlockViewModel);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace Filtration.ViewModels
|
||||
{
|
||||
internal interface IItemFilterScriptViewModelFactory
|
||||
{
|
||||
IItemFilterScriptViewModel Create();
|
||||
void Release(IItemFilterScriptViewModel itemFilterScriptViewModel);
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
namespace Filtration.ViewModels
|
||||
{
|
||||
internal interface ILootFilterBlockViewModelFactory
|
||||
{
|
||||
ILootFilterBlockViewModel Create();
|
||||
void Release(ILootFilterBlockViewModel lootFilterBlockViewModel);
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
namespace Filtration.ViewModels
|
||||
{
|
||||
internal interface ILootFilterScriptViewModelFactory
|
||||
{
|
||||
ILootFilterScriptViewModel Create();
|
||||
void Release(ILootFilterScriptViewModel lootFilterScriptViewModel);
|
||||
}
|
||||
}
|
|
@ -14,23 +14,23 @@ using GalaSoft.MvvmLight.CommandWpf;
|
|||
|
||||
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; }
|
||||
LootFilterBlock Block { get; }
|
||||
ItemFilterBlock Block { get; }
|
||||
}
|
||||
|
||||
internal class LootFilterBlockViewModel : FiltrationViewModelBase, ILootFilterBlockViewModel
|
||||
internal class ItemFilterBlockViewModel : FiltrationViewModelBase, IItemFilterBlockViewModel
|
||||
{
|
||||
private readonly IStaticDataService _staticDataService;
|
||||
private readonly IReplaceColorsViewModel _replaceColorsViewModel;
|
||||
private readonly MediaPlayer _mediaPlayer = new MediaPlayer();
|
||||
private LootFilterScriptViewModel _parentScriptViewModel;
|
||||
private ItemFilterScriptViewModel _parentScriptViewModel;
|
||||
|
||||
private bool _displaySettingsPopupOpen;
|
||||
|
||||
public LootFilterBlockViewModel(IStaticDataService staticDataService, IReplaceColorsViewModel replaceColorsViewModel)
|
||||
public ItemFilterBlockViewModel(IStaticDataService staticDataService, IReplaceColorsViewModel replaceColorsViewModel)
|
||||
{
|
||||
_staticDataService = staticDataService;
|
||||
_replaceColorsViewModel = replaceColorsViewModel;
|
||||
|
@ -48,24 +48,24 @@ namespace Filtration.ViewModels
|
|||
AddFilterBlockItemCommand = new RelayCommand<Type>(OnAddFilterBlockItemCommand);
|
||||
ToggleBlockActionCommand = new RelayCommand(OnToggleBlockActionCommand);
|
||||
AddAudioVisualBlockItemCommand = new RelayCommand<Type>(OnAddAudioVisualBlockItemCommand);
|
||||
RemoveFilterBlockItemCommand = new RelayCommand<ILootFilterBlockItem>(OnRemoveFilterBlockItemCommand);
|
||||
RemoveAudioVisualBlockItemCommand = new RelayCommand<ILootFilterBlockItem>(OnRemoveAudioVisualBlockItemCommand);
|
||||
RemoveFilterBlockItemCommand = new RelayCommand<IItemFilterBlockItem>(OnRemoveFilterBlockItemCommand);
|
||||
RemoveAudioVisualBlockItemCommand = new RelayCommand<IItemFilterBlockItem>(OnRemoveAudioVisualBlockItemCommand);
|
||||
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;
|
||||
|
||||
Block = lootFilterBlock;
|
||||
lootFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged;
|
||||
Block = itemFilterBlock;
|
||||
itemFilterBlock.BlockItems.CollectionChanged += OnBlockItemsCollectionChanged;
|
||||
|
||||
foreach (var blockItem in lootFilterBlock.BlockItems.OfType<IAudioVisualBlockItem>())
|
||||
foreach (var blockItem in itemFilterBlock.BlockItems.OfType<IAudioVisualBlockItem>())
|
||||
{
|
||||
blockItem.PropertyChanged += OnAudioVisualBlockItemChanged;
|
||||
}
|
||||
|
@ -84,24 +84,24 @@ namespace Filtration.ViewModels
|
|||
public RelayCommand ReplaceColorsCommand { get; private set; }
|
||||
public RelayCommand<Type> AddFilterBlockItemCommand { get; private set; }
|
||||
public RelayCommand<Type> AddAudioVisualBlockItemCommand { get; private set; }
|
||||
public RelayCommand<ILootFilterBlockItem> RemoveFilterBlockItemCommand { get; private set; }
|
||||
public RelayCommand<ILootFilterBlockItem> RemoveAudioVisualBlockItemCommand { get; private set; }
|
||||
public RelayCommand<IItemFilterBlockItem> RemoveFilterBlockItemCommand { get; private set; }
|
||||
public RelayCommand<IItemFilterBlockItem> RemoveAudioVisualBlockItemCommand { 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 ObservableCollection<ILootFilterBlockItem> FilterBlockItems
|
||||
public ObservableCollection<IItemFilterBlockItem> FilterBlockItems
|
||||
{
|
||||
get { return Block.BlockItems; }
|
||||
}
|
||||
|
||||
public IEnumerable<ILootFilterBlockItem> SummaryBlockItems
|
||||
public IEnumerable<IItemFilterBlockItem> SummaryBlockItems
|
||||
{
|
||||
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); }
|
||||
}
|
||||
|
@ -261,13 +261,13 @@ namespace Filtration.ViewModels
|
|||
private void OnAddFilterBlockItemCommand(Type blockItemType)
|
||||
{
|
||||
if (!AddBlockItemAllowed(blockItemType)) return;
|
||||
var newBlockItem = (ILootFilterBlockItem) Activator.CreateInstance(blockItemType);
|
||||
var newBlockItem = (IItemFilterBlockItem) Activator.CreateInstance(blockItemType);
|
||||
|
||||
FilterBlockItems.Add(newBlockItem);
|
||||
IsDirty = true;
|
||||
}
|
||||
|
||||
private void OnRemoveFilterBlockItemCommand(ILootFilterBlockItem blockItem)
|
||||
private void OnRemoveFilterBlockItemCommand(IItemFilterBlockItem blockItem)
|
||||
{
|
||||
FilterBlockItems.Remove(blockItem);
|
||||
IsDirty = true;
|
||||
|
@ -276,7 +276,7 @@ namespace Filtration.ViewModels
|
|||
private void OnAddAudioVisualBlockItemCommand(Type blockItemType)
|
||||
{
|
||||
if (!AddBlockItemAllowed(blockItemType)) return;
|
||||
var newBlockItem = (ILootFilterBlockItem) Activator.CreateInstance(blockItemType);
|
||||
var newBlockItem = (IItemFilterBlockItem) Activator.CreateInstance(blockItemType);
|
||||
|
||||
newBlockItem.PropertyChanged += OnAudioVisualBlockItemChanged;
|
||||
FilterBlockItems.Add(newBlockItem);
|
||||
|
@ -284,7 +284,7 @@ namespace Filtration.ViewModels
|
|||
IsDirty = true;
|
||||
}
|
||||
|
||||
private void OnRemoveAudioVisualBlockItemCommand(ILootFilterBlockItem blockItem)
|
||||
private void OnRemoveAudioVisualBlockItemCommand(IItemFilterBlockItem blockItem)
|
||||
{
|
||||
blockItem.PropertyChanged -= OnAudioVisualBlockItemChanged;
|
||||
FilterBlockItems.Remove(blockItem);
|
||||
|
@ -347,7 +347,7 @@ namespace Filtration.ViewModels
|
|||
|
||||
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);
|
||||
return blockCount < blockItem.MaximumAllowed;
|
||||
}
|
|
@ -10,29 +10,29 @@ using GalaSoft.MvvmLight.CommandWpf;
|
|||
|
||||
namespace Filtration.ViewModels
|
||||
{
|
||||
internal interface ILootFilterScriptViewModel
|
||||
internal interface IItemFilterScriptViewModel
|
||||
{
|
||||
LootFilterScript Script { get; }
|
||||
ItemFilterScript Script { get; }
|
||||
bool IsDirty { get; }
|
||||
string Description { get; set; }
|
||||
string DisplayName { get; }
|
||||
void Initialise(LootFilterScript lootFilterScript);
|
||||
ILootFilterBlockViewModel SelectedBlockViewModel { get; set; }
|
||||
void Initialise(ItemFilterScript itemFilterScript);
|
||||
IItemFilterBlockViewModel SelectedBlockViewModel { get; set; }
|
||||
void RemoveDirtyFlag();
|
||||
void AddSection(ILootFilterBlockViewModel targetBlockViewModel);
|
||||
void AddBlock(ILootFilterBlockViewModel targetBlockViewModel);
|
||||
void CopyBlock(ILootFilterBlockViewModel targetBlockViewModel);
|
||||
void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel);
|
||||
void AddSection(IItemFilterBlockViewModel targetBlockViewModel);
|
||||
void AddBlock(IItemFilterBlockViewModel targetBlockViewModel);
|
||||
void CopyBlock(IItemFilterBlockViewModel targetBlockViewModel);
|
||||
void PasteBlock(IItemFilterBlockViewModel targetBlockViewModel);
|
||||
}
|
||||
|
||||
internal class LootFilterScriptViewModel : FiltrationViewModelBase, ILootFilterScriptViewModel
|
||||
internal class ItemFilterScriptViewModel : FiltrationViewModelBase, IItemFilterScriptViewModel
|
||||
{
|
||||
private readonly ILootFilterBlockViewModelFactory _lootFilterBlockViewModelFactory;
|
||||
private readonly ILootFilterBlockTranslator _blockTranslator;
|
||||
private readonly IItemFilterBlockViewModelFactory _itemFilterBlockViewModelFactory;
|
||||
private readonly IItemFilterBlockTranslator _blockTranslator;
|
||||
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);
|
||||
MoveBlockToTopCommand = new RelayCommand(OnMoveBlockToTopCommand, () => SelectedBlockViewModel != null);
|
||||
|
@ -43,9 +43,9 @@ namespace Filtration.ViewModels
|
|||
AddSectionCommand = new RelayCommand(OnAddSectionCommand, () => SelectedBlockViewModel != null);
|
||||
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => SelectedBlockViewModel != null);
|
||||
PasteBlockCommand = new RelayCommand(OnPasteBlockCommand, () => SelectedBlockViewModel != null);
|
||||
_lootFilterBlockViewModelFactory = lootFilterBlockViewModelFactory;
|
||||
_itemFilterBlockViewModelFactory = itemFilterBlockViewModelFactory;
|
||||
_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 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
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ namespace Filtration.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public ILootFilterBlockViewModel SelectedBlockViewModel
|
||||
public IItemFilterBlockViewModel SelectedBlockViewModel
|
||||
{
|
||||
get { return _selectedBlockViewModel; }
|
||||
set
|
||||
|
@ -89,7 +89,7 @@ namespace Filtration.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public LootFilterScript Script { get; private set; }
|
||||
public ItemFilterScript Script { get; private set; }
|
||||
|
||||
public bool IsDirty
|
||||
{
|
||||
|
@ -102,12 +102,12 @@ namespace Filtration.ViewModels
|
|||
|
||||
private bool HasDirtyChildren
|
||||
{
|
||||
get { return LootFilterBlockViewModels.Any(vm => vm.IsDirty); }
|
||||
get { return ItemFilterBlockViewModels.Any(vm => vm.IsDirty); }
|
||||
}
|
||||
|
||||
private void CleanChildren()
|
||||
{
|
||||
foreach (var vm in LootFilterBlockViewModels)
|
||||
foreach (var vm in ItemFilterBlockViewModels)
|
||||
{
|
||||
vm.IsDirty = false;
|
||||
}
|
||||
|
@ -136,16 +136,16 @@ namespace Filtration.ViewModels
|
|||
get { return Script.FilePath; }
|
||||
}
|
||||
|
||||
public void Initialise(LootFilterScript lootFilterScript)
|
||||
public void Initialise(ItemFilterScript itemFilterScript)
|
||||
{
|
||||
LootFilterBlockViewModels.Clear();
|
||||
ItemFilterBlockViewModels.Clear();
|
||||
|
||||
Script = lootFilterScript;
|
||||
foreach (var block in Script.LootFilterBlocks)
|
||||
Script = itemFilterScript;
|
||||
foreach (var block in Script.ItemFilterBlocks)
|
||||
{
|
||||
var vm = _lootFilterBlockViewModelFactory.Create();
|
||||
var vm = _itemFilterBlockViewModelFactory.Create();
|
||||
vm.Initialise(block, this);
|
||||
LootFilterBlockViewModels.Add(vm);
|
||||
ItemFilterBlockViewModels.Add(vm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,9 +154,9 @@ namespace Filtration.ViewModels
|
|||
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()
|
||||
|
@ -164,26 +164,26 @@ namespace Filtration.ViewModels
|
|||
PasteBlock(SelectedBlockViewModel);
|
||||
}
|
||||
|
||||
public void PasteBlock(ILootFilterBlockViewModel targetBlockViewModel)
|
||||
public void PasteBlock(IItemFilterBlockViewModel targetBlockViewModel)
|
||||
{
|
||||
var clipboardText = Clipboard.GetText();
|
||||
if (clipboardText.IsNullOrEmpty()) return;
|
||||
|
||||
var translatedBlock = _blockTranslator.TranslateStringToLootFilterBlock(clipboardText);
|
||||
var translatedBlock = _blockTranslator.TranslateStringToItemFilterBlock(clipboardText);
|
||||
if (translatedBlock == null) return;
|
||||
|
||||
var vm = _lootFilterBlockViewModelFactory.Create();
|
||||
var vm = _itemFilterBlockViewModelFactory.Create();
|
||||
vm.Initialise(translatedBlock, this);
|
||||
|
||||
if (LootFilterBlockViewModels.Count > 0)
|
||||
if (ItemFilterBlockViewModels.Count > 0)
|
||||
{
|
||||
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock);
|
||||
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, translatedBlock);
|
||||
ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
}
|
||||
else
|
||||
{
|
||||
Script.LootFilterBlocks.Add(translatedBlock);
|
||||
LootFilterBlockViewModels.Add(vm);
|
||||
Script.ItemFilterBlocks.Add(translatedBlock);
|
||||
ItemFilterBlockViewModels.Add(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)
|
||||
{
|
||||
var block = targetBlockViewModel.Block;
|
||||
Script.LootFilterBlocks.Remove(block);
|
||||
Script.LootFilterBlocks.Insert(0, block);
|
||||
LootFilterBlockViewModels.Move(currentIndex, 0);
|
||||
Script.ItemFilterBlocks.Remove(block);
|
||||
Script.ItemFilterBlocks.Insert(0, block);
|
||||
ItemFilterBlockViewModels.Move(currentIndex, 0);
|
||||
_isDirty = true;
|
||||
RaisePropertyChanged("LootFilterSectionViewModels");
|
||||
RaisePropertyChanged("ItemFilterSectionViewModels");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,19 +217,19 @@ namespace Filtration.ViewModels
|
|||
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)
|
||||
{
|
||||
var block = targetBlockViewModel.Block;
|
||||
var blockPos = Script.LootFilterBlocks.IndexOf(block);
|
||||
Script.LootFilterBlocks.RemoveAt(blockPos);
|
||||
Script.LootFilterBlocks.Insert(blockPos - 1, block);
|
||||
LootFilterBlockViewModels.Move(currentIndex, currentIndex - 1);
|
||||
var blockPos = Script.ItemFilterBlocks.IndexOf(block);
|
||||
Script.ItemFilterBlocks.RemoveAt(blockPos);
|
||||
Script.ItemFilterBlocks.Insert(blockPos - 1, block);
|
||||
ItemFilterBlockViewModels.Move(currentIndex, currentIndex - 1);
|
||||
_isDirty = true;
|
||||
RaisePropertyChanged("LootFilterSectionViewModels");
|
||||
RaisePropertyChanged("ItemFilterSectionViewModels");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -238,19 +238,19 @@ namespace Filtration.ViewModels
|
|||
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 blockPos = Script.LootFilterBlocks.IndexOf(block);
|
||||
Script.LootFilterBlocks.RemoveAt(blockPos);
|
||||
Script.LootFilterBlocks.Insert(blockPos + 1, block);
|
||||
LootFilterBlockViewModels.Move(currentIndex, currentIndex + 1);
|
||||
var blockPos = Script.ItemFilterBlocks.IndexOf(block);
|
||||
Script.ItemFilterBlocks.RemoveAt(blockPos);
|
||||
Script.ItemFilterBlocks.Insert(blockPos + 1, block);
|
||||
ItemFilterBlockViewModels.Move(currentIndex, currentIndex + 1);
|
||||
_isDirty = true;
|
||||
RaisePropertyChanged("LootFilterSectionViewModels");
|
||||
RaisePropertyChanged("ItemFilterSectionViewModels");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,18 +259,18 @@ namespace Filtration.ViewModels
|
|||
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;
|
||||
Script.LootFilterBlocks.Remove(block);
|
||||
Script.LootFilterBlocks.Add(block);
|
||||
LootFilterBlockViewModels.Move(currentIndex, LootFilterBlockViewModels.Count - 1);
|
||||
Script.ItemFilterBlocks.Remove(block);
|
||||
Script.ItemFilterBlocks.Add(block);
|
||||
ItemFilterBlockViewModels.Move(currentIndex, ItemFilterBlockViewModels.Count - 1);
|
||||
_isDirty = true;
|
||||
RaisePropertyChanged("LootFilterSectionViewModels");
|
||||
RaisePropertyChanged("ItemFilterSectionViewModels");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -279,21 +279,21 @@ namespace Filtration.ViewModels
|
|||
AddBlock(SelectedBlockViewModel);
|
||||
}
|
||||
|
||||
public void AddBlock(ILootFilterBlockViewModel targetBlockViewModel)
|
||||
public void AddBlock(IItemFilterBlockViewModel targetBlockViewModel)
|
||||
{
|
||||
var vm = _lootFilterBlockViewModelFactory.Create();
|
||||
var newBlock = new LootFilterBlock();
|
||||
var vm = _itemFilterBlockViewModelFactory.Create();
|
||||
var newBlock = new ItemFilterBlock();
|
||||
vm.Initialise(newBlock, this);
|
||||
|
||||
if (targetBlockViewModel != null)
|
||||
{
|
||||
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock);
|
||||
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newBlock);
|
||||
ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
}
|
||||
else
|
||||
{
|
||||
Script.LootFilterBlocks.Add(newBlock);
|
||||
LootFilterBlockViewModels.Add(vm);
|
||||
Script.ItemFilterBlocks.Add(newBlock);
|
||||
ItemFilterBlockViewModels.Add(vm);
|
||||
}
|
||||
|
||||
SelectedBlockViewModel = vm;
|
||||
|
@ -305,17 +305,17 @@ namespace Filtration.ViewModels
|
|||
AddSection(SelectedBlockViewModel);
|
||||
}
|
||||
|
||||
public void AddSection(ILootFilterBlockViewModel targetBlockViewModel)
|
||||
public void AddSection(IItemFilterBlockViewModel targetBlockViewModel)
|
||||
{
|
||||
var vm = _lootFilterBlockViewModelFactory.Create();
|
||||
var newSection = new LootFilterSection { Description = "New Section" };
|
||||
var vm = _itemFilterBlockViewModelFactory.Create();
|
||||
var newSection = new ItemFilterSection { Description = "New Section" };
|
||||
vm.Initialise(newSection, this);
|
||||
|
||||
Script.LootFilterBlocks.Insert(Script.LootFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newSection);
|
||||
LootFilterBlockViewModels.Insert(LootFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
Script.ItemFilterBlocks.Insert(Script.ItemFilterBlocks.IndexOf(targetBlockViewModel.Block) + 1, newSection);
|
||||
ItemFilterBlockViewModels.Insert(ItemFilterBlockViewModels.IndexOf(targetBlockViewModel) + 1, vm);
|
||||
_isDirty = true;
|
||||
SelectedBlockViewModel = vm;
|
||||
RaisePropertyChanged("LootFilterSectionViewModels");
|
||||
RaisePropertyChanged("ItemFilterSectionViewModels");
|
||||
}
|
||||
|
||||
private void OnDeleteBlockCommand()
|
||||
|
@ -323,15 +323,15 @@ namespace Filtration.ViewModels
|
|||
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",
|
||||
MessageBoxButton.YesNo, MessageBoxImage.Question);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
Script.LootFilterBlocks.Remove(targetBlockViewModel.Block);
|
||||
LootFilterBlockViewModels.Remove(targetBlockViewModel);
|
||||
Script.ItemFilterBlocks.Remove(targetBlockViewModel.Block);
|
||||
ItemFilterBlockViewModels.Remove(targetBlockViewModel);
|
||||
_isDirty = true;
|
||||
}
|
||||
SelectedBlockViewModel = null;
|
|
@ -21,26 +21,26 @@ namespace Filtration.ViewModels
|
|||
|
||||
internal class MainWindowViewModel : FiltrationViewModelBase, IMainWindowViewModel
|
||||
{
|
||||
private LootFilterScript _loadedScript;
|
||||
private ItemFilterScript _loadedScript;
|
||||
|
||||
private readonly ILootFilterScriptViewModelFactory _lootFilterScriptViewModelFactory;
|
||||
private readonly ILootFilterPersistenceService _persistenceService;
|
||||
private readonly ILootFilterScriptTranslator _lootFilterScriptTranslator;
|
||||
private readonly IItemFilterScriptViewModelFactory _itemFilterScriptViewModelFactory;
|
||||
private readonly IItemFilterPersistenceService _persistenceService;
|
||||
private readonly IItemFilterScriptTranslator _itemFilterScriptTranslator;
|
||||
private readonly IReplaceColorsViewModel _replaceColorsViewModel;
|
||||
private ILootFilterScriptViewModel _currentScriptViewModel;
|
||||
private readonly ObservableCollection<ILootFilterScriptViewModel> _scriptViewModels;
|
||||
private IItemFilterScriptViewModel _currentScriptViewModel;
|
||||
private readonly ObservableCollection<IItemFilterScriptViewModel> _scriptViewModels;
|
||||
|
||||
public MainWindowViewModel(ILootFilterScriptViewModelFactory lootFilterScriptViewModelFactory,
|
||||
ILootFilterPersistenceService persistenceService,
|
||||
ILootFilterScriptTranslator lootFilterScriptTranslator,
|
||||
public MainWindowViewModel(IItemFilterScriptViewModelFactory itemFilterScriptViewModelFactory,
|
||||
IItemFilterPersistenceService persistenceService,
|
||||
IItemFilterScriptTranslator itemFilterScriptTranslator,
|
||||
IReplaceColorsViewModel replaceColorsViewModel)
|
||||
{
|
||||
_lootFilterScriptViewModelFactory = lootFilterScriptViewModelFactory;
|
||||
_itemFilterScriptViewModelFactory = itemFilterScriptViewModelFactory;
|
||||
_persistenceService = persistenceService;
|
||||
_lootFilterScriptTranslator = lootFilterScriptTranslator;
|
||||
_itemFilterScriptTranslator = itemFilterScriptTranslator;
|
||||
_replaceColorsViewModel = replaceColorsViewModel;
|
||||
|
||||
_scriptViewModels = new ObservableCollection<ILootFilterScriptViewModel>();
|
||||
_scriptViewModels = new ObservableCollection<IItemFilterScriptViewModel>();
|
||||
|
||||
OpenAboutWindowCommand = new RelayCommand(OnOpenAboutWindowCommand);
|
||||
OpenScriptCommand = new RelayCommand(OnOpenScriptCommand);
|
||||
|
@ -50,12 +50,12 @@ namespace Filtration.ViewModels
|
|||
CopyBlockCommand = new RelayCommand(OnCopyBlockCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null);
|
||||
PasteCommand = new RelayCommand(OnPasteCommand, () => CurrentScriptViewModel != null && CurrentScriptViewModel.SelectedBlockViewModel != null);
|
||||
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);
|
||||
|
||||
//LoadScriptFromFile("C:\\ThioleLootFilter.txt");
|
||||
|
||||
SetLootFilterScriptDirectory();
|
||||
SetItemFilterScriptDirectory();
|
||||
}
|
||||
|
||||
public RelayCommand OpenScriptCommand { get; private set; }
|
||||
|
@ -65,11 +65,11 @@ namespace Filtration.ViewModels
|
|||
public RelayCommand PasteCommand { get; private set; }
|
||||
public RelayCommand CopyScriptCommand { 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 ReplaceColorsCommand { get; private set; }
|
||||
|
||||
public ObservableCollection<ILootFilterScriptViewModel> ScriptViewModels
|
||||
public ObservableCollection<IItemFilterScriptViewModel> ScriptViewModels
|
||||
{
|
||||
get { return _scriptViewModels; }
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ namespace Filtration.ViewModels
|
|||
}
|
||||
|
||||
[DoNotWire]
|
||||
public ILootFilterScriptViewModel CurrentScriptViewModel
|
||||
public IItemFilterScriptViewModel CurrentScriptViewModel
|
||||
{
|
||||
get { return _currentScriptViewModel; }
|
||||
set
|
||||
|
@ -114,7 +114,7 @@ namespace Filtration.ViewModels
|
|||
var openFileDialog = new OpenFileDialog
|
||||
{
|
||||
Filter = "Filter Files (*.filter)|*.filter|All Files (*.*)|*.*",
|
||||
InitialDirectory = _persistenceService.LootFilterScriptDirectory
|
||||
InitialDirectory = _persistenceService.ItemFilterScriptDirectory
|
||||
};
|
||||
|
||||
if (openFileDialog.ShowDialog() != true) return;
|
||||
|
@ -126,7 +126,7 @@ namespace Filtration.ViewModels
|
|||
{
|
||||
try
|
||||
{
|
||||
_loadedScript = _persistenceService.LoadLootFilterScript(path);
|
||||
_loadedScript = _persistenceService.LoadItemFilterScript(path);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -135,18 +135,18 @@ namespace Filtration.ViewModels
|
|||
return;
|
||||
}
|
||||
|
||||
var newViewModel = _lootFilterScriptViewModelFactory.Create();
|
||||
var newViewModel = _itemFilterScriptViewModelFactory.Create();
|
||||
newViewModel.Initialise(_loadedScript);
|
||||
ScriptViewModels.Add(newViewModel);
|
||||
CurrentScriptViewModel = newViewModel;
|
||||
}
|
||||
|
||||
private void SetLootFilterScriptDirectory()
|
||||
private void SetItemFilterScriptDirectory()
|
||||
{
|
||||
var defaultDir = _persistenceService.DefaultPathOfExileDirectory();
|
||||
if (!string.IsNullOrEmpty(defaultDir))
|
||||
{
|
||||
_persistenceService.LootFilterScriptDirectory = defaultDir;
|
||||
_persistenceService.ItemFilterScriptDirectory = defaultDir;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -159,7 +159,7 @@ namespace Filtration.ViewModels
|
|||
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
_persistenceService.LootFilterScriptDirectory = dlg.SelectedPath;
|
||||
_persistenceService.ItemFilterScriptDirectory = dlg.SelectedPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ namespace Filtration.ViewModels
|
|||
|
||||
try
|
||||
{
|
||||
_persistenceService.SaveLootFilterScript(CurrentScriptViewModel.Script);
|
||||
_persistenceService.SaveItemFilterScript(CurrentScriptViewModel.Script);
|
||||
CurrentScriptViewModel.RemoveDirtyFlag();
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -195,7 +195,7 @@ namespace Filtration.ViewModels
|
|||
{
|
||||
DefaultExt = ".filter",
|
||||
Filter = @"Filter Files (*.filter)|*.filter|All Files (*.*)|*.*",
|
||||
InitialDirectory = _persistenceService.LootFilterScriptDirectory
|
||||
InitialDirectory = _persistenceService.ItemFilterScriptDirectory
|
||||
};
|
||||
|
||||
var result = saveDialog.ShowDialog();
|
||||
|
@ -206,7 +206,7 @@ namespace Filtration.ViewModels
|
|||
try
|
||||
{
|
||||
CurrentScriptViewModel.Script.FilePath = saveDialog.FileName;
|
||||
_persistenceService.SaveLootFilterScript(CurrentScriptViewModel.Script);
|
||||
_persistenceService.SaveItemFilterScript(CurrentScriptViewModel.Script);
|
||||
CurrentScriptViewModel.RemoveDirtyFlag();
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -245,7 +245,7 @@ namespace Filtration.ViewModels
|
|||
|
||||
private void OnCopyScriptCommand()
|
||||
{
|
||||
Clipboard.SetText(_lootFilterScriptTranslator.TranslateLootFilterScriptToString(_currentScriptViewModel.Script));
|
||||
Clipboard.SetText(_itemFilterScriptTranslator.TranslateItemFilterScriptToString(_currentScriptViewModel.Script));
|
||||
}
|
||||
|
||||
private void OnCopyBlockCommand()
|
||||
|
@ -260,15 +260,15 @@ namespace Filtration.ViewModels
|
|||
|
||||
private void OnNewScriptCommand()
|
||||
{
|
||||
var newScript = new LootFilterScript();
|
||||
var newViewModel = _lootFilterScriptViewModelFactory.Create();
|
||||
var newScript = new ItemFilterScript();
|
||||
var newViewModel = _itemFilterScriptViewModelFactory.Create();
|
||||
newViewModel.Initialise(newScript);
|
||||
newViewModel.Description = "New Script";
|
||||
ScriptViewModels.Add(newViewModel);
|
||||
CurrentScriptViewModel = newViewModel;
|
||||
}
|
||||
|
||||
private void OnCloseScriptCommand(ILootFilterScriptViewModel scriptViewModel)
|
||||
private void OnCloseScriptCommand(IItemFilterScriptViewModel scriptViewModel)
|
||||
{
|
||||
CurrentScriptViewModel = scriptViewModel;
|
||||
if (!CurrentScriptViewModel.IsDirty)
|
||||
|
|
|
@ -8,13 +8,13 @@ namespace Filtration.ViewModels
|
|||
{
|
||||
internal interface IReplaceColorsViewModel
|
||||
{
|
||||
void Initialise(LootFilterScript lootFilterScript, LootFilterBlock initialiseFromBlock);
|
||||
void Initialise(LootFilterScript lootFilterScript);
|
||||
void Initialise(ItemFilterScript itemFilterScript, ItemFilterBlock initialiseFromBlock);
|
||||
void Initialise(ItemFilterScript itemFilterScript);
|
||||
}
|
||||
|
||||
internal class ReplaceColorsViewModel : FiltrationViewModelBase, IReplaceColorsViewModel
|
||||
{
|
||||
private LootFilterScript _lootFilterScript;
|
||||
private ItemFilterScript _itemFilterScript;
|
||||
private ReplaceColorsParameterSet _replaceColorsParameterSet;
|
||||
|
||||
public ReplaceColorsViewModel()
|
||||
|
@ -24,7 +24,7 @@ namespace Filtration.ViewModels
|
|||
|
||||
public RelayCommand ReplaceColorsCommand { get; private set; }
|
||||
|
||||
public void Initialise(LootFilterScript lootFilterScript, LootFilterBlock initialiseFromBlock)
|
||||
public void Initialise(ItemFilterScript itemFilterScript, ItemFilterBlock initialiseFromBlock)
|
||||
{
|
||||
_replaceColorsParameterSet = new ReplaceColorsParameterSet();
|
||||
|
||||
|
@ -55,7 +55,7 @@ namespace Filtration.ViewModels
|
|||
_replaceColorsParameterSet.NewBorderColor = existingBlockColor;
|
||||
}
|
||||
|
||||
_lootFilterScript = lootFilterScript;
|
||||
_itemFilterScript = itemFilterScript;
|
||||
}
|
||||
|
||||
public Color NewTextColor
|
||||
|
@ -159,15 +159,15 @@ namespace Filtration.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public void Initialise(LootFilterScript lootFilterScript)
|
||||
public void Initialise(ItemFilterScript itemFilterScript)
|
||||
{
|
||||
_replaceColorsParameterSet = new ReplaceColorsParameterSet();
|
||||
_lootFilterScript = lootFilterScript;
|
||||
_itemFilterScript = itemFilterScript;
|
||||
}
|
||||
|
||||
private void OnReplaceColorsCommand()
|
||||
{
|
||||
_lootFilterScript.ReplaceColors(_replaceColorsParameterSet);
|
||||
_itemFilterScript.ReplaceColors(_replaceColorsParameterSet);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,18 +9,18 @@ namespace Filtration.Views
|
|||
{
|
||||
public override DataTemplate SelectTemplate(object item, DependencyObject container)
|
||||
{
|
||||
var viewModel = item as LootFilterBlockViewModel;
|
||||
var viewModel = item as ItemFilterBlockViewModel;
|
||||
var element = container as FrameworkElement;
|
||||
|
||||
if (viewModel == null || element == 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
|
@ -10,7 +10,7 @@
|
|||
xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes"
|
||||
xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
|
||||
d:DesignHeight="120" d:DesignWidth="175">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
|
@ -0,0 +1,10 @@
|
|||
namespace Filtration.Views
|
||||
{
|
||||
public partial class ItemFilterBlockDisplaySettingsView
|
||||
{
|
||||
public ItemFilterBlockDisplaySettingsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
|
@ -11,7 +11,7 @@
|
|||
xmlns:enums="clr-namespace:Filtration.Enums"
|
||||
xmlns:extensions="clr-namespace:Filtration.Extensions"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
|
||||
d:DesignHeight="200" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
|
@ -114,7 +114,7 @@
|
|||
AllowsTransparency="True"
|
||||
HorizontalOffset="-5"
|
||||
Width="250">
|
||||
<views:LootFilterBlockDisplaySettingsView />
|
||||
<views:ItemFilterBlockDisplaySettingsView />
|
||||
</Popup>
|
||||
</Grid>
|
||||
</Expander.Header>
|
|
@ -1,8 +1,8 @@
|
|||
namespace Filtration.Views
|
||||
{
|
||||
public partial class LootFilterBlockView
|
||||
public partial class ItemFilterBlockView
|
||||
{
|
||||
public LootFilterBlockView()
|
||||
public ItemFilterBlockView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
|
@ -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:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
|
@ -7,19 +7,19 @@
|
|||
xmlns:viewModels="clr-namespace:Filtration.ViewModels"
|
||||
xmlns:userControls="clr-namespace:Filtration.UserControls"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterScriptViewModel}"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterScriptViewModel}"
|
||||
d:DesignHeight="300" d:DesignWidth="600">
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary>
|
||||
<!-- ReSharper disable once Xaml.RedundantResource -->
|
||||
<DataTemplate x:Key="LootFilterBlockTemplate">
|
||||
<views:LootFilterBlockView Margin="0,2,0,2" />
|
||||
<DataTemplate x:Key="ItemFilterBlockTemplate">
|
||||
<views:ItemFilterBlockView Margin="0,2,0,2" />
|
||||
</DataTemplate>
|
||||
<!-- ReSharper disable once Xaml.RedundantResource -->
|
||||
<DataTemplate x:Key="LootFilterSectionTemplate">
|
||||
<views:LootFilterSectionView Margin="0,2,0,2" />
|
||||
<DataTemplate x:Key="ItemFilterSectionTemplate">
|
||||
<views:ItemFilterSectionView Margin="0,2,0,2" />
|
||||
</DataTemplate>
|
||||
<views:BlockTemplateSelector x:Key="BlockTemplateSelector" />
|
||||
</ResourceDictionary>
|
||||
|
@ -67,7 +67,7 @@
|
|||
</TextBlock.LayoutTransform>
|
||||
</TextBlock>
|
||||
</Expander.Header>
|
||||
<ListBox ItemsSource="{Binding LootFilterSectionViewModels}"
|
||||
<ListBox ItemsSource="{Binding ItemFilterSectionViewModels}"
|
||||
SelectedItem="{Binding SectionBrowserSelectedViewModel}"
|
||||
x:Name="SectionBrowserListBox"
|
||||
SelectionChanged="SectionBrowserListBox_OnSelectionChanged"
|
||||
|
@ -79,7 +79,7 @@
|
|||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Expander>
|
||||
<userControls:AutoScrollingListBox ItemsSource="{Binding LootFilterBlockViewModels}"
|
||||
<userControls:AutoScrollingListBox ItemsSource="{Binding ItemFilterBlockViewModels}"
|
||||
Margin="5,5,5,5"
|
||||
Padding="5"
|
||||
HorizontalContentAlignment="Stretch"
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
namespace Filtration.Views
|
||||
{
|
||||
public partial class LootFilterScriptView
|
||||
public partial class ItemFilterScriptView
|
||||
{
|
||||
public LootFilterScriptView()
|
||||
public ItemFilterScriptView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
|
@ -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:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:viewModels="clr-namespace:Filtration.ViewModels"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:LootFilterBlockViewModel}"
|
||||
d:DataContext="{d:DesignInstance Type=viewModels:ItemFilterBlockViewModel}"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="50" d:DesignWidth="300">
|
||||
<UserControl.Resources>
|
|
@ -1,8 +1,8 @@
|
|||
namespace Filtration.Views
|
||||
{
|
||||
public partial class LootFilterSectionView
|
||||
public partial class ItemFilterSectionView
|
||||
{
|
||||
public LootFilterSectionView()
|
||||
public ItemFilterSectionView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
namespace Filtration.Views
|
||||
{
|
||||
public partial class LootFilterBlockDisplaySettingsView
|
||||
{
|
||||
public LootFilterBlockDisplaySettingsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -58,7 +58,7 @@
|
|||
<TabControl.ContentTemplate>
|
||||
<DataTemplate>
|
||||
<controls:MetroContentControl>
|
||||
<views:LootFilterScriptView DataContext="{Binding}" />
|
||||
<views:ItemFilterScriptView DataContext="{Binding}" />
|
||||
</controls:MetroContentControl>
|
||||
</DataTemplate>
|
||||
</TabControl.ContentTemplate>
|
||||
|
|
|
@ -15,8 +15,8 @@ namespace Filtration.WindsorInstallers
|
|||
.LifeStyle.Singleton);
|
||||
|
||||
container.Register(
|
||||
Component.For<ILootFilterPersistenceService>()
|
||||
.ImplementedBy<LootFilterPersistenceService>()
|
||||
Component.For<IItemFilterPersistenceService>()
|
||||
.ImplementedBy<ItemFilterPersistenceService>()
|
||||
.LifeStyle.Singleton);
|
||||
|
||||
container.Register(
|
||||
|
|
|
@ -10,13 +10,13 @@ namespace Filtration.WindsorInstallers
|
|||
public void Install(IWindsorContainer container, IConfigurationStore store)
|
||||
{
|
||||
container.Register(
|
||||
Component.For<ILootFilterScriptTranslator>()
|
||||
.ImplementedBy<LootFilterScriptTranslator>()
|
||||
Component.For<IItemFilterScriptTranslator>()
|
||||
.ImplementedBy<ItemFilterScriptTranslator>()
|
||||
.LifeStyle.Singleton);
|
||||
|
||||
container.Register(
|
||||
Component.For<ILootFilterBlockTranslator>()
|
||||
.ImplementedBy<LootFilterBlockTranslator>()
|
||||
Component.For<IItemFilterBlockTranslator>()
|
||||
.ImplementedBy<ItemFilterBlockTranslator>()
|
||||
.LifeStyle.Singleton);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,13 +16,13 @@ namespace Filtration.WindsorInstallers
|
|||
.LifeStyle.Transient);
|
||||
|
||||
container.Register(
|
||||
Component.For<ILootFilterBlockViewModel>()
|
||||
.ImplementedBy<LootFilterBlockViewModel>()
|
||||
Component.For<IItemFilterBlockViewModel>()
|
||||
.ImplementedBy<ItemFilterBlockViewModel>()
|
||||
.LifeStyle.Transient);
|
||||
|
||||
container.Register(
|
||||
Component.For<ILootFilterScriptViewModel>()
|
||||
.ImplementedBy<LootFilterScriptViewModel>()
|
||||
Component.For<IItemFilterScriptViewModel>()
|
||||
.ImplementedBy<ItemFilterScriptViewModel>()
|
||||
.LifeStyle.Transient);
|
||||
|
||||
container.Register(
|
||||
|
@ -32,10 +32,10 @@ namespace Filtration.WindsorInstallers
|
|||
|
||||
container.AddFacility<TypedFactoryFacility>();
|
||||
container.Register(
|
||||
Component.For<ILootFilterBlockViewModelFactory>().AsFactory());
|
||||
Component.For<IItemFilterBlockViewModelFactory>().AsFactory());
|
||||
|
||||
container.Register(
|
||||
Component.For<ILootFilterScriptViewModelFactory>().AsFactory());
|
||||
Component.For<IItemFilterScriptViewModelFactory>().AsFactory());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue