Atomia.Provisioning.Modules.Folders.Helpers.Common.DeserializeService C# (CSharp) Method

DeserializeService() public static method

public static DeserializeService ( string serviceSerialized ) : ModuleService
serviceSerialized string
return ModuleService
        public static ModuleService DeserializeService(string serviceSerialized)
        {
            ModuleService result = null;
            //serviceSerialized = serviceSerialized.Replace("_#_#_", " ");

            JavaScriptSerializer oSerializer = new JavaScriptSerializer();
            Dictionary<string, Dictionary<string, string>> serviceFull = (Dictionary<string, Dictionary<string, string>>)oSerializer.Deserialize(serviceSerialized, typeof(Dictionary<string, Dictionary<string, string>>));

            string serviceKey = "current";
            ModuleService lastService = null;

            for (int i = 0; i < serviceFull.Count; i++)
            {

                Dictionary<string, string> oneServiceDict = serviceFull[serviceKey];

                ModuleService tempService = new ModuleService(oneServiceDict["serviceMetaData_Name"], oneServiceDict["serviceMetaData_PhysicalID"]);
                tempService.InstanceId = oneServiceDict["serviceMetaData_InstanceId"];
                //tempService.LogicalID = oneServiceDict["serviceMetaData_LogicalID"]; readonly
                //tempService.Name = oneServiceDict["serviceMetaData_Name"]; readonly
                //tempService.PhysicalID = oneServiceDict["serviceMetaData_PhysicalID"]; set in constructor
                tempService.ProvisioningId = oneServiceDict["serviceMetaData_ProvisioningId"];

                foreach (KeyValuePair<String, String> entry in oneServiceDict)
                {
                    if (entry.Key.IndexOf("serviceMetaData_") < 0)
                    {
                        tempService.Properties.Add(new ModuleServiceProperty(entry.Key, entry.Value));
                    }
                }

                if (serviceKey == "current")
                {
                    lastService = tempService;
                    result = lastService;
                }
                else
                {
                    lastService.Parent = tempService;
                    lastService = lastService.Parent;
                }
                serviceKey = serviceKey + ".parent";

            }

            return result;
        }