//public static MachineViewModels.ViewModels.Links.ILinkViewModel Convert(this ILink link, string description = "")
        //{
        //    if (link == null) return null;

        //    if (link is LinearPosition linPos)
        //    {
        //        var vm = new LinearPositionViewModel();

        //        MachineViewModels.Extensions.LinkExtensions.UpdateViewModel(vm, linPos);
        //        vm.Description = description;
        //        vm.Value = linPos.Pos;
        //        vm.ValueChanged += (s, e) => Messenger.Default.Send(new UpdateLinearLinkStateMessage(linPos.Id, e));

        //        return vm;
        //    }
        //    else if (link is TwoPositionsLink pnmPos)
        //    {
        //        var vm = new TwoPositionViewModel();

        //        MachineViewModels.Extensions.LinkExtensions.UpdateViewModel(vm, pnmPos);
        //        vm.Description = description;
        //        vm.ValueChanged += (s, e) => Messenger.Default.Send(new UpdateTwoPositionLinkStateMessage(pnmPos.Id, e));


        //        return vm;
        //    }
        //    else
        //    {
        //        throw new NotImplementedException();
        //    }
        //}


        public static MachineModels.Enums.LinkType GetLinkType(this MachineViewModels.ViewModels.Links.ILinkViewModel link)
        {
            if (link is MachineViewModels.ViewModels.Links.LinearPositionViewModel)
            {
                return(MachineModels.Enums.LinkType.LinearPosition);
            }
            else if (link is MachineViewModels.ViewModels.Links.TwoPositionLinkViewModel)
            {
                return(MachineModels.Enums.LinkType.LinearPneumatic);
            }
            else
            {
                throw new ArgumentException("Invalid argument type!");
            }
        }
Ejemplo n.º 2
0
 public static LinkType GetLinkType(this MachineViewModels.ViewModels.Links.ILinkViewModel link) => MachineViewModels.Extensions.LinkExtensions.GetLinkTypeImplementation(link);