Beispiel #1
0
        public static IEnumerable <KeyPairVm> UpdateKeyPairVms(this IEnumerable <KeyPairVm> keyPairVms, IEnumerable <SortableItemVm> sortableItemVms)
        {
            foreach (var kpvm in keyPairVms)
            {
                var sortableItemsLow = sortableItemVms.FirstOrDefault(
                    swm => (swm.KeyLinePos == kpvm.LowKey));
                var sortableItemHi = sortableItemVms.FirstOrDefault(
                    swm => (swm.KeyLinePos == kpvm.HiKey));

                if (sortableItemsLow.SortableValue > sortableItemHi.SortableValue)
                {
                    var kpv = new KeyPairVm(
                        disabledBrush: kpvm.DisabledBrush,
                        inUseBrush: kpvm.InUseBrush,
                        wasUsedBrush: kpvm.WasUsedBrush,
                        keyPairUse: KeyPairUse.InUse,
                        stageSection: kpvm.StageSection,
                        stageIndex: kpvm.StageIndex,
                        hiKey: kpvm.HiKey,
                        lowKey: kpvm.LowKey,
                        useCount: kpvm.UseCount + 1
                        );
                    yield return(kpv);
                }
                else
                {
                    yield return(kpvm);
                }
            }
        }
Beispiel #2
0
 public static KeyPairVm ResetUseHistory(this KeyPairVm keyPairVm)
 {
     return(new KeyPairVm(
                disabledBrush: keyPairVm.DisabledBrush,
                inUseBrush: keyPairVm.InUseBrush,
                wasUsedBrush: keyPairVm.WasUsedBrush,
                stageSection: keyPairVm.StageSection,
                keyPairUse: (keyPairVm.KeyPairUse == KeyPairUse.InUse) ? KeyPairUse.Enabled : keyPairVm.KeyPairUse,
                stageIndex: keyPairVm.StageIndex,
                hiKey: keyPairVm.HiKey,
                lowKey: keyPairVm.LowKey,
                useCount: 0));
 }
Beispiel #3
0
        public static void DrawSwitch(this DrawingContext dc, StageVmStyle stageVmStyle,
                                      int order, KeyPairVm keyPairVm,
                                      double stageRenderWidth, double stageRenderHeight)
        {
            var pen         = stageVmStyle.SwitchLinePen(keyPairVm, stageRenderWidth);
            var renderX     = stageVmStyle.SortableVmStyle.RenderXMidStageSection(keyPairVm.StageSection, stageRenderWidth);
            var renderYLow  = stageVmStyle.RenderYKeyLineBottom(keyPairVm.LowKey, stageRenderHeight);
            var renderYHigh = stageVmStyle.RenderYKeyLineTop(keyPairVm.HiKey, stageRenderHeight);
            var pointLow    = new Point(renderX, renderYLow);
            var pointHigh   = new Point(renderX, renderYHigh);

            dc.DrawLine(pen, pointLow, pointHigh);
        }
Beispiel #4
0
        public static Pen SwitchLinePen(this StageVmStyle stageVmStyle, KeyPairVm keyPairVm, double stageRenderWidth)
        {
            var brushWidth = stageVmStyle.SortableVmStyle.RenderWidth(stageVmStyle.SwitchLineWidth, stageRenderWidth);

            return(new Pen(keyPairVm.Brush, brushWidth));
        }