public void WhenTwoPlacementsCloseAndOneHasServer_ThenPlacementIsMerged() { var p1 = new InstancePlacement( null, null, new DateTime(2020, 1, 1, 10, 0, 0), new DateTime(2020, 1, 1, 11, 0, 0)); var p2 = new InstancePlacement( "server-1", SampleNodeType, new DateTime(2020, 1, 1, 11, 0, 50), new DateTime(2020, 1, 1, 12, 0, 0)); Assert.IsTrue(p1.IsAdjacent(p2)); var merged = p1.Merge(p2); Assert.AreEqual( new DateTime(2020, 1, 1, 10, 0, 0), merged.From); Assert.AreEqual( new DateTime(2020, 1, 1, 12, 0, 0), merged.To); Assert.AreEqual("server-1", merged.ServerId); Assert.AreEqual(SampleNodeType, merged.NodeType); }
public void WhenTwoPlacementsCloseAndBothHaveDifferentServers_ThenPlacementIsNotMerged() { var p1 = new InstancePlacement( "server2", new DateTime(2020, 1, 1, 10, 0, 0), new DateTime(2020, 1, 1, 11, 0, 0)); var p2 = new InstancePlacement( "server1", new DateTime(2020, 1, 1, 11, 0, 50), new DateTime(2020, 1, 1, 12, 0, 0)); Assert.IsFalse(p1.IsAdjacent(p2)); }
public void WhenTwoPlacementsNotClose_ThenPlacementIsNotMerged() { var p1 = new InstancePlacement( null, new DateTime(2020, 1, 1, 10, 0, 0), new DateTime(2020, 1, 1, 11, 0, 0)); var p2 = new InstancePlacement( null, new DateTime(2020, 1, 1, 11, 2, 0), new DateTime(2020, 1, 1, 12, 0, 0)); Assert.IsFalse(p1.IsAdjacent(p2)); }
//public void RefreshObject(string paletteKey, ObjectPlacement placement, string fieldId) //{ // var holder = InstanceHolders[paletteKey]; // var index = holder.Definition.Placements.IndexOf(placement); // if (fieldId == FieldId.Variant) // (holder.Elements[index] as ObjectModel3D)?.SetVariant(placement.Variant); // else if (fieldId == FieldId.PaletteIndex) // { // ConfigurePlacement(holder, index); // var info = holder.GetInfoForIndex(index); // info.TreeItem.Header = info.Placement.GetDisplayName(); // info.TreeItem.Tag = info.Element; // var listItem = bspModel.Items.FirstOrDefault(i => i.Tag == info.Placement); // if (listItem != null) // listItem.Content = info.TreeItem.Header; // } //} private void BindPlacement(InstancePlacement placement, Helix.Element3D model) { var binding = new MultiBinding { Converter = MatrixTransformConverter.Instance, Mode = BindingMode.TwoWay }; binding.Bindings.Add(new Binding(nameof(InstancePlacement.TransformScale)) { Mode = BindingMode.TwoWay }); binding.Bindings.Add(new Binding(nameof(InstancePlacement.Transform)) { Mode = BindingMode.TwoWay }); model.DataContext = placement; BindingOperations.SetBinding(model, Helix.Element3D.TransformProperty, binding); }