public CollectObject Hydrate(RawCollectResult res)
        {
            switch (res.ResultType)
            {
            case RESULT_TYPE.CERTIFICATE:
                return(JsonConvert.DeserializeObject <CertificateObject>(res.Serialized));

            case RESULT_TYPE.FILE:
                return(JsonConvert.DeserializeObject <FileSystemObject>(res.Serialized));

            case RESULT_TYPE.PORT:
                return(JsonConvert.DeserializeObject <OpenPortObject>(res.Serialized));

            case RESULT_TYPE.REGISTRY:
                return(JsonConvert.DeserializeObject <RegistryObject>(res.Serialized));

            case RESULT_TYPE.SERVICE:
                return(JsonConvert.DeserializeObject <ServiceObject>(res.Serialized));

            case RESULT_TYPE.USER:
                return(JsonConvert.DeserializeObject <UserAccountObject>(res.Serialized));

            default:
                return(null);
            }
        }
        /// <summary>
        /// Deserialize a Collect object from a RawCollectResult
        /// </summary>
        /// <param name="res">The RawCollectResult containing the JsonSerialized object to hydrate.</param>
        /// <returns>An appropriately typed collect object based on the collect result passed in, or null if the RESULT_TYPE is unknown.</returns>
        public static CollectObject Hydrate(RawCollectResult res)
        {
            if (res == null)
            {
                throw new NullReferenceException();
            }
            switch (res.ResultType)
            {
            case RESULT_TYPE.CERTIFICATE:
                return(JsonSerializer.Deserialize <CertificateObject>(res.Serialized));

            case RESULT_TYPE.FILE:
                return(JsonSerializer.Deserialize <FileSystemObject>(res.Serialized));

            case RESULT_TYPE.PORT:
                return(JsonSerializer.Deserialize <OpenPortObject>(res.Serialized));

            case RESULT_TYPE.REGISTRY:
                return(JsonSerializer.Deserialize <RegistryObject>(res.Serialized));

            case RESULT_TYPE.SERVICE:
                return(JsonSerializer.Deserialize <ServiceObject>(res.Serialized));

            case RESULT_TYPE.USER:
                return(JsonSerializer.Deserialize <UserAccountObject>(res.Serialized));

            case RESULT_TYPE.GROUP:
                return(JsonSerializer.Deserialize <GroupAccountObject>(res.Serialized));

            case RESULT_TYPE.FIREWALL:
                return(JsonSerializer.Deserialize <FirewallObject>(res.Serialized));

            case RESULT_TYPE.COM:
                return(JsonSerializer.Deserialize <ComObject>(res.Serialized));

            case RESULT_TYPE.LOG:
                return(JsonSerializer.Deserialize <EventLogObject>(res.Serialized));

            default:
                return(null);
            }
        }