private IList <global::Part> GetParts(TransferPartType type, object obj)
        {
            var parts = new List <global::Part>();

            switch (type)
            {
            case TransferPartType.Part:
                var partValue = obj as PartValue;
                parts.Add(partValue.Part);
                break;

            case TransferPartType.Parts:
                var listValue = (obj as ListValue);
                if (listValue != null)
                {
                    var partValues = listValue.OfType <PartValue>();
                    parts.AddRange(partValues.Select(pv => pv.Part));
                    break;
                }
                var partListValue = obj as ListValue <PartValue>;
                if (partListValue != null)
                {
                    parts.AddRange(partListValue.Select(pv => pv.Part));
                    break;
                }
                break;

            case TransferPartType.Element:
                var element      = obj as ElementValue;
                var elementParts = element.Parts.Cast <PartValue>();
                parts.AddRange(elementParts.Select(part => part.Part));
                break;

            default:
                throw new ArgumentOutOfRangeException("type");
            }

            return(parts.Where(part => part.Resources != null && part.Resources.Contains(resourceInfo.id)).ToList());
        }
Exemple #2
0
        private IList<global::Part> GetParts(TransferPartType type, object obj)
        {
            var parts = new List<global::Part>();
            switch (type)
            {
                case TransferPartType.Part:
                {

                    var partValue = obj as PartValue;
                    parts.Add(partValue.Part);
                    break;
                }
                case TransferPartType.Parts:
                {
                    var listValue = (obj as ListValue);
                    if (listValue != null)
                    {
                        var partValues = listValue.OfType<PartValue>();
                        parts.AddRange(partValues.Select(partValue => partValue.Part));
                    }
                    break;
                }
                case TransferPartType.Element:
                    var element = obj as ElementValue;
                    var elementParts = element.Parts.Cast<PartValue>();
                    parts.AddRange(elementParts.Select(part => part.Part));
                    break;
                default:
                    throw new ArgumentOutOfRangeException("type");
            }

            return parts.Where(part => part.Resources != null && part.Resources.Contains(resourceInfo.id)).ToList();
        }
Exemple #3
0
 private void DetermineTypes()
 {
     transferToType = DetermineType(transferTo);
     transferFromType = DetermineType(transferFrom);
 }
 private void DetermineTypes()
 {
     transferToType   = DetermineType(transferTo);
     transferFromType = DetermineType(transferFrom);
 }