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); } }
public StoredProcEmitter(string procName, string body, Packages.VulcanPackage vulcanPackage) : base(vulcanPackage) { this._procName = procName; this._body = body; this._columnList = new List<string>(); }
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; }
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(); }
protected Task(Packages.VulcanPackage vulcanPackage ,string taskName, string taskDescription, DTS.IDTSSequence parentContainer) { _vulcanPackage = vulcanPackage; _name = taskName; _description = taskDescription; _parentContainer = parentContainer; }
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; }
public InsertDefaultValuesEmitter(string tableName, XPathNavigator tableNavigator, TableHelper tableHelper,Packages.VulcanPackage vulcanPackage) : base(tableName, tableNavigator, vulcanPackage) { _tableHelper = tableHelper; }
public InsertAndUpdateSPEmitter(string tableName, XPathNavigator tableNavigator, TableHelper tableHelper, Packages.VulcanPackage vulcanPackage) : base(vulcanPackage) { this._tableName = tableName; this._tableNavigator = tableNavigator; this._tableHelper = tableHelper; }
public ConstraintEmitter(Packages.VulcanPackage vulcanPackage, Constraint constraint, TableHelper tableHelper) : base(vulcanPackage) { this._tableHelper = tableHelper; this._constraint = constraint; this._tableHelper = tableHelper; }
public SelectEmitter(Packages.VulcanPackage vulcanPackage, string tableName, string columns, string where) : base(vulcanPackage) { this.tableName = tableName; this.columns = columns; this.where = where; }
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(); }
public TemplateEmitter(String templateName, Packages.VulcanPackage vulcanPackage, params string[] parameters) :base( vulcanPackage ) { this._template = vulcanPackage.TemplateManager[templateName]; this.SetParameters(parameters); }
public SQLTask(Packages.VulcanPackage package, string name, string description, DTS.IDTSSequence parentContainer,Connection destinationConnection) : this(package, name, description, parentContainer, destinationConnection, null) { }
public TableModifierEmitter(string tableName, XPathNavigator tableNavigator, Packages.VulcanPackage vulcanPackage) : base( vulcanPackage ) { this._tableName = tableName; this._tableNavigator = tableNavigator; }
public PrecedenceConstraint(Packages.VulcanPackage vulcanPackage, string from, string to, DTS.IDTSSequence parentContainer) : base(vulcanPackage, from + "_" + to, "", parentContainer) { this.from = from; this.to = to; }
public void ShouldMethod() { // Arrange var packages = new Packages(); // Act var search = packages.Search("", "", false); // Assert Assert.That(search.Count(),Is.EqualTo(2)); }
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; }
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); }
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."); }
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; }
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); } }
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; } }
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] ); }
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; }
public ActionResult Package() { Packages model = new Packages(); model.ListPackageName = LoadPackageNameDropDown(); model.ListPackagesFeatures = LoadPackageFeaturesDropDown(); model.ListofPackage = LoadListofPackages(); return View(model); }
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?) } }
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); } }
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; }
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; }); } } } }); }
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())); }
// 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(); } }
// 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); } }
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); }
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; } }
public TableEmitterEx(TableHelper tableHelper, Packages.VulcanPackage vulcanPackage) : base(vulcanPackage) { this._tableHelper = tableHelper; }
/// <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(); } }
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(); } } }
public List <Package> GetDefaultPackages() { //returns the default packages return(Packages.Where(p => p.DefaultPackage).ToList()); }
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(); }
private void ResourceManager_PackageArrived(ResourceManager packageManager, ResourcePackage package) { RemoveChild(Packages[package]); Packages.Remove(package); RedrawRequested = true; }
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(); }
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); } } }
/// <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("完成确定需要下载的升级包"); }
public FTPTaskPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer) : base(vulcanPackage, parentContainer) { }
private void ClearPackages(bool isErrorCase) { Packages.Clear(); }
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); }
public IActionResult Create() { Packages pack = new Packages(); return(View(pack)); }
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; // }); // } // } // } }); }
/// <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); }
public IActionResult Index() { Packages pack = new Packages(); return(View(pack.GetPackages())); }
void AndGivenAPackageForTheCurrentlyInstalledVersion() { _currentVersionPacakge = Packages.FromVersions(TestConstants.AppPackageId, _installedVersion).Single(); }
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); }
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; }
public bool HasPackage(string packageName) { return(Packages.Any(p => String.Equals(p.Name, packageName, StringComparison.InvariantCultureIgnoreCase))); }