Exemplo n.º 1
0
        public PBIdentityComposite LoadFromFile(string path)
        {
            try
            {
                if (File.Exists(path))
                {
                    Professionbuddy.Log("Loading profile {0}", path);
                    ProfilePath = path;

                    if (Path.GetExtension(path).Equals(".package", StringComparison.InvariantCultureIgnoreCase))
                    {
                        using (Package zipFile = Package.Open(path, FileMode.Open, FileAccess.Read))
                        {
                            var packageRelation = zipFile.GetRelationships().FirstOrDefault();
                            if (packageRelation == null)
                            {
                                Professionbuddy.Err("{0} contains no usable profiles", path);
                                return(null);
                            }
                            PackagePart pbProfilePart = zipFile.GetPart(packageRelation.TargetUri);
                            path = ExtractPart(pbProfilePart, _pb.TempFolder);
                            var pbProfileRelations = pbProfilePart.GetRelationships();
                            foreach (var rel in pbProfileRelations)
                            {
                                var hbProfilePart = zipFile.GetPart(rel.TargetUri);
                                ExtractPart(hbProfilePart, _pb.TempFolder);
                            }
                        }
                    }
                    Branch.Children.Clear();
                    PBIdentityComposite idComp;
                    XmlReaderSettings   settings = new XmlReaderSettings();
                    settings.IgnoreWhitespace             = true;
                    settings.IgnoreProcessingInstructions = true;
                    settings.IgnoreComments = true;

                    using (XmlReader reader = XmlReader.Create(path, settings))
                    {
                        idComp = new PBIdentityComposite(Branch);
                        idComp.ReadXml(reader);
                    }
                    XmlPath = path;
                    return(idComp);
                }
                else
                {
                    Professionbuddy.Err("Profile: {0} does not exist", path);
                    return(null);
                }
            }
            catch (Exception ex) { Professionbuddy.Err(ex.ToString()); return(null); }
        }
 public static bool LoadProfile(string path)
 {
     if (File.Exists(path))
     {
         Log("Loading profile {0}", path);
         PBIdentityComposite idComp = Instance.CurrentProfile.LoadFromFile(path);
         if (idComp != null)
         {
             if (MainForm.IsValid)
             {
                 MainForm.Instance.InitActionTree();
                 MainForm.Instance.RefreshTradeSkillTabs();
             }
             Instance.MySettings.LastProfile = path;
             Instance.Root = idComp;
             Instance.ProfileSettings.Load();
             Instance.GenorateDynamicCode();
             Instance.UpdateMaterials();
         }
         else
         {
             return(false);
         }
     }
     else
     {
         Err("Profile: {0} does not exist", path);
         Instance.MySettings.LastProfile = path;
         return(false);
     }
     if (MainForm.IsValid)
     {
         MainForm.Instance.UpdateControls();
     }
     Instance.MySettings.Save();
     return(true);
 }