Exemple #1
0
        internal static object ConvertPSObjectToOriginalType(PSObject psObject, int remoteServerVersion, Task.TaskVerboseLoggingDelegate writeVerbose)
        {
            if (psObject == null)
            {
                throw new ArgumentNullException("psObject");
            }
            Type type = MonadCommand.ResolveType(psObject);

            if (remoteServerVersion >= Server.E15MinVersion)
            {
                if (psObject.Members["SerializationData"] == null || psObject.Members["SerializationData"].Value == null)
                {
                    if (writeVerbose != null)
                    {
                        writeVerbose(Strings.VerboseSerializationDataNotExist);
                    }
                }
                else
                {
                    try
                    {
                        return(ProxyHelper.TypeConvertor.ConvertFrom(psObject, type, null, true));
                    }
                    catch (Exception ex)
                    {
                        if (writeVerbose != null)
                        {
                            writeVerbose(Strings.VerboseFailedToDeserializePSObject(ex.Message));
                        }
                    }
                }
            }
            return(MockObjectInformation.TranslateToMockObject(type, psObject));
        }
        public object Clone()
        {
            DataObjectProfile dataObjectProfile = new DataObjectProfile(this.Name, this.Type, this.Retriever, this.Validator);

            if (PSConnectionInfoSingleton.GetInstance().Type != OrganizationType.Cloud)
            {
                dataObjectProfile.DataObject = ((this.DataObject is ICloneable) ? ((ICloneable)this.DataObject).Clone() : this.DataObject);
            }
            else if (this.DataObject != null)
            {
                ConfigurableObject configurableObject = this.DataObject as ConfigurableObject;
                if (configurableObject != null)
                {
                    ConfigurableObject configurableObject2 = MockObjectInformation.CreateDummyObject(configurableObject.GetType()) as ConfigurableObject;
                    configurableObject2.propertyBag = (configurableObject.propertyBag.Clone() as PropertyBag);
                    dataObjectProfile.DataObject    = configurableObject2;
                }
                else
                {
                    dataObjectProfile.DataObject = this.DataObject;
                }
            }
            return(dataObjectProfile);
        }