示例#1
0
        public ConditionalSplit(Packages.VulcanPackage vulcanPackage, MainPipe dataFlowTask, IDTSComponentMetaData90 parentComponent, string name, string description)
            : base(vulcanPackage,
            dataFlowTask,
            parentComponent,
            name,
            description)
        {
            _csCom = dataFlowTask.ComponentMetaDataCollection.New();
            _csCom.ComponentClassID = "DTSTransform.ConditionalSplit";

            //IMPORTANT! If you do not Instantiate() first, the component names do not get set... this is bad.

            _csi = _csCom.Instantiate();
            _csi.ProvideComponentProperties();

            _csCom.Name = Name;
            _csCom.Description = Description;
            _csCom.ValidateExternalMetadata = true;

            _csi.AcquireConnections(null);
            _csi.ReinitializeMetaData();
            _csi.ReleaseConnections();
            dataFlowTask.PathCollection.New().AttachPathAndPropagateNotifications(
                                                                                  parentComponent.OutputCollection[0],
                                                                                  _csCom.InputCollection[0]
                                                                                  );

            IDTSVirtualInput90 vi = _csCom.InputCollection[0].GetVirtualInput();
            foreach (IDTSVirtualInputColumn90 vic in vi.VirtualInputColumnCollection)
            {
                this.SetInputUsageType(vi, vic, DTSUsageType.UT_READONLY);
            }
        }
示例#2
0
 public StoredProcEmitter(string procName, string body, Packages.VulcanPackage vulcanPackage)
     : base(vulcanPackage)
 {
     this._procName = procName;
     this._body = body;
     this._columnList = new List<string>();
 }
示例#3
0
        public FileSystemTask(
            Packages.VulcanPackage vulcanPackage, 
            string name, 
            string taskDescription, 
            DTS.IDTSSequence parentContainer,
            string sourceConnection, 
            string destConnection,  
            Microsoft.SqlServer.Dts.Tasks.FileSystemTask.DTSFileSystemOperation operation
            )
            : base(vulcanPackage,
            name,
            taskDescription,
            parentContainer)
        {
            Connection source = new Connection(vulcanPackage, sourceConnection, sourceConnection, "FILE",String.Format("\"{0}\"",ExpressionPathBuilder.EscapeBackslashes(sourceConnection)));
            Connection dest = new Connection(vulcanPackage, destConnection, destConnection, "FILE",String.Format("\"{0}\"",ExpressionPathBuilder.EscapeBackslashes(destConnection)));

            source.SetProperty("FileUsageType", 2);
            dest.SetProperty("FileUsageType", 2);
            fileSystemTask = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:FileSystemTask");
            fileSystemTask.Name = name;
            this.Task.Operation = operation;
            this.Task.Source = source.ConnectionManager.ID;
            this.Task.Destination = dest.ConnectionManager.ID;
        }
示例#4
0
        public DerivedColumns(Packages.VulcanPackage vulcanPackage, MainPipe dataFlowTask, IDTSComponentMetaData90 parentComponent, string name, string description )
            : base(vulcanPackage,
            dataFlowTask,
            parentComponent,
            name,
            description)
        {
            _dcCom = dataFlowTask.ComponentMetaDataCollection.New();
            _dcCom.ComponentClassID = "DTSTransform.DerivedColumn";

            //IMPORTANT! If you do not Instantiate() first, the component names do not get set... this is bad.

            _dci = _dcCom.Instantiate();
            _dci.ProvideComponentProperties();

            _dcCom.Name = Name;
            _dcCom.Description = Description;

            dataFlowTask.PathCollection.New().AttachPathAndPropagateNotifications(
                                                                                  parentComponent.OutputCollection[0],
                                                                                  _dcCom.InputCollection[0]
                                                                                  );

            _dci.AcquireConnections(null);
            _dci.ReinitializeMetaData();
            _dci.ReleaseConnections();
        }
示例#5
0
文件: Task.cs 项目: japj/vulcan
 protected Task(Packages.VulcanPackage vulcanPackage ,string taskName, string taskDescription, DTS.IDTSSequence parentContainer)
 {
     _vulcanPackage = vulcanPackage;
     _name = taskName;
     _description = taskDescription;
     _parentContainer = parentContainer;
 }
示例#6
0
        public static DerivedColumns CreateDerivedColumnsFromXml(Packages.VulcanPackage vulcanPackage, IDTSComponentMetaData90 parentComponent, MainPipe dataFlowTask, XPathNavigator derivedNav)
        {
            if (derivedNav == null || derivedNav.Name.ToUpperInvariant() != "DerivedColumns".ToUpperInvariant())
            {
                //We don't handle this.
                return null;
            }

            string componentName = derivedNav.SelectSingleNode("@Name", vulcanPackage.VulcanConfig.NamespaceManager).Value;
            Message.Trace(Severity.Debug, "Begin: DerivedColumns Transformation {0}", componentName);

            DerivedColumns dc = new DerivedColumns(vulcanPackage, dataFlowTask, parentComponent, componentName, componentName);

            foreach (XPathNavigator nav in derivedNav.Select("rc:Column", vulcanPackage.VulcanConfig.NamespaceManager))
            {
                string colName = nav.SelectSingleNode("@Name").Value;
                string typeAsString = nav.SelectSingleNode("@Type").Value;
                int length = nav.SelectSingleNode("@Length").ValueAsInt;
                int precision = nav.SelectSingleNode("@Precision").ValueAsInt;
                int scale = nav.SelectSingleNode("@Scale").ValueAsInt;
                int codepage = nav.SelectSingleNode("@Codepage").ValueAsInt;

                string expression = nav.Value;

                DataType type = TransformationFactory.GetDataTypeFromString(typeAsString);

                dc.AddOutputColumn(colName, type, expression, length, precision, scale, codepage);
            }
            return dc;
        }
示例#7
0
 public InsertDefaultValuesEmitter(string tableName, XPathNavigator tableNavigator, TableHelper tableHelper,Packages.VulcanPackage vulcanPackage)
     : base(tableName,
     tableNavigator,
     vulcanPackage)
 {
     _tableHelper = tableHelper;
 }
示例#8
0
 public InsertAndUpdateSPEmitter(string tableName, XPathNavigator tableNavigator, TableHelper tableHelper, Packages.VulcanPackage vulcanPackage)
     : base(vulcanPackage)
 {
     this._tableName = tableName;
     this._tableNavigator = tableNavigator;
     this._tableHelper = tableHelper;
 }
示例#9
0
 public ConstraintEmitter(Packages.VulcanPackage vulcanPackage, Constraint constraint, TableHelper tableHelper)
     : base(vulcanPackage)
 {
     this._tableHelper = tableHelper;
     this._constraint = constraint;
     this._tableHelper = tableHelper;
 }
示例#10
0
 public SelectEmitter(Packages.VulcanPackage vulcanPackage, string tableName, string columns, string where)
     : base(vulcanPackage)
 {
     this.tableName = tableName;
     this.columns = columns;
     this.where = where;
 }
示例#11
0
 public IndexEmitter(string tableName, XPathNavigator tableNavigator, Packages.VulcanPackage vulcanPackage)
     :base(
     tableName,
     tableNavigator,
     vulcanPackage
     )
 {
 }
 public List<StarterKit> Get(string umbracoVersion = null)
 {
     var projects = new Packages();
     var starterKitsIterator = projects.GetProjects();
     var umbracoNodes = GetUmbracoNodes(starterKitsIterator);
     var starterKits = GetStarterKits(umbracoNodes, umbracoVersion);
     return starterKits.ToList();
 }
示例#13
0
 public TemplateEmitter(String templateName, Packages.VulcanPackage vulcanPackage, params string[] parameters)
     :base(
     vulcanPackage
     )
 {
     this._template = vulcanPackage.TemplateManager[templateName];
     this.SetParameters(parameters);
 }
示例#14
0
文件: SQLTask.cs 项目: japj/vulcan
 public SQLTask(Packages.VulcanPackage package, string name, string description, DTS.IDTSSequence parentContainer,Connection destinationConnection)
     : this(package,
     name, 
     description, 
     parentContainer, 
     destinationConnection,
     null)
 {
 }
示例#15
0
 public TableModifierEmitter(string tableName, XPathNavigator tableNavigator, Packages.VulcanPackage vulcanPackage)
     :
     base(
     vulcanPackage
     )
 {
     this._tableName = tableName;
     this._tableNavigator = tableNavigator;
 }
示例#16
0
 public PrecedenceConstraint(Packages.VulcanPackage vulcanPackage, string from, string to, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, 
         from + "_" + to,
         "", 
         parentContainer)
 {
     this.from = from;
     this.to = to;
 }
示例#17
0
        public void ShouldMethod()
        {
            // Arrange
            var packages = new Packages();

            // Act
            var search = packages.Search("", "", false);

            // Assert
            Assert.That(search.Count(),Is.EqualTo(2));
        }
示例#18
0
 protected Transformation(
     Packages.VulcanPackage vulcanPackage,
     MainPipe dataFlowTask,
     IDTSComponentMetaData90 parentComponent,
     string name,
     string description
     )
 {
     this._vulcanPackage = vulcanPackage;
     this._dataFlowTask = dataFlowTask;
     this._parentComponent = parentComponent;
     this._name = name;
     this._description = description;
 }
示例#19
0
        public LogtainerLog(Packages.VulcanPackage vulcanPackage, string logName, string sourceColumn, string destinationColumn, string table, string tableConnectionName)
        {
            _sourceColumn = sourceColumn;
            _destinationColumn = destinationColumn;
            _table = table;
            _tableConnectionName = tableConnectionName;

            _vulcanPackage = vulcanPackage;
            _logName = logName;
            _columnVariableDictionary = new Dictionary<string, Microsoft.SqlServer.Dts.Runtime.Variable>();
            _logVariable = vulcanPackage.AddVariable(logName, (System.Int32)(-1));
            _lastRecordLogVariable = vulcanPackage.AddVariable(logName + Resources.LastSuccessfulRunLogID, (System.Int32)(-1));
            _isAnotherInstanceCurrentlyRunningLogVariable = vulcanPackage.AddVariable(logName + Resources.IsAnotherInstanceCurrentlyRunningLogID, (System.Int32)0);
        }
示例#20
0
        void OnGUI()
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Simple IAP System - Billing Plugin Setup", EditorStyles.boldLabel);
            EditorGUILayout.LabelField("Please choose the billing plugin you are using for SIS:");

            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();

            selectedPackage = (Packages)EditorGUILayout.EnumPopup(selectedPackage);

            if (GUILayout.Button("?", GUILayout.Width(20)))
            {
                switch (selectedPackage)
                {
                    case Packages.UnityIAP:
                        Application.OpenURL("https://unity3d.com/services/analytics/iap");
                        break;
                    case Packages.Prime31:
                        Application.OpenURL("https://www.assetstore.unity3d.com/#/publisher/270");
                        break;
                    case Packages.StansAssets:
                        Application.OpenURL("https://www.assetstore.unity3d.com/#/publisher/2256");
                        break;
                    case Packages.VoxelBusters:
                        Application.OpenURL("https://www.assetstore.unity3d.com/en/#!/publisher/11527");
                        break;
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();

            if (GUILayout.Button("Import"))
            {
                AssetDatabase.ImportPackage(packagesPath + selectedPackage.ToString() + ".unitypackage", true);
            }

            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Note:", EditorStyles.boldLabel);
            EditorGUILayout.LabelField("Unity IAP is a free option to the paid plugins (Unity 5.3+).");
            EditorGUILayout.LabelField("If you only want virtual currency and items (no real money");
            EditorGUILayout.LabelField("products) then you don't have to import a billing plugin.");

            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Please read the PDF documentation for further details.");
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Support links: Window > Simple IAP System > About.");
        }
示例#21
0
 public ExecutePackageTask(
     Packages.VulcanPackage vulcanPackage, 
     string name, 
     string taskDescription, 
     DTS.IDTSSequence parentContainer,
     Connection packageConnection
     )
     : base(vulcanPackage,
     name,
     taskDescription,
     parentContainer)
 {
     executePackageTaskHost = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:ExecutePackageTask");
     executePackageTaskHost.Name = name;
     Task.Connection = packageConnection.ConnectionManager.ID;
 }
示例#22
0
文件: SQLTask.cs 项目: japj/vulcan
        public SQLTask(Packages.VulcanPackage package, string name, string description, DTS.IDTSSequence parentContainer, Connection destinationConnection, Dictionary<string,object> propertiesDictionary)
            : base(package,
            name,
            description,
            parentContainer)
        {
            this._expressionBuilder = new Vulcan.Common.Helpers.ExpressionPathBuilder(package);

            _sqlTask = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:SQLTask");
            _sqlTask.Name = name;
            _sqlTask.Description = description;

            SetProperties(propertiesDictionary);
            if (destinationConnection != null)
            {
                SetProperty("Connection", destinationConnection.ConnectionManager.Name);
            }
        }
示例#23
0
文件: Connection.cs 项目: japj/vulcan
        public Connection(Packages.VulcanPackage vulcanPackage, string name, string description, string connectionType, string connectionString)
            : base(vulcanPackage,
            name,
            description,
            vulcanPackage.DTSPackage)
        {
            if (vulcanPackage.DTSPackage.Connections.Contains(name))
            {
                this._connectionManager = vulcanPackage.DTSPackage.Connections[name];
                return;
            }
            else
            {
                switch (connectionType.ToUpperInvariant())
                {
                    case "FILE":
                        _connectionManager = vulcanPackage.DTSPackage.Connections.Add("FILE");
                        SetExpression("ConnectionString", connectionString);
                        break;
                    case "FTP":
                        _connectionManager = vulcanPackage.DTSPackage.Connections.Add("FTP");
                        SetExpression("ConnectionString", connectionString);
                        break;
                    case "OLEDB":
                        _connectionManager = vulcanPackage.DTSPackage.Connections.Add("OLEDB");
                        SetProperty("ConnectionString",connectionString);
                        SetProperty("RetainSameConnection","True");
                        SetExpression("RetainSameConnection",@"true");

                        break;
                    default:
                        Message.Trace(Severity.Error,"Only FILE and OLEDB connection types are implemented.");
                        break;
                }
                _connectionManager.Name = name;
                _connectionManager.Description = description;
            }
        }
示例#24
0
        public OLEDBDestination(
            Packages.VulcanPackage vulcanPackage,
            MainPipe dataFlowTask,
            IDTSComponentMetaData90 parentComponent,
            string name,
            string description,
            Connection connection,
            string tableName
            )
            : base(vulcanPackage,
            dataFlowTask,
            parentComponent,
            name,
            description)
        {
            //remove duplicates if you happen to enclose the table in brackets :)

            _oledbDest = dataFlowTask.ComponentMetaDataCollection.New();
            _oledbDest.ComponentClassID = "DTSAdapter.OleDbDestination.1";

            _oledbDestI = _oledbDest.Instantiate();
            _oledbDestI.ProvideComponentProperties();

            _oledbDest.Name = Resources.OLEDBDestinationNamePrefix + (tableName.Replace("[", "").Replace("]", "").Replace("dbo", "").Replace(".",""));
            _oledbDest.ValidateExternalMetadata = true;

            _oledbDest.RuntimeConnectionCollection[0].ConnectionManager =
                DTS.DtsConvert.ToConnectionManager90(
                                                     connection.ConnectionManager
                                                    );
            _oledbDest.RuntimeConnectionCollection[0].ConnectionManagerID = connection.ConnectionManager.ID;
            dataFlowTask.PathCollection.New().AttachPathAndPropagateNotifications(
                                                                                  parentComponent.OutputCollection[0],
                                                                                  _oledbDest.InputCollection[0]
                                                                                  );
        }
示例#25
0
        public static DerivedColumns CreateIsNullPatcherFromXml(Packages.VulcanPackage vulcanPackage, IDTSComponentMetaData90 parentComponent, MainPipe dataFlowTask, XPathNavigator nullNav)
        {
            if (nullNav == null || nullNav.Name.ToUpperInvariant() != "IsNullPatcher".ToUpperInvariant())
            {
                return null;
            }

            string componentName = nullNav.SelectSingleNode("@Name", vulcanPackage.VulcanConfig.NamespaceManager).Value;
            Message.Trace(Severity.Debug, "Begin: IsNullPatcher variant DerivedColumns Transformation {0}", componentName);
            DerivedColumns dc = new DerivedColumns(vulcanPackage, dataFlowTask, parentComponent, componentName, componentName);

            IDTSVirtualInput90 vi = dc.Component.InputCollection[0].GetVirtualInput();

            TemplateEmitter te = new TemplateEmitter("NullPatcherIsnullTemplate", vulcanPackage, null);

            foreach (XPathNavigator nav in nullNav.Select("rc:Column", vulcanPackage.VulcanConfig.NamespaceManager))
            {
                string name = nav.SelectSingleNode("@Name").Value;
                string defaultValue = nav.SelectSingleNode("@DefaultValue").Value;

                dc.SetInputUsageType(vi, vi.VirtualInputColumnCollection[name], DTSUsageType.UT_READWRITE);
                IDTSInputColumn90 inputCol = dc.Component.InputCollection[0].InputColumnCollection[name];

                string expression;
                te.SetParameters("#" + vi.VirtualInputColumnCollection[name].LineageID.ToString(), defaultValue);
                te.Emit(out expression);

                string friendlyExpression;
                te.SetParameters(name, defaultValue);
                te.Emit(out friendlyExpression);

                inputCol.CustomPropertyCollection["Expression"].Value = expression;
                inputCol.CustomPropertyCollection["FriendlyExpression"].Value = friendlyExpression;
            }
            return dc;
        }
示例#26
0
        public ActionResult Package()
        {
            Packages model = new Packages();

            model.ListPackageName = LoadPackageNameDropDown();
            model.ListPackagesFeatures = LoadPackageFeaturesDropDown();
            model.ListofPackage = LoadListofPackages();

            return View(model);
        }
示例#27
0
        private void ProcessLink(Regex r, string path, string href, Packages package)
        {
            Console.WriteLine(path + href);
            var text      = File.ReadAllText(path + href);
            var matchList = r.Matches(text);
            var source    = Service.Source("Package Uploads", Models.Admin.SearchType.SourceName);

            if (matchList.Count > 0)
            {
                // One or more links were found so we'll include each in the bulk update
                foreach (Match m in matchList)
                {
                    // Allow send through URLs up to 1024 in length to avoid errors
                    string url = m.Groups[1].Value;
                    url = (url.Length >= MaxUrlLength ? url.Substring(0, MaxUrlLength - 1) : url);

                    // Check the link for existance
                    var link = Service.LinkFromUrl(url);
                    if (link == null)
                    {
                        Console.WriteLine($"Adding link {url}");
                        var now = DateTime.Now;
                        link = new Links
                        {
                            AllTimeMaxDownloadTime    = 0,
                            AllTimeMinDownloadTime    = 0,
                            AllTimeStdDevDownloadTime = 0,
                            AttemptCount    = 0,
                            DateFirstFound  = now,
                            DateLastChecked = null,
                            DateLastFound   = null,
                            DateUpdated     = null,
                            DisabledDate    = null,
                            DisabledUser    = null,
                            Id = Guid.NewGuid().ToString(),
                            PastWeekMaxDownloadTime    = 0,
                            PastWeekMinDownloadTime    = 0,
                            PastWeekStdDevDownloadTime = 0,
                            ReportNotBeforeDate        = null,
                            Source = source.Id,
                            Url    = url,
                            Valid  = true
                        };

                        Service.AddLink(link);
                    }

                    var    uri    = new Uri(url);
                    var    split  = href.Split(Path.DirectorySeparatorChar);
                    string parent = null;
                    if (split != null && split.Length > 1)
                    {
                        parent = split[split.Length - 2];
                    }

                    // Add the link package course location
                    var newFile = new PackageFiles
                    {
                        CourseLocation = href,
                        Id             = Guid.NewGuid().ToString(),
                        Link           = link.Id,
                        LinkName       = m.Groups[2].Value,
                        PackageId      = package.Id,
                        ParentFolder   = parent,
                        Protocol       = uri.Scheme
                    };

                    Service.AddPackageFile(newFile);
                }
            }
            else
            {
                // No links found but we'll include the object in the update without a url (maybe?)
            }
        }
示例#28
0
        public override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("EditorID", false, out subEle))
            {
                if (EditorID == null)
                {
                    EditorID = new SimpleSubrecord <String>();
                }

                EditorID.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ObjectBounds", false, out subEle))
            {
                if (ObjectBounds == null)
                {
                    ObjectBounds = new ObjectBounds();
                }

                ObjectBounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Name", false, out subEle))
            {
                if (Name == null)
                {
                    Name = new SimpleSubrecord <String>();
                }

                Name.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Model", false, out subEle))
            {
                if (Model == null)
                {
                    Model = new Model();
                }

                Model.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ActorEffects", false, out subEle))
            {
                if (ActorEffects == null)
                {
                    ActorEffects = new List <RecordReference>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    RecordReference tempSPLO = new RecordReference();
                    tempSPLO.ReadXML(e, master);
                    ActorEffects.Add(tempSPLO);
                }
            }
            if (ele.TryPathTo("Unarmed/AttackEffect", false, out subEle))
            {
                if (UnarmedAttackEffect == null)
                {
                    UnarmedAttackEffect = new RecordReference();
                }

                UnarmedAttackEffect.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Unarmed/AttackAnimation", false, out subEle))
            {
                if (UnarmedAttackAnimation == null)
                {
                    UnarmedAttackAnimation = new SimpleSubrecord <UInt16>();
                }

                UnarmedAttackAnimation.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models", false, out subEle))
            {
                if (Models == null)
                {
                    Models = new SubNullStringList();
                }

                Models.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("TextureHashes", false, out subEle))
            {
                if (TextureHashes == null)
                {
                    TextureHashes = new SimpleSubrecord <Byte[]>();
                }

                TextureHashes.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("BaseStats", false, out subEle))
            {
                if (BaseStats == null)
                {
                    BaseStats = new CreatureBaseStats();
                }

                BaseStats.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Factions", false, out subEle))
            {
                if (Factions == null)
                {
                    Factions = new List <FactionMembership>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    FactionMembership tempSNAM = new FactionMembership();
                    tempSNAM.ReadXML(e, master);
                    Factions.Add(tempSNAM);
                }
            }
            if (ele.TryPathTo("DeathItem", false, out subEle))
            {
                if (DeathItem == null)
                {
                    DeathItem = new RecordReference();
                }

                DeathItem.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("VoiceType", false, out subEle))
            {
                if (VoiceType == null)
                {
                    VoiceType = new RecordReference();
                }

                VoiceType.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Template", false, out subEle))
            {
                if (Template == null)
                {
                    Template = new RecordReference();
                }

                Template.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Destructable", false, out subEle))
            {
                if (Destructable == null)
                {
                    Destructable = new Destructable();
                }

                Destructable.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Script", false, out subEle))
            {
                if (Script == null)
                {
                    Script = new RecordReference();
                }

                Script.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Contents", false, out subEle))
            {
                if (Contents == null)
                {
                    Contents = new List <InventoryItem>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    InventoryItem tempCNTO = new InventoryItem();
                    tempCNTO.ReadXML(e, master);
                    Contents.Add(tempCNTO);
                }
            }
            if (ele.TryPathTo("AIData", false, out subEle))
            {
                if (AIData == null)
                {
                    AIData = new AIData();
                }

                AIData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Packages", false, out subEle))
            {
                if (Packages == null)
                {
                    Packages = new List <RecordReference>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    RecordReference tempPKID = new RecordReference();
                    tempPKID.ReadXML(e, master);
                    Packages.Add(tempPKID);
                }
            }
            if (ele.TryPathTo("Animations", false, out subEle))
            {
                if (Animations == null)
                {
                    Animations = new SubNullStringList();
                }

                Animations.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Data", false, out subEle))
            {
                if (Data == null)
                {
                    Data = new CreatureData();
                }

                Data.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("AttackReach", false, out subEle))
            {
                if (AttackReach == null)
                {
                    AttackReach = new SimpleSubrecord <Byte>();
                }

                AttackReach.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("CombatStyle", false, out subEle))
            {
                if (CombatStyle == null)
                {
                    CombatStyle = new RecordReference();
                }

                CombatStyle.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("BodyPartData", false, out subEle))
            {
                if (BodyPartData == null)
                {
                    BodyPartData = new RecordReference();
                }

                BodyPartData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("TurningSpeed", false, out subEle))
            {
                if (TurningSpeed == null)
                {
                    TurningSpeed = new SimpleSubrecord <Single>();
                }

                TurningSpeed.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("BaseScale", false, out subEle))
            {
                if (BaseScale == null)
                {
                    BaseScale = new SimpleSubrecord <Single>();
                }

                BaseScale.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("FootWeight", false, out subEle))
            {
                if (FootWeight == null)
                {
                    FootWeight = new SimpleSubrecord <Single>();
                }

                FootWeight.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImpactMaterialType", false, out subEle))
            {
                if (ImpactMaterialType == null)
                {
                    ImpactMaterialType = new SimpleSubrecord <MaterialTypeUInt>();
                }

                ImpactMaterialType.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("SoundLevel", false, out subEle))
            {
                if (SoundLevel == null)
                {
                    SoundLevel = new SimpleSubrecord <SoundLevel>();
                }

                SoundLevel.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("SoundTemplate", false, out subEle))
            {
                if (SoundTemplate == null)
                {
                    SoundTemplate = new RecordReference();
                }

                SoundTemplate.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("SoundData", false, out subEle))
            {
                if (SoundData == null)
                {
                    SoundData = new List <CreatureSoundData>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    CreatureSoundData tempCSDT = new CreatureSoundData();
                    tempCSDT.ReadXML(e, master);
                    SoundData.Add(tempCSDT);
                }
            }
            if (ele.TryPathTo("ImpactDataset", false, out subEle))
            {
                if (ImpactDataset == null)
                {
                    ImpactDataset = new RecordReference();
                }

                ImpactDataset.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("MeleeWeaponList", false, out subEle))
            {
                if (MeleeWeaponList == null)
                {
                    MeleeWeaponList = new RecordReference();
                }

                MeleeWeaponList.ReadXML(subEle, master);
            }
        }
示例#29
0
 internal void UpdatePackageList()
 {
     Dispatcher.Invoke(new Action(() => { this.ButtonsEnabled = false; }));
     try
     {
         var packs = GameFeedManager.Get()
                     .GetPackages(Selected)
                     .Where(x => x.IsAbsoluteLatestVersion)
                     .OrderBy(x => x.Title)
                     .GroupBy(x => x.Id)
                     .Select(x => x.OrderByDescending(y => y.Version.Version).First())
                     .Select(x => new FeedGameViewModel(x)).ToList();
         foreach (var package in packages.ToList())
         {
             var pack = package;
             Dispatcher.Invoke(new Action(() =>
             {
                 packages.Remove(pack);
                 pack.Dispose();
             }));
             //if (!packs.Contains(p))
             //    Dispatcher.Invoke(new Action(()=>packages.Remove(p)));
         }
         foreach (var package in packs)
         {
             var pack = package;
             Dispatcher.Invoke(new Action(() => packages.Add(pack)));
         }
         if (Selected != null)
         {
             SelectedGame =
                 Packages.FirstOrDefault(x => x.Id.Equals(Guid.Parse("844d5fe3-bdb5-4ad2-ba83-88c2c2db6d88")));
             if (SelectedGame == null)
             {
                 SelectedGame = Packages.FirstOrDefault();
             }
             OnPropertyChanged("SelectedGame");
             OnPropertyChanged("IsGameSelected");
         }
     }
     catch (WebException e)
     {
         Dispatcher.Invoke(new Action(() => Packages.Clear()));
         if ((e.Response as HttpWebResponse).StatusCode == HttpStatusCode.Unauthorized)
         {
             TopMostMessageBox.Show(
                 "This feed requires authentication(or your credentials are incorrect). Please delete this feed and re add it.",
                 "Authentication Error", MessageBoxButton.OK, MessageBoxImage.Error);
         }
         else
         {
             TopMostMessageBox.Show(
                 "There was an error fetching this feed. Please try again or delete and re add it.", "Feed Error",
                 MessageBoxButton.OK, MessageBoxImage.Error);
             var url = "unknown";
             if (Selected != null)
             {
                 url = Selected.Url;
             }
             Log.Warn(url + " is an invalid feed. StatusCode=" + (e.Response as HttpWebResponse).StatusCode, e);
         }
     }
     catch (Exception e)
     {
         Dispatcher.Invoke(new Action(() => Packages.Clear()));
         TopMostMessageBox.Show(
             "There was an error fetching this feed. Please try again or delete and re add it.", "Feed Error",
             MessageBoxButton.OK, MessageBoxImage.Error);
         var url = "unknown";
         if (Selected != null)
         {
             url = Selected.Url;
         }
         Log.Warn("GameManagement fetch url error " + url, e);
     }
     Dispatcher.Invoke(new Action(() => { this.ButtonsEnabled = true; }));
 }
        private async Task LoadMore(CancellationToken token)
        {
            Debug.Assert(_currentQuery != null);

            IsEditable = false;

            var usedTokenSource = CurrentCancellationTokenSource;

            if (token == CancellationToken.None)
            {
                usedTokenSource = new CancellationTokenSource();
                token           = usedTokenSource.Token;
                CurrentCancellationTokenSource = usedTokenSource;
            }

            try
            {
                var packageInfos = await _currentQuery.LoadMore(token);

                if (usedTokenSource != CurrentCancellationTokenSource)
                {
                    // This request has already been canceled. No need to process this request anymore.
                    return;
                }

                token.ThrowIfCancellationRequested();

                ClearMessage();

                var firstLoad  = !Packages.OfType <PackageInfoViewModel>().Any();
                var repository = GetPackageRepository();
                Packages.AddRange(packageInfos.Select(p => new PackageInfoViewModel(p, ShowPrereleasePackages, repository, _feedType, this)));

                if (firstLoad)
                {
                    SelectedPackageViewModel = Packages.OfType <PackageInfoViewModel>().FirstOrDefault();

                    // add the new source to MRU list, after the load succeeds, in case there's an error with the source
                    _packageSourceManager !.NotifyPackageSourceAdded(PackageSource);
                }
            }
            catch (OperationCanceledException)
            {
                if (usedTokenSource != CurrentCancellationTokenSource)
                {
                    // This request has already been canceled. No need to process this request anymore.
                    return;
                }

                ClearMessage();
            }
            catch (Exception exception)
            {
                if (usedTokenSource != CurrentCancellationTokenSource)
                {
                    // This request has already been canceled. No need to process this request anymore.
                    return;
                }

                DiagnosticsClient.TrackException(exception);

                var errorMessage = exception.Message;

                ShowMessage(errorMessage, true);
            }

            IsEditable = true;
            CurrentCancellationTokenSource = null;
        }
示例#31
0
        public void LoadPackages()
        {
            ReloadPackageManager();
            Task.Run(async() =>
            {
#if DEBUG
                List <IPackage> packages = repo.GetPackages().ToList();
#else
                List <IPackage> packages = repo.Search("OpenRPA.*", false).ToList();
#endif

                // IPackageRepository localRepository = PackageRepositoryFactory.Default.CreateRepository(RepositoryPath);
                PackageModel m = null;
                foreach (var p in packageManager.LocalRepository.GetPackages())
                {
                    if (p.Id.ToLower() == "openrpa" || p.Id.ToLower().StartsWith("openrpa."))
                    {
                        this.Dispatcher.Invoke(() =>
                        {
                            m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                            if (m == null)
                            {
                                m = new PackageModel()
                                {
                                    Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version
                                };
                                m.LatestVersion = p.Version.ToString();
                                Packages.Add(m);
                            }
                            else
                            {
                                if (new Version(p.Version.ToString()) > new Version(m.Version.ToString()))
                                {
                                    m.Version = p.Version; m.LatestVersion = p.Version.ToString(); m.Package = p;
                                }
                            }
                        });
                        m.isDownloaded = true;
                        if (!m.isInstalled)
                        {
                            m.isInstalled = isPackageInstalled(p);
                        }
                    }
                }
                foreach (var p in Packages)
                {
                    var id     = p.Package.Id.ToString();
                    var exists = packages.Where(x => x.Id == p.Package.Id && new Version(x.Version.ToString()) > new Version(p.Version.ToString())).FirstOrDefault();
                    if (exists != null)
                    {
                        if (new Version(exists.Version.ToString()) > new Version(p.Version.ToString()))
                        {
                            p.canUpgrade    = true;
                            p.LatestVersion = exists.Version.ToString();
                        }
                    }
                }
                foreach (var p in packages)
                {
                    if (p.Id.ToLower().Contains("openrpa.interfaces") || p.Id.ToLower().Contains("openrpa.namedpipewrapper"))
                    {
                        continue;
                    }
                    this.Dispatcher.Invoke(() =>
                    {
                        m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                        if (m == null)
                        {
                            m = new PackageModel()
                            {
                                Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version
                            };
                            m.LatestVersion = p.Version.ToString();
                            Packages.Add(m);
                        }
                        var exists     = packageManager.LocalRepository.FindPackage(p.Id);
                        m.isDownloaded = (exists != null);
                        if (m.isDownloaded && !m.isInstalled)
                        {
                            m.isInstalled = isPackageInstalled(p);
                        }
                    });
                }
                foreach (var p in packageManager.LocalRepository.GetPackages())
                {
                    // if (p.Id.ToLower().Contains("openrpa.interfaces") || p.Id.ToLower().Contains("openrpa.namedpipewrapper")) continue;

                    this.Dispatcher.Invoke(() =>
                    {
                        m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                        if (m == null)
                        {
                            m = new PackageModel()
                            {
                                Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version
                            };
                            m.LatestVersion = p.Version.ToString();
                            Packages.Add(m);
                        }
                    });

                    m.isDownloaded = true;
                    if (!m.isInstalled)
                    {
                        m.isInstalled = isPackageInstalled(p);
                    }
                }
                this.Dispatcher.Invoke(() =>
                {
                    ButtonUpdateAll.IsEnabled = false;
                });
                //if (!System.IO.Directory.Exists(RepositoryPath) && !System.IO.Directory.Exists(InstallPath))
                if (!System.IO.Directory.Exists(InstallPath) || !System.IO.File.Exists(InstallPath + @"\OpenRPA.exe"))
                {
                    FirstRun         = false;
                    var dialogResult = MessageBox.Show("Install OpenRPA and most common packages?", "First run", MessageBoxButton.YesNo);
                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        this.Dispatcher.Invoke(() =>
                        {
                            listPackages.IsEnabled     = false;
                            listPackages.SelectedValue = null;
                        });
                        try
                        {
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.IE").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.NM").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Java").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Forms").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Script").FirstOrDefault());
                            if (IsOfficeInstalled())
                            {
                                await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Office").FirstOrDefault());
                            }
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.AviRecorder").FirstOrDefault());
                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.FileWatcher").FirstOrDefault());
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                        this.Dispatcher.Invoke(() =>
                        {
                            listPackages.IsEnabled = true;
                            ButtonLaunch(null, null);
                        });
                    }
                }
                else if (FirstRun)
                {
                    FirstRun         = false;
                    int UpgradeCount = Packages.Where(x => x.canUpgrade).Count();
                    bool hasUpgrades = (UpgradeCount > 0);
                    if (hasUpgrades)
                    {
                        var dialogResult = MessageBox.Show(UpgradeCount + " packages has updates, update all ?", "Upgrades available", MessageBoxButton.YesNo);
                        if (dialogResult == MessageBoxResult.Yes)
                        {
                            ButtonUpdateAllClick(null, null);
                        }
                        else
                        {
                            this.Dispatcher.Invoke(() =>
                            {
                                ButtonUpdateAll.IsEnabled = true;
                            });
                        }
                    }
                }
            });
        }
示例#32
0
 void AndGivenAPackageWithANewerVersionNumberButAnIdOtherThanTheAppsId()
 {
     _incorrectPackage = Packages.FromVersions("Not.Target.Id", new Version(1, 1)).First();
 }
 /// <summary>
 /// Creates the message scope to the specified package.
 /// </summary>
 /// <param name="package">The package.</param>
 /// <returns>MessageScope</returns>
 public static MessageScope CreateScope(this Packages package)
 {
     return(MessageScope.Create(MessageScope.ScopeType.Package, package.GetRealName()));
 }
示例#34
0
        // READ DATA
        public static Packages GetPackages(int packageID)
        {
            SqlConnection connection = Connection.GetConnection();
            string        selectStatement
                = "SELECT PackageId, PkgName, PkgStartDate, PkgEndDate, PkgDesc, PkgBasePrice, PkgAgencyCommission "
                  + "FROM Packages "
                  + "WHERE PackageID = @PackageID";

            SqlCommand selectCommand = new SqlCommand(selectStatement, connection);

            selectCommand.Parameters.AddWithValue("@PackageID", packageID);
            try
            {
                connection.Open();

                SqlDataReader packageReader = selectCommand.ExecuteReader(System.Data.CommandBehavior.SingleRow);

                if (packageReader.Read())
                {
                    Packages p = new Packages();
                    p.PackageId = (int)packageReader["PackageId"];
                    p.PkgName   = (string)packageReader["PkgName"];

                    if (packageReader["PkgStartDate"] == DBNull.Value)
                    {
                        p.PkgStartDate = null;
                    }
                    else
                    {
                        p.PkgStartDate = (DateTime)(packageReader["PkgStartDate"]);
                    }

                    if (packageReader["PkgStartDate"] == DBNull.Value)
                    {
                        p.PkgEndDate = null;
                    }
                    else
                    {
                        p.PkgEndDate = (DateTime)packageReader["PkgEndDate"];
                    }

                    if (packageReader["PkgDesc"] == DBNull.Value)
                    {
                        p.PkgDesc = null;
                    }
                    else
                    {
                        p.PkgDesc = (string)packageReader["PkgDesc"];
                    }

                    p.PkgBasePrice = (decimal)packageReader["PkgBasePrice"];

                    if (packageReader["PkgAgencyCommission"] == DBNull.Value)
                    {
                        p.PkgAgencyCommission = null;
                    }
                    else
                    {
                        p.PkgAgencyCommission = (decimal)packageReader["PkgAgencyCommission"];
                    }
                    return(p);
                }
                else
                {
                    return(null);
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            finally
            {
                connection.Close();
            }
        }
示例#35
0
        // get the packages information as a list
        public static List <Packages> GetPackages()
        {
            // create a new list to store items as class packages objects
            List <Packages> packageList = new List <Packages>();

            string selectStatement = "SELECT PackageId, PkgName, PkgStartDate, PkgEndDate, PkgDesc, PkgBasePrice, PkgAgencyCommission "
                                     + "FROM Packages;";

            using (SqlConnection connection = Connection.GetConnection())
            {
                using (SqlCommand selectCommand = new SqlCommand(selectStatement, connection))
                {
                    connection.Open();

                    SqlDataReader packageReader = selectCommand.ExecuteReader();

                    while (packageReader.Read())
                    {
                        Packages p = new Packages();
                        p.PackageId = (int)packageReader["PackageId"];
                        p.PkgName   = (string)packageReader["PkgName"];

                        if (packageReader["PkgStartDate"] == DBNull.Value)
                        {
                            p.PkgStartDate = null;
                        }
                        else
                        {
                            p.PkgStartDate = (DateTime)(packageReader["PkgStartDate"]);
                        }

                        if (packageReader["PkgStartDate"] == DBNull.Value)
                        {
                            p.PkgEndDate = null;
                        }
                        else
                        {
                            p.PkgEndDate = (DateTime)packageReader["PkgEndDate"];
                        }

                        if (packageReader["PkgDesc"] == DBNull.Value)
                        {
                            p.PkgDesc = null;
                        }
                        else
                        {
                            p.PkgDesc = (string)packageReader["PkgDesc"];
                        }

                        p.PkgBasePrice = (decimal)packageReader["PkgBasePrice"];

                        if (packageReader["PkgAgencyCommission"] == DBNull.Value)
                        {
                            p.PkgAgencyCommission = null;
                        }
                        else
                        {
                            p.PkgAgencyCommission = (decimal)packageReader["PkgAgencyCommission"];
                        }

                        packageList.Add(p);
                    }
                }

                return(packageList);
            }
        }
示例#36
0
        public override bool Execute()
        {
            string indexFilePath = PackageIndexFile.GetMetadata("FullPath");

            PackageIndex index = File.Exists(indexFilePath) ?
                                 index = PackageIndex.Load(indexFilePath) :
                                         new PackageIndex();

            if (PackageIds != null && PackageIds.Any())
            {
                _packageIdsToInclude = new HashSet <string>(PackageIds.Select(i => i.ItemSpec), StringComparer.OrdinalIgnoreCase);
            }

            foreach (var package in Packages.NullAsEmpty().Select(f => f.GetMetadata("FullPath")))
            {
                Log.LogMessage($"Updating from {package}.");
                UpdateFromPackage(index, package);
            }

            foreach (var packageFolder in PackageFolders.NullAsEmpty().Select(f => f.GetMetadata("FullPath")))
            {
                var nupkgs = Directory.EnumerateFiles(packageFolder, "*.nupkg", SearchOption.TopDirectoryOnly);

                if (nupkgs.Any())
                {
                    foreach (var nupkg in nupkgs)
                    {
                        Log.LogMessage($"Updating from {nupkg}.");
                        UpdateFromPackage(index, nupkg, true);
                    }
                }
                else
                {
                    var nuspecFolders = Directory.EnumerateFiles(packageFolder, "*.nuspec", SearchOption.AllDirectories)
                                        .Select(nuspec => Path.GetDirectoryName(nuspec));

                    foreach (var nuspecFolder in nuspecFolders)
                    {
                        Log.LogMessage($"Updating from {nuspecFolder}.");
                        UpdateFromFolderLayout(index, nuspecFolder, true);
                    }
                }
            }

            if (BaselinePackages != null)
            {
                foreach (var baselinePackage in BaselinePackages)
                {
                    var info    = GetOrCreatePackageInfo(index, baselinePackage.ItemSpec);
                    var version = baselinePackage.GetMetadata("Version");

                    info.BaselineVersion = Version.Parse(version);
                }
            }

            if (StablePackages != null)
            {
                foreach (var stablePackage in StablePackages)
                {
                    var info    = GetOrCreatePackageInfo(index, stablePackage.ItemSpec);
                    var version = stablePackage.GetMetadata("Version");

                    info.StableVersions.Add(Version.Parse(version));
                }
            }

            if (ModuleToPackages != null)
            {
                foreach (var moduleToPackage in ModuleToPackages)
                {
                    var package = moduleToPackage.GetMetadata("Package");
                    index.ModulesToPackages[moduleToPackage.ItemSpec] = package;
                }
            }

            if (InboxFrameworkListFolder != null)
            {
                index.MergeFrameworkLists(InboxFrameworkListFolder.GetMetadata("FullPath"));
            }

            if (InboxFrameworkLayoutFolders != null)
            {
                foreach (var inboxFrameworkLayoutFolder in InboxFrameworkLayoutFolders)
                {
                    var layoutDirectory = inboxFrameworkLayoutFolder.GetMetadata("FullPath");
                    var targetFramework = NuGetFramework.Parse(inboxFrameworkLayoutFolder.GetMetadata("TargetFramework"));

                    index.MergeInboxFromLayout(targetFramework, layoutDirectory);
                }
            }

            if (SetBaselineVersionsToLatestStableVersion)
            {
                foreach (var packageInfo in index.Packages.Values)
                {
                    var maxVersion = packageInfo.StableVersions.Max();
                    packageInfo.BaselineVersion = maxVersion;
                }
            }

            if (UpdateStablePackageInfo && Packages == null && PackageFolders == null)
            {
                // Given we will query the web for every package, we should run in parallel to try to optimize the performance.
                Parallel.ForEach(index.Packages, (package) =>
                {
                    IEnumerable <Version> stablePackageVersions = NuGetUtility.GetAllVersionsForPackageId(package.Key, includePrerelease: false, includeUnlisted: false, Log, CancellationToken.None);
                    package.Value.StableVersions.Clear();
                    package.Value.StableVersions.AddRange(stablePackageVersions);
                });
            }

            if (!String.IsNullOrEmpty(PreRelease))
            {
                index.PreRelease = PreRelease;
            }

            index.Save(indexFilePath);

            return(!Log.HasLoggedErrors);
        }
示例#37
0
        private async Task LoadPackages()
        {
            try
            {
                _hasLoaded = false;

                var sort = SortSelection == Resources.RemoteSourceViewModel_SortSelectionPopularity ? "DownloadCount" : "Title";

                await _progressService.StartLoading(string.Format(Resources.RemoteSourceViewModel_LoadingPage, CurrentPage));

                _progressService.WriteMessage(Resources.RemoteSourceViewModel_FetchingPackages);

                try
                {
                    var result =
                        await
                        _chocolateyPackageService.Search(
                            SearchQuery,
                            new PackageSearchOptions(
                                PageSize,
                                CurrentPage - 1,
                                sort,
                                IncludePrerelease,
                                IncludeAllVersions,
                                MatchWord,
                                Source.Value));

                    var installed = await _chocolateyPackageService.GetInstalledPackages();

                    PageCount = (int)(((double)result.TotalCount / (double)PageSize) + 0.5);
                    Packages.Clear();
                    result.Packages.ToList().ForEach(p =>
                    {
                        if (installed.Any(package => package.Id == p.Id))
                        {
                            p.IsInstalled = true;
                        }

                        Packages.Add(Mapper.Map <IPackageViewModel>(p));
                    });

                    if (PageCount < CurrentPage)
                    {
                        CurrentPage = PageCount == 0 ? 1 : PageCount;
                    }
                }
                finally
                {
                    await _progressService.StopLoading();

                    _hasLoaded = true;
                }

                await _eventAggregator.PublishOnUIThreadAsync(new ResetScrollPositionMessage());
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Failed to load new packages.");
                await _progressService.ShowMessageAsync(
                    Resources.RemoteSourceViewModel_FailedToLoad,
                    string.Format(Resources.RemoteSourceViewModel_FailedToLoadRemotePackages, ex.Message));

                throw;
            }
        }
示例#38
0
 public TableEmitterEx(TableHelper tableHelper, Packages.VulcanPackage vulcanPackage)
     :
     base(vulcanPackage)
 {
     this._tableHelper = tableHelper;
 }
示例#39
0
        /// <summary>
        /// 下载更新信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UpdateMetaDownloadInternal(object sender, DoWorkEventArgs e)
        {
            try
            {
                // 下载更新信息
                OnUpdateMetaDownloading();
                var localFile = Context.UpdateMetaFilePath;

                if (File.Exists(localFile))
                {
                    Trace.TraceInformation("正在读取本地升级信息文件 [" + localFile + "]");
                    Context.UpdateMetaTextContent = File.ReadAllText(localFile, Encoding.UTF8);
                }
                else
                {
                    //下载信息时不直接下载到文件中.这样不会导致始终创建文件夹
                    Exception ex   = null;
                    byte[]    data = null;
                    var       url  = Context.UpdateMetaFileUrl;

                    var client = Context.CreateWebClient();
                    client.DownloadProgressChanged += (x, y) => (sender as BackgroundWorker).ReportProgress(Utility.GetPercentProgress(y.BytesReceived, y.TotalBytesToReceive));

                    //远程下载。为了支持进度显示,这里必须使用异步下载
                    using (var wHandler = new AutoResetEvent(false))
                    {
                        client.DownloadDataCompleted += (x, y) =>
                        {
                            ex = y.Error;
                            if (ex == null)
                            {
                                data = y.Result;
                            }
                            wHandler.Set();
                        };
                        Trace.TraceInformation("正在从 " + url + " 下载升级信息");
                        client.DownloadDataAsync(new Uri(url));
                        //等待下载完成
                        wHandler.WaitOne();
                    }

                    if (ex != null)
                    {
                        throw ex;
                    }

                    Trace.TraceInformation("服务器返回数据----->" + (data == null ? "<null>" : data.Length.ToString() + "字节"));
                    if (data != null && data.Length > 0x10)
                    {
                        //不是<xml标记,则执行解压缩
                        if (BitConverter.ToInt32(data, 0) != 0x6D783F3C && BitConverter.ToInt32(data, 0) != 0x3CBFBBEF)
                        {
                            Trace.TraceInformation("正在执行解压缩");
                            data = data.Decompress();
                        }
                        Context.UpdateMetaTextContent = Encoding.UTF8.GetString(data);
                    }

                    //是否返回了正确的结果?
                    if (string.IsNullOrEmpty(Context.UpdateMetaTextContent))
                    {
                        throw new ApplicationException("服务器返回了不正确的更新结果");
                    }
                }
                // 下载升级信息完成事件
                OnUpdateMetaDownloadFinished();

                if ((Context.UpdateMeta = SerializeHelper.XmlDeserialize <UpdateMeta>(Context.UpdateMetaTextContent)) == null)
                {
                    throw new ApplicationException("未能成功加载升级信息");
                }
                Trace.TraceInformation("服务器版本:{0}", Context.UpdateMeta.AppVersion);
                Trace.TraceInformation("当前版本:{0}", Context.CurrentVersion);

                //设置必须的属性
                if (Context.UpdateMeta.MustUpdate)
                {
                    Context.AutoKillProcesses = true;
                    Trace.TraceInformation("已设置自动关闭进程。");
                    Context.AutoEndProcessesWithinAppDir = true;
                    Trace.TraceInformation("已设置自动关闭同目录进程。");
                    Context.ForceUpdate = true;
                    Trace.TraceInformation("已设置强制升级。");
                }

                //判断升级
                if (!string.IsNullOrEmpty(Context.UpdateMeta.RequiredMinVersion) && Context.CurrentVersion < new Version(Context.UpdateMeta.RequiredMinVersion))
                {
                    Context.CurrentVersionTooLow = true;
                    Trace.TraceWarning("当前应用程序版本过低,无法升级。要求最低版本:{0},当前版本:{1}。", Context.UpdateMeta.RequiredMinVersion, Context.CurrentVersion);
                }
                else
                {
                    Context.HasUpdate = new Version(Context.UpdateMeta.AppVersion) > Context.CurrentVersion;
                    Trace.TraceInformation("已找到升级:" + Context.HasUpdate);
                }

                if (Context.HasUpdate)
                {
                    //判断要升级的包
                    if (Packages == null || Packages.Count == 0)
                    {
                        var pkgList = Context.UpdatePackageListPath;
                        Trace.TraceInformation("外部升级包列表:{0}", pkgList);

                        if (File.Exists(pkgList))
                        {
                            Trace.TraceInformation("外部升级包列表:已加载成功");
                            Packages = SerializeHelper.XmlDeserialize <List <Package> >(File.ReadAllText(pkgList, Encoding.UTF8));
                            Packages.ForEach(s => s.Context = Context);
                        }
                        else
                        {
                            Trace.TraceInformation("外部升级包列表:当前不存在,正在生成升级清单");
                            GatheringDownloadPackages(sender, e);
                        }

                        var preserveFileList = Context.PreserveFileListPath;
                        Trace.TraceInformation("外部文件保留列表:{0}", preserveFileList);
                        if (File.Exists(preserveFileList))
                        {
                            Trace.TraceInformation("外部文件保留列表:已加载成功");
                            var list = SerializeHelper.XmlDeserialize <List <string> >(File.ReadAllText(preserveFileList, Encoding.UTF8));
                            list.ForEach(s => FileInstaller.PreservedFiles.Add(s, null));
                        }
                        else
                        {
                            Trace.TraceInformation("外部升级包列表:当前不存在,等待重新生成");
                        }
                    }

                    //如果没有要升级的包?虽然很奇怪,但依然当作不需要升级
                    if (Packages.Count == 0)
                    {
                        Context.HasUpdate = false;
                        Trace.TraceWarning("警告:虽然版本出现差别,但是并没有可升级的文件。将会当作无升级对待。");
                    }
                }
            }
            catch (Exception ex)
            {
                Context.IsInUpdating = false;
                Context.Exception    = ex;
                Trace.TraceWarning("检测更新信息失败:" + ex.Message, ex.ToString());
                OnError();
                OnCheckUpdateComplete();
            }
        }
示例#40
0
        public override void ReadData(ESPReader reader, long dataEnd)
        {
            while (reader.BaseStream.Position < dataEnd)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "EDID":
                    if (EditorID == null)
                    {
                        EditorID = new SimpleSubrecord <String>();
                    }

                    EditorID.ReadBinary(reader);
                    break;

                case "OBND":
                    if (ObjectBounds == null)
                    {
                        ObjectBounds = new ObjectBounds();
                    }

                    ObjectBounds.ReadBinary(reader);
                    break;

                case "FULL":
                    if (Name == null)
                    {
                        Name = new SimpleSubrecord <String>();
                    }

                    Name.ReadBinary(reader);
                    break;

                case "MODL":
                    if (Model == null)
                    {
                        Model = new Model();
                    }

                    Model.ReadBinary(reader);
                    break;

                case "SPLO":
                    if (ActorEffects == null)
                    {
                        ActorEffects = new List <RecordReference>();
                    }

                    RecordReference tempSPLO = new RecordReference();
                    tempSPLO.ReadBinary(reader);
                    ActorEffects.Add(tempSPLO);
                    break;

                case "EITM":
                    if (UnarmedAttackEffect == null)
                    {
                        UnarmedAttackEffect = new RecordReference();
                    }

                    UnarmedAttackEffect.ReadBinary(reader);
                    break;

                case "EAMT":
                    if (UnarmedAttackAnimation == null)
                    {
                        UnarmedAttackAnimation = new SimpleSubrecord <UInt16>();
                    }

                    UnarmedAttackAnimation.ReadBinary(reader);
                    break;

                case "NIFZ":
                    if (Models == null)
                    {
                        Models = new SubNullStringList();
                    }

                    Models.ReadBinary(reader);
                    break;

                case "NIFT":
                    if (TextureHashes == null)
                    {
                        TextureHashes = new SimpleSubrecord <Byte[]>();
                    }

                    TextureHashes.ReadBinary(reader);
                    break;

                case "ACBS":
                    if (BaseStats == null)
                    {
                        BaseStats = new CreatureBaseStats();
                    }

                    BaseStats.ReadBinary(reader);
                    break;

                case "SNAM":
                    if (Factions == null)
                    {
                        Factions = new List <FactionMembership>();
                    }

                    FactionMembership tempSNAM = new FactionMembership();
                    tempSNAM.ReadBinary(reader);
                    Factions.Add(tempSNAM);
                    break;

                case "INAM":
                    if (DeathItem == null)
                    {
                        DeathItem = new RecordReference();
                    }

                    DeathItem.ReadBinary(reader);
                    break;

                case "VTCK":
                    if (VoiceType == null)
                    {
                        VoiceType = new RecordReference();
                    }

                    VoiceType.ReadBinary(reader);
                    break;

                case "TPLT":
                    if (Template == null)
                    {
                        Template = new RecordReference();
                    }

                    Template.ReadBinary(reader);
                    break;

                case "DEST":
                    if (Destructable == null)
                    {
                        Destructable = new Destructable();
                    }

                    Destructable.ReadBinary(reader);
                    break;

                case "SCRI":
                    if (Script == null)
                    {
                        Script = new RecordReference();
                    }

                    Script.ReadBinary(reader);
                    break;

                case "CNTO":
                    if (Contents == null)
                    {
                        Contents = new List <InventoryItem>();
                    }

                    InventoryItem tempCNTO = new InventoryItem();
                    tempCNTO.ReadBinary(reader);
                    Contents.Add(tempCNTO);
                    break;

                case "AIDT":
                    if (AIData == null)
                    {
                        AIData = new AIData();
                    }

                    AIData.ReadBinary(reader);
                    break;

                case "PKID":
                    if (Packages == null)
                    {
                        Packages = new List <RecordReference>();
                    }

                    RecordReference tempPKID = new RecordReference();
                    tempPKID.ReadBinary(reader);
                    Packages.Add(tempPKID);
                    break;

                case "KFFZ":
                    if (Animations == null)
                    {
                        Animations = new SubNullStringList();
                    }

                    Animations.ReadBinary(reader);
                    break;

                case "DATA":
                    if (Data == null)
                    {
                        Data = new CreatureData();
                    }

                    Data.ReadBinary(reader);
                    break;

                case "RNAM":
                    if (AttackReach == null)
                    {
                        AttackReach = new SimpleSubrecord <Byte>();
                    }

                    AttackReach.ReadBinary(reader);
                    break;

                case "ZNAM":
                    if (CombatStyle == null)
                    {
                        CombatStyle = new RecordReference();
                    }

                    CombatStyle.ReadBinary(reader);
                    break;

                case "PNAM":
                    if (BodyPartData == null)
                    {
                        BodyPartData = new RecordReference();
                    }

                    BodyPartData.ReadBinary(reader);
                    break;

                case "TNAM":
                    if (TurningSpeed == null)
                    {
                        TurningSpeed = new SimpleSubrecord <Single>();
                    }

                    TurningSpeed.ReadBinary(reader);
                    break;

                case "BNAM":
                    if (BaseScale == null)
                    {
                        BaseScale = new SimpleSubrecord <Single>();
                    }

                    BaseScale.ReadBinary(reader);
                    break;

                case "WNAM":
                    if (FootWeight == null)
                    {
                        FootWeight = new SimpleSubrecord <Single>();
                    }

                    FootWeight.ReadBinary(reader);
                    break;

                case "NAM4":
                    if (ImpactMaterialType == null)
                    {
                        ImpactMaterialType = new SimpleSubrecord <MaterialTypeUInt>();
                    }

                    ImpactMaterialType.ReadBinary(reader);
                    break;

                case "NAM5":
                    if (SoundLevel == null)
                    {
                        SoundLevel = new SimpleSubrecord <SoundLevel>();
                    }

                    SoundLevel.ReadBinary(reader);
                    break;

                case "CSCR":
                    if (SoundTemplate == null)
                    {
                        SoundTemplate = new RecordReference();
                    }

                    SoundTemplate.ReadBinary(reader);
                    break;

                case "CSDT":
                    if (SoundData == null)
                    {
                        SoundData = new List <CreatureSoundData>();
                    }

                    CreatureSoundData tempCSDT = new CreatureSoundData();
                    tempCSDT.ReadBinary(reader);
                    SoundData.Add(tempCSDT);
                    break;

                case "CNAM":
                    if (ImpactDataset == null)
                    {
                        ImpactDataset = new RecordReference();
                    }

                    ImpactDataset.ReadBinary(reader);
                    break;

                case "LNAM":
                    if (MeleeWeaponList == null)
                    {
                        MeleeWeaponList = new RecordReference();
                    }

                    MeleeWeaponList.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }
示例#41
0
 public List <Package> GetDefaultPackages()
 {
     //returns the default packages
     return(Packages.Where(p => p.DefaultPackage).ToList());
 }
示例#42
0
 public PackageOnNode PackageByName(string packageName)
 {
     return(Packages.First(p => String.Equals(p.Name, packageName, StringComparison.InvariantCultureIgnoreCase)));
 }
        public async Task <ActionResult> BuyResume(BuyResumeVM data)
        {
            //Get Login user Id
            var user = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var d = _context.invoices.Where(i => i.CvBuyInfoId == data.Id && i.PaymentStatus == false).FirstOrDefault();

            Packages package = await _context.servicePackages.FindAsync(data.PackagesId);

            Invoice checkInvoice = null;

            if (data.Id != 0)
            {
                checkInvoice = _context.invoices.Where(i => i.CvBuyInfoId == data.Id).AsNoTracking().FirstOrDefault();
            }

            int invoiceId = 0;

            if (checkInvoice != null)
            {
                invoiceId = checkInvoice.Id;
            }

            CvBankQuery resume = new CvBankQuery
            {
                Id                 = data.Id,
                UserId             = Guid.Parse(user),
                PackagesId         = data.PackagesId,
                BusinessCategoryId = data.BusinessCategoryId,
                Date               = DateTime.Now
            };

            Invoice invoice = new Invoice
            {
                Id            = invoiceId,
                PackagesId    = data.PackagesId,
                CvBuyInfoId   = resume.Id,
                Quantity      = 1,
                UnitPrice     = data.PackagesId,
                TotalAmount   = package.Price,
                PaymentStatus = false,
                UserId        = Guid.Parse(user),
                Date          = DateTime.Now
            };


            using (var transaction = await _context.Database.BeginTransactionAsync())
            {
                try
                {
                    if (resume.Id == 0)
                    {
                        await _context.cvBuyInfos.AddAsync(resume);

                        await _context.SaveChangesAsync();

                        invoice.CvBuyInfoId = resume.Id;


                        await _context.invoices.AddAsync(invoice);

                        await _context.SaveChangesAsync();

                        await transaction.CommitAsync();

                        return(Created("", resume));
                    }
                    else
                    {
                        _context.Entry(resume).State  = EntityState.Modified;
                        _context.Entry(invoice).State = EntityState.Modified;

                        await transaction.CommitAsync();

                        return(Created("", resume));
                    }
                }
                catch (Exception ex)
                {
                    await transaction.RollbackAsync();

                    throw ex;
                }
            }
        }
 private void AutoSelectFirstAvailablePackage()
 {
     SelectedPackageViewModel = Packages?.FirstOrDefault();
 }
示例#45
0
 private void ResourceManager_PackageArrived(ResourceManager packageManager, ResourcePackage package)
 {
     RemoveChild(Packages[package]);
     Packages.Remove(package);
     RedrawRequested = true;
 }
示例#46
0
        public void TakeAllEntries(Label count, List <Peer> peers)
        {
            GetDump(FilePath);
            I = 0;
            List <Package> packages = new List <Package>();

            foreach (var item in peers)
            {
                var taker = Dump.Packages.Where(x => (x.From == item.IP || x.To == item.IP) && (!Packages.Any(y => y.Id == x.Id))).ToList();
                Packages.AddRange(taker);
            }
            count.Content = Packages.Count.ToString();
        }
示例#47
0
        private void ProcessImscc(string path, Packages package)
        {
            var imsPath = string.Empty;
            var dirPath = string.Empty;
            var dirs    = Directory.GetDirectories(path);

            if (dirs != null && dirs.Length == 1)
            {
                dirPath = dirs[0];
            }

            // Make sure the imsmanifest.xml file exists
            if (File.Exists(path + "imsmanifest.xml"))
            {
                imsPath = path + "imsmanifest.xml";
            }
            else if (File.Exists(dirPath + Path.DirectorySeparatorChar + "imsmanifest.xml"))
            {
                path    = dirPath + Path.DirectorySeparatorChar;
                imsPath = path + "imsmanifest.xml";
            }
            else
            {
                Console.WriteLine("imsmanifest.xml file does not exist! Cannot continue.");
                return;
            }

            Console.WriteLine($"Extracting links from imscc file under path {path}...");

            // Load in the document
            var reader = XmlReader.Create(imsPath);
            var doc    = new XmlDocument();

            doc.Load(reader);

            // Grab the root note
            var manifest = doc.GetElementsByTagName("manifest")[0];

            // Create the namespace manager
            var ns = new XmlNamespaceManager(doc.NameTable);

            ns.AddNamespace("ns", manifest.NamespaceURI);

            var metadata = doc.SelectSingleNode("/ns:manifest/ns:metadata", ns);

            // Update the metadata for the package
            package.ImsSchema        = metadata.SelectSingleNode("ns:schema", ns).InnerText;
            package.ImsSchemaVersion = metadata.SelectSingleNode("ns:schemaversion", ns).InnerText;

            if (doc.GetElementsByTagName("lomimscc:title") != null &&
                doc.GetElementsByTagName("lomimscc:title").Count > 0 &&
                doc.GetElementsByTagName("lomimscc:title").Item(0) != null)
            {
                package.ImsTitle = doc.GetElementsByTagName("lomimscc:title").Item(0).InnerText;
            }

            if (doc.GetElementsByTagName("lomimscc:description") != null &&
                doc.GetElementsByTagName("lomimscc:description").Count > 0 &&
                doc.GetElementsByTagName("lomimscc:description").Item(0) != null)
            {
                package.ImsTitle = doc.GetElementsByTagName("lomimscc:description").Item(0).InnerText;
            }

            // Process the resource nodes
            var resources = doc.SelectNodes("/ns:manifest/ns:resources/ns:resource", ns);

            for (var i = 0; i < resources.Count; i++)
            {
                var resource = resources.Item(i);
                var href     = resource.Attributes != null &&
                               resource.Attributes.GetNamedItem("href") != null
                           ? resource.Attributes.GetNamedItem("href").Value : "";

                if (href.EndsWith(".htm") || href.EndsWith(".html"))
                {
                    ProcessLink(R, path, href, package);
                }
            }
        }
示例#48
0
        /// <summary>
        /// 生成下载列表
        /// </summary>
        /// <param name="e"></param>
        void GatheringDownloadPackages(object sender, DoWorkEventArgs e)
        {
            if (Packages.Count > 0)
            {
                return;
            }
            Trace.TraceInformation("正在确定需要下载的升级包");
            OnGatheringPackages();

            if (!string.IsNullOrEmpty(Context.UpdateMeta.Package) && (Context.UpdateMeta.Packages == null || !Context.UpdateMeta.Packages.Any()))
            {
                //必须更新的包
                Trace.TraceInformation("正在添加必须升级的主要安装包");
                Packages.Add(new Package()
                {
                    FilePath          = "",
                    FileSize          = 0,
                    Hash              = Context.UpdateMeta.MD5,
                    Method            = UpdateMethod.Always,
                    Name              = Context.UpdateMeta.Package,
                    Size              = Context.UpdateMeta.PackageSize,
                    VerificationLevel = FileVerificationLevel.Hash,
                    Version           = "0.0.0.0",
                    Context           = Context
                });
            }
            if (Context.UpdateMeta.Packages != null)
            {
                //判断增量升级包
                var index = 0;
                foreach (var pkg in Context.UpdateMeta.Packages)
                {
                    (sender as BackgroundWorker).ReportProgress(Utility.GetPercentProgress(++index, Context.UpdateMeta.Packages.Count));
                    var localPath = Path.Combine(Context.ApplicationDirectory, pkg.FilePath); //对比本地路径
                    pkg.Context = Context;
                    if (pkg.Method == UpdateMethod.Always)
                    {
                        Trace.TraceInformation($"标记为始终更新,添加升级包 【{ pkg.Name }】");
                        Packages.Add(pkg);
                        continue;
                    }
                    //判断组件标记
                    if (!string.IsNullOrEmpty(pkg.ComponentId) && !CheckComponentFlag(pkg.ComponentId))
                    {
                        Trace.TraceInformation($"组件标记为 {pkg.ComponentId},状态为false,跳过升级包 【{pkg.Name}】");
                        continue;
                    }


                    //存在即跳过,或版本比较
                    if (!System.IO.File.Exists(localPath))
                    {
                        if (Utility.HasMethod(pkg.Method, UpdateMethod.SkipIfNotExist))
                        {
                            Trace.TraceInformation($"本地路径【{pkg.FilePath}】不存在,并且指定了不存在则跳过,因此跳过更新");
                        }
                        else
                        {
                            Packages.Add(pkg);
                            Trace.TraceInformation($"本地路径【{pkg.FilePath}】不存在,添加升级包 【{pkg.Name }】");
                        }
                        continue;
                    }
                    //如果存在即跳过……那么你好去跳过了。
                    if (Utility.HasMethod(pkg.Method, UpdateMethod.SkipIfExists))
                    {
                        AddPackageToPreserveList(pkg);
                        Trace.TraceInformation($"本地路径【{pkg.FilePath}】已经存在,跳过升级包 【{pkg.Name }】");
                        continue;
                    }

                    var isNewer = (pkg.HasVerifyFlag(FileVerificationLevel.Size) && new FileInfo(localPath).Length != pkg.FileSize)
                                  ||
                                  (pkg.HasVerifyFlag(FileVerificationLevel.Version) && (string.IsNullOrEmpty(pkg.Version) || localPath.CompareVersion(pkg.Version)))
                                  ||
                                  (pkg.HasVerifyFlag(FileVerificationLevel.Hash) && localPath.GetFileHash() != pkg.FileHash)
                    ;

                    if (isNewer)
                    {
                        Trace.TraceInformation($"服务器版本更新,添加升级包 【{pkg.Name}】");
                        pkg.Context = Context;
                        Packages.Add(pkg);
                    }
                    else
                    {
                        AddPackageToPreserveList(pkg);
                        Trace.TraceInformation($"服务器版本更旧或相同,跳过升级包 【{pkg.Name}】");
                    }
                }
            }

            OnGatheredPackages();
            Trace.TraceInformation("完成确定需要下载的升级包");
        }
示例#49
0
 public FTPTaskPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, parentContainer)
 {
 }
 private void ClearPackages(bool isErrorCase)
 {
     Packages.Clear();
 }
示例#51
0
        public ActionResult Package(FormCollection form)
        {
            string packageName = form["txtPackage"].ToString();
            string packageAmount = form["txtAmount"].ToString();

            if (packageName != "" && packageAmount != "")
            {
                DataTable dt = BLObj.CreateNewPackage(packageName, packageAmount);

                BLObj.InsertPacakgesfeatureswithpackageid(Convert.ToInt32(dt.Rows[0]["PackageID"]));

                ViewBag.Message = "Package Created Sucessfully";
            }

            Packages model = new Packages();

            model.ListPackageName = LoadPackageNameDropDown();
            model.ListPackagesFeatures = LoadPackageFeaturesDropDown();
            model.ListofPackage = LoadListofPackages();

            return View(model);
        }
示例#52
0
        public IActionResult Create()
        {
            Packages pack = new Packages();

            return(View(pack));
        }
示例#53
0
        public void LoadPackages(string searchString = "OpenRPA")
        {
            var result = new List <PackageModel>();

            foreach (var m in Packages)
            {
                result.Add(m);
            }
            Task.Run(async() =>
            {
                var packagesearch = await OpenRPAPackageManager.Instance.Search(searchString);
                foreach (var p in packagesearch)
                {
                    var exists = result.Where(x => x.Package.Identity.Id == p.Identity.Id).FirstOrDefault();
                    if (exists == null)
                    {
                        PackageModel m = new PackageModel()
                        {
                            Package = p, canUpgrade = false, isDownloaded = false
                        };
                        m.LocalPackage = OpenRPAPackageManager.Instance.getLocal(p.Identity.Id);
                        result.Add(m);
                    }
                    else
                    {
                        exists.LocalPackage = OpenRPAPackageManager.Instance.getLocal(p.Identity.Id);
                    }
                }
                foreach (var m in result)
                {
                    if (m.LocalPackage != null)
                    {
                        await Dispatcher.Invoke(async() =>
                        {
                            try
                            {
                                m.isDownloaded = true;
                                m.isInstalled  = await OpenRPAPackageManager.Instance.IsPackageInstalled(m.LocalPackage);
                                m.canUpgrade   = m.Version > m.LocalPackage.Identity.Version;
                            }
                            catch (Exception ex)
                            {
                                OpenRPAPackageManagerLogger.Instance.LogError(ex.ToString());
                            }
                        });
                    }
                }
                Dispatcher.Invoke(() =>
                {
                    foreach (var p in result)
                    {
                        var exists = Packages.Where(x => x.Package.Identity.Id == p.Package.Identity.Id).FirstOrDefault();
                        if (exists == null)
                        {
                            Packages.Add(p);
                        }
                        if (exists != null)
                        {
                            p.NotifyPropertyChanged("Image");
                            p.NotifyPropertyChanged("Name");
                            p.NotifyPropertyChanged("IsNotDownloaded");
                            p.NotifyPropertyChanged("isDownloaded");
                            p.NotifyPropertyChanged("canUpgrade");
                            p.NotifyPropertyChanged("isDownloaded");
                            p.NotifyPropertyChanged("Name");
                            p.NotifyPropertyChanged("InstalledVersionString");
                            p.NotifyPropertyChanged("LatestVersion");
                            p.NotifyPropertyChanged("LatestVersion");
                        }
                    }
                    ButtonUpdateAll.IsEnabled = result.Where(x => x.canUpgrade == true).Count() > 0;
                });

                if (!System.IO.Directory.Exists(OpenRPAPackageManager.Instance.Destinationfolder) || !System.IO.File.Exists(OpenRPAPackageManager.Instance.Destinationfolder + @"\OpenRPA.exe"))
                {
                    if (FirstRun)
                    {
                        FirstRun         = false;
                        var dialogResult = MessageBox.Show("Install OpenRPA and most common packages?", "First run", MessageBoxButton.YesNo);
                        if (dialogResult == MessageBoxResult.Yes)
                        {
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA").First().Package.Identity);
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.IE").First().Package.Identity);
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.NM").First().Package.Identity);
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.Forms").First().Package.Identity);
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.Script").First().Package.Identity);
                            if (IsOfficeInstalled())
                            {
                                await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.Office").First().Package.Identity);
                            }
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.AviRecorder").First().Package.Identity);
                            await OpenRPAPackageManager.Instance.DownloadAndInstall(result.Where(x => x.Package.Identity.Id == "OpenRPA.FileWatcher").First().Package.Identity);
                        }
                        LoadPackages();
                        ButtonLaunch(null, null);
                    }
                }
                bussy = bussy;

                //                // IPackageRepository localRepository = PackageRepositoryFactory.Default.CreateRepository(RepositoryPath);
                //                PackageModel m = null;
                //                foreach (var p in packageManager.LocalRepository.GetPackages())
                //                {
                //                    if (p.Id.ToLower() == "openrpa" || p.Id.ToLower().StartsWith("openrpa."))
                //                    {
                //                        this.Dispatcher.Invoke(() =>
                //                        {
                //                            m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                //                            if (m == null)
                //                            {
                //                                m = new PackageModel() { Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version };
                //                                m.LatestVersion = p.Version.ToString();
                //                                Packages.Add(m);
                //                            }
                //                            else
                //                            {
                //                                if (new Version(p.Version.ToString()) > new Version(m.Version.ToString())) { m.Version = p.Version; m.LatestVersion = p.Version.ToString(); m.Package = p; }
                //                            }
                //                        });
                //                        m.isDownloaded = true;
                //                        if (!m.isInstalled) m.isInstalled = IsPackageInstalled(p);
                //                    }
                //                }
                //                foreach (var p in Packages)
                //                {
                //                    var id = p.Package.Id.ToString();
                //                    var exists = packages.Where(x => x.Id == p.Package.Id && new Version(x.Version.ToString()) > new Version(p.Version.ToString())).FirstOrDefault();
                //                    if (exists != null)
                //                    {
                //                        if (new Version(exists.Version.ToString()) > new Version(p.Version.ToString()))
                //                        {
                //                            p.canUpgrade = true;
                //                            p.LatestVersion = exists.Version.ToString();
                //                        }

                //                    }
                //                }
                //                foreach (var p in packages)
                //                {
                //                    if (p.Id.ToLower().Contains("openrpa.interfaces") || p.Id.ToLower().Contains("openrpa.namedpipewrapper")) continue;
                //                    this.Dispatcher.Invoke(() =>
                //                    {
                //                        m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                //                        if (m == null)
                //                        {
                //                            m = new PackageModel() { Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version };
                //                            m.LatestVersion = p.Version.ToString();
                //                            Packages.Add(m);
                //                        }
                //                        var exists = packageManager.LocalRepository.FindPackage(p.Id);
                //                        m.isDownloaded = (exists != null);
                //                        if (m.isDownloaded && !m.isInstalled) m.isInstalled = IsPackageInstalled(p);
                //                    });
                //                }
                //                foreach (var p in packageManager.LocalRepository.GetPackages())
                //                {
                //                    // if (p.Id.ToLower().Contains("openrpa.interfaces") || p.Id.ToLower().Contains("openrpa.namedpipewrapper")) continue;

                //                    this.Dispatcher.Invoke(() =>
                //                    {
                //                        m = Packages.Where(x => x.Package.Id == p.Id).FirstOrDefault();
                //                        if (m == null)
                //                        {
                //                            m = new PackageModel() { Package = p, canUpgrade = false, isDownloaded = false, Version = p.Version };
                //                            m.LatestVersion = p.Version.ToString();
                //                            Packages.Add(m);
                //                        }
                //                    });

                //                    m.isDownloaded = true;
                //                    if (!m.isInstalled) m.isInstalled = IsPackageInstalled(p);
                //                }
                //                this.Dispatcher.Invoke(() =>
                //                {
                //                    ButtonUpdateAll.IsEnabled = false;
                //                });
                //                //if (!System.IO.Directory.Exists(RepositoryPath) && !System.IO.Directory.Exists(InstallPath))
                //                if (!System.IO.Directory.Exists(InstallPath) || !System.IO.File.Exists(InstallPath + @"\OpenRPA.exe"))
                //                {
                //                    FirstRun = false;
                //                    var dialogResult = MessageBox.Show("Install OpenRPA and most common packages?", "First run", MessageBoxButton.YesNo);
                //                    if (dialogResult == MessageBoxResult.Yes)
                //                    {
                //                        this.Dispatcher.Invoke(() =>
                //                        {
                //                            listPackages.IsEnabled = false;
                //                            listPackages.SelectedValue = null;
                //                        });
                //                        try
                //                        {
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.IE").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.NM").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Java").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Forms").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Script").FirstOrDefault());
                //                            if (IsOfficeInstalled())
                //                            {
                //                                await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.Office").FirstOrDefault());
                //                            }
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.AviRecorder").FirstOrDefault());
                //                            await InstallPackageAsync(packages.Where(x => x.Id == "OpenRPA.FileWatcher").FirstOrDefault());
                //                        }
                //                        catch (Exception ex)
                //                        {
                //                            MessageBox.Show(ex.ToString());
                //                        }
                //                        this.Dispatcher.Invoke(() =>
                //                        {
                //                            listPackages.IsEnabled = true;
                //                            ButtonLaunch(null, null);
                //                        });
                //                    }
                //                } else if(FirstRun) {
                //                    FirstRun = false;
                //                    int UpgradeCount = Packages.Where(x => x.canUpgrade).Count();
                //                    bool hasUpgrades = (UpgradeCount > 0);
                //                    if (hasUpgrades)
                //                    {
                //                        var dialogResult = MessageBox.Show(UpgradeCount + " packages has updates, update all ?", "Upgrades available", MessageBoxButton.YesNo);
                //                        if (dialogResult == MessageBoxResult.Yes)
                //                        {
                //                            ButtonUpdateAllClick(null, null);
                //                        }
                //                        else
                //                        {
                //                            this.Dispatcher.Invoke(() =>
                //                            {
                //                                ButtonUpdateAll.IsEnabled = true;
                //                            });

                //                        }
                //                    }

                //                }
            });
        }
示例#54
0
        /// <summary> 执行下载 </summary>
        bool DownloadPackages(DoWorkEventArgs e)
        {
            Directory.CreateDirectory(Context.UpdatePackagePath);

            Trace.TraceInformation("开始下载网络更新包");

            var workerCount = Math.Max(1, Context.MultipleDownloadCount);
            var workers     = new List <WebClient>(workerCount);
            var evt         = new AutoResetEvent(false);
            var hasError    = false;

            //Ping
            if (!string.IsNullOrEmpty(Context.UpdateMeta.UpdatePingUrl))
            {
                try
                {
                    Context.CreateWebClient().UploadData(new Uri(Context.UpdateMeta.UpdatePingUrl), new byte[0]);
                }
                catch (Exception)
                {
                }
            }

            //生成下载队列
            Trace.TraceInformation("正在初始化 {0} 个WebClient", workerCount);
            for (var i = 0; i < workerCount; i++)
            {
                var client = Context.CreateWebClient();
                client.DownloadFileCompleted += (s, e) =>
                {
                    var pkg = e.UserState as Package;
                    var cnt = s as WebClient;

                    pkg.LastError = e.Error;
                    if (e.Error != null)
                    {
                        Trace.TraceWarning($"包【{pkg.Name}】下载失败:{e.Error.Message}");
                        OnPackageDownloadFailed(new PackageEventArgs(pkg));
                    }
                    else if (pkg.IsLocalFileValid != true)
                    {
                        Trace.TraceWarning($"包【{pkg.Name}】MD5校验失败", "错误");
                        pkg.LastError = new Exception("不文件哈希值不正确或文件不存在");
                        OnPackageHashMismatch(new PackageEventArgs(pkg));
                    }

                    if (pkg.LastError != null)
                    {
                        //如果出错,且重试次数在限制范围内,则重试
                        pkg.IncreaseFailureCounter();
                        if (pkg.RetryCount <= Context.MaxiumRetryDownloadCount)
                        {
                            Trace.TraceWarning($"包【{pkg.Name}】未能成功下载,正在进行第 {pkg.RetryCount} 次重试,最大重试次数为 {Context.MaxiumRetryDownloadCount}", "错误");
                            cnt.DownloadFileAsync(new Uri(pkg.SourceUri), pkg.LocalSavePath, pkg);
                            OnPackageDownloadRetried(new PackageEventArgs(pkg));
                            return;
                        }
                        //标记出错
                        hasError = true;
                    }

                    //包下载完成事件
                    pkg.IsDownloading = false;
                    pkg.IsDownloaded  = pkg.LastError == null;
                    OnPackageDownloadFinished(new PackageEventArgs(e.UserState as Package));

                    lock (Packages)
                    {
                        Trace.TraceInformation($"包【{pkg.Name}】下载操作完成:{(pkg.IsDownloaded ? "下载成功" : "下载失败")}");
                        evt.Set();
                    }
                };
                client.DownloadProgressChanged += (s, e) =>
                {
                    var pkg = e.UserState as Package;
                    pkg.DownloadedSize = e.BytesReceived;
                    pkg.Size           = e.TotalBytesToReceive > 0 ? e.TotalBytesToReceive : pkg.Size;
                    OnDownloadProgressChanged(new PackageDownloadProgressChangedEventArgs(pkg, pkg.Size,
                                                                                          pkg.DownloadedSize, e.ProgressPercentage));
                };
                workers.Add(client);
            }

            //开始处理事务
            while (!hasError)
            {
                var breakFlag = false;
                lock (Packages)
                {
                    //没有错误,则分配下个任务
                    WebClient client;
                    while ((client = workers.Find(s => !s.IsBusy)) != null)
                    {
                        var nextPkg = Packages.Find(s => !s.IsDownloading && !s.IsDownloaded);
                        if (nextPkg == null)
                        {
                            breakFlag = true;
                            break;
                        }

                        nextPkg.IsDownloading = true;
                        Trace.TraceInformation($"包【{nextPkg.Name}】开始下载");
                        OnPackageDownload(new PackageEventArgs(nextPkg));
                        Context.ResetWebClient(client);
                        client.DownloadFileAsync(new Uri(Context.GetUpdatePackageFullUrl(nextPkg.Name)), nextPkg.LocalSavePath, nextPkg);
                    }
                }
                if (breakFlag)
                {
                    break;
                }
                evt.WaitOne();
                Trace.TraceInformation("线程同步事件已收到");
            }
            //不管任何原因中止下载,到这里时都需要等待所有客户端中止
            while (true)
            {
                //出错了,那么对所有的客户端发出中止命令。这里不需要判断是否忙碌。
                if (hasError)
                {
                    Trace.TraceWarning("出现错误,正在取消所有包的下载队列");
                    workers.ForEach(s => s.CancelAsync());
                }
                lock (Packages)
                {
                    Trace.TraceInformation("等待下载队列完成操作");
                    if (workers.FindIndex(s => s.IsBusy) == -1)
                    {
                        break;
                    }
                }
                evt.WaitOne();
            }
            Trace.TraceInformation("完成下载网络更新包");

            var errorPkgs = Packages.FindAll(m => m.LastError != null);

            if (errorPkgs.Count > 0)
            {
                throw new PackageDownloadException(errorPkgs.ToArray());
            }

            return(!hasError);
        }
        public virtual List <ProjectResource> Save(bool saveProject = true)
        {
            var list = new List <ProjectResource> ();

            if (saveProject)
            {
                if (project == null)
                {
                    project = new ProjectResource {
                        Path     = ProjectFilePath,
                        Encoding = System.Text.Encoding.UTF8,
                    };
                }
                // Clear the Timestamp if the project changed
                var contents = SaveProject();
                if (contents != project.Content)
                {
                    project.Timestamp = null;
                    project.Content   = contents;
                }
                list.Add(project);
            }

            if (Packages.Any())
            {
                var contents = "<packages>\n" + string.Concat(Packages.Select(p => string.Format("  <package id='{0}' version='{1}' targetFramework='{2}' />\n",
                                                                                                 p.Id, p.Version, p.TargetFramework))) + "</packages>";
                var timestamp = contents != packages_config_contents ? default(DateTimeOffset?) : DateTimeOffset.MinValue;
                list.Add(new ProjectResource()
                {
                    Timestamp = timestamp,
                    Path      = "packages.config",
                    Content   = packages_config_contents = contents,
                });
            }
            else
            {
                packages_config_contents = null;
            }

            foreach (var ig in ItemGroupList)
            {
                list.AddRange(ig.Select(s => new ProjectResource()
                {
                    Timestamp     = s.Timestamp,
                    Path          = s.Include?.Invoke(),
                    Content       = s.TextContent == null ? null : s.TextContent(),
                    BinaryContent = s.BinaryContent == null ? null : s.BinaryContent(),
                    Encoding      = s.Encoding,
                    Deleted       = s.Deleted,
                    Attributes    = s.Attributes,
                }));
            }

            foreach (var import in Imports)
            {
                list.Add(new ProjectResource()
                {
                    Timestamp = import.Timestamp,
                    Path      = import.Project(),
                    Content   = import.TextContent == null ? null : import.TextContent(),
                    Encoding  = System.Text.Encoding.UTF8,
                });
            }

            return(list);
        }
示例#56
0
        public IActionResult Index()
        {
            Packages pack = new Packages();

            return(View(pack.GetPackages()));
        }
 void AndGivenAPackageForTheCurrentlyInstalledVersion()
 {
     _currentVersionPacakge = Packages.FromVersions(TestConstants.AppPackageId, _installedVersion).Single();
 }
示例#58
0
文件: DHL_API.cs 项目: leeleonis/QD
        private ShipmentValidateRequestEA setShipment(Packages package)
        {
            var shipment = new ShipmentValidateRequestEA();

            shipment.Request = requsetInit();
            //shipment.NewShipper = YesNo1.N;
            //shipment.NewShipperSpecified = true;
            shipment.LanguageCode           = "tw";
            shipment.PiecesEnabled          = PiecesEnabled.Y;
            shipment.PiecesEnabledSpecified = true;
            shipment.Reference = new Reference1[] { new Reference1()
                                                    {
                                                        ReferenceID = package.OrderID.ToString()
                                                    } };
            shipment.LabelImageFormat           = LabelImageFormat.PDF;
            shipment.LabelImageFormatSpecified  = true;
            shipment.RequestArchiveDoc          = YesNo1.Y;
            shipment.RequestArchiveDocSpecified = true;
            shipment.Label = new Label()
            {
                LabelTemplate = "8X4_A4_PDF"
            };

            shipment.Billing = new Billing1()
            {
                ShipperAccountNumber     = api_account,
                ShippingPaymentType      = ShipmentPaymentType.S,
                BillingAccountNumber     = api_account,
                DutyPaymentType          = DutyTaxPaymentType1.S,
                DutyPaymentTypeSpecified = true,
                DutyAccountNumber        = api_account
            };

            Addresses address = package.Orders.Addresses;
            Contact2  contact = new Contact2()
            {
                PersonName  = string.Join(" ", new string[] { address.FirstName, address.MiddleInitial, address.LastName }),
                PhoneNumber = address.PhoneNumber
            };

            shipment.Consignee = new Consignee1()
            {
                CompanyName = !string.IsNullOrEmpty(address.CompanyName) ? address.CompanyName : contact.PersonName,
                AddressLine = new string[] { address.StreetLine1, address.StreetLine2 },
                City        = address.City,
                Division    = address.StateName,
                PostalCode  = address.PostalCode,
                CountryCode = address.CountryCode,
                CountryName = address.CountryName,
                Contact     = contact
            };

            List <Piece2> pieceList = new List <Piece2>();

            pieceList.Add(new Piece2()
            {
                PackageType   = PackageType1.YP,
                Weight        = package.Items.Sum(i => i.Qty.Value * ((decimal)i.Skus.Weight / 1000)),
                PieceContents = package.Items.First(i => i.IsEnable.Equals(true)).Skus.ProductType.ProductTypeName
            });

            shipment.ShipmentDetails = new ShipmentDetails2()
            {
                NumberOfPieces    = pieceList.Count().ToString(),
                Pieces            = pieceList.ToArray(),
                Weight            = pieceList.Sum(p => p.Weight),
                WeightUnit        = WeightUnit.K,
                GlobalProductCode = "P",
                LocalProductCode  = "P",
                Date                   = DateTime.Now,
                Contents               = string.Join(", ", package.Items.Select(i => i.Skus.ProductType.ProductTypeName).Distinct().ToArray()),
                DoorTo                 = DoorTo.DD,
                DoorToSpecified        = true,
                DimensionUnit          = DimensionUnit.C,
                DimensionUnitSpecified = true,
                //InsuredAmount = "0.00",
                PackageType         = PackageType1.YP,
                IsDutiable          = YesNo1.Y,
                IsDutiableSpecified = true,
                CurrencyCode        = Enum.GetName(typeof(QDLogistics.OrderService.CurrencyCodeType2), package.Orders.OrderCurrencyCode.Value)
            };

            shipment.Dutiable = new Dutiable1()
            {
                DeclaredValue    = package.DeclaredTotal.ToString(),
                DeclaredCurrency = shipment.ShipmentDetails.CurrencyCode,
                TermsOfTrade     = "DDP"
            };

            shipment.Shipper = new Shipper1()
            {
                ShipperID   = api_account,
                CompanyName = "Zhi You Wan LTD",
                AddressLine = new string[] { "No.51, Sec.3 Jianguo N. Rd.,", "South Dist.," },
                City        = "Taichung City",
                PostalCode  = "403",
                CountryCode = "TW",
                CountryName = "Taiwan",
                Contact     = new Contact2()
                {
                    PersonName = "Huai Wei Ho", PhoneNumber = "0423718118"
                }
            };

            shipment.SpecialService = new SpecialService1[] { new SpecialService1()
                                                              {
                                                                  SpecialServiceType = "DD",
                                                                  ChargeValue        = package.DeclaredTotal.ToString(),
                                                                  CurrencyCode       = shipment.ShipmentDetails.CurrencyCode
                                                              } };

            return(shipment);
        }
示例#59
0
        public static Pattern ProcessPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer, XPathNavigator patternNavigator, Pattern previousPattern)
        {
            DTS.Executable lastExecutableInPattern = null;
            if (previousPattern != null)
            {
                lastExecutableInPattern = previousPattern.FirstExecutableGeneratedByPattern;
            }
            Pattern p = null;
            Message.Trace(Severity.Debug,"Emitting Pattern {0}", patternNavigator.Name);

            try
            {
                switch (patternNavigator.Name)
                {
                    case "HelperTables":
                        p = new HelperTablePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ETL":
                        p = new ETLPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "StoredProc":
                        p = new StoredProcPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Dimensions":
                        p = new DimensionsPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Logtainer":
                        p = new LogtainerPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "LogUpdate":
                        p = new LogUpdatePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Container":
                        p = new ContainerPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FileSystemTask":
                        p = new FileSystemTaskPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ExecuteSQL":
                        p = new ExecuteSQLPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FactTable":
                        p = new FactTablePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ExecutePackage":
                        p = new ExecutePackagePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FTPTask":
                        p = new FTPTaskPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    default:
                        break;
                }
            }
            catch (System.Runtime.InteropServices.COMException ce)
            {
                Message.Trace(Severity.Error,ce,"Exception in Pattern {0}\n {1}\n", patternNavigator.Name, ce.Message);
            }
            catch (Exception e)
            {
                Message.Trace(Severity.Error,e,"Exception in Pattern {0}\n {1}\n", patternNavigator.Name, e.Message);
            }

            return p;
        }
示例#60
0
 public bool HasPackage(string packageName)
 {
     return(Packages.Any(p => String.Equals(p.Name, packageName, StringComparison.InvariantCultureIgnoreCase)));
 }