public async Task RunAsync_WithPackageCreatedThenDeleted_LeavesNoArtifacts()
        {
            var indexJsonUri   = _catalogToDnxStorage.ResolveUri("/otherpackage/index.json");
            var nupkgUri       = _catalogToDnxStorage.ResolveUri("/otherpackage/1.0.0/otherpackage.1.0.0.nupkg");
            var nuspecUri      = _catalogToDnxStorage.ResolveUri("/otherpackage/1.0.0/otherpackage.nuspec");
            var catalogStorage = Catalogs.CreateTestCatalogWithPackageCreatedThenDeleted();

            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.SetAction(
                "/packages/otherpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(File.OpenRead("Packages\\OtherPackage.1.0.0.zip"))
            }));

            var        front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor back  = MemoryCursor.CreateMax();

            await _target.RunAsync(front, back, CancellationToken.None);

            Assert.Equal(1, _catalogToDnxStorage.Content.Count);
            Assert.True(_catalogToDnxStorage.Content.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(indexJsonUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(nupkgUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(nuspecUri));
            Assert.True(_catalogToDnxStorage.ContentBytes.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(indexJsonUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(nupkgUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(nuspecUri));
        }
        public async Task RunAsync_WhenSourceNupkgIsNotFound_SkipsPackage()
        {
            var indexJsonUri   = _catalogToDnxStorage.ResolveUri("/listedpackage/index.json");
            var nupkgUri       = _catalogToDnxStorage.ResolveUri("/unlistedpackage/1.0.0/unlistedpackage.1.0.0.nupkg");
            var nuspecUri      = _catalogToDnxStorage.ResolveUri("/unlistedpackage/1.0.0/unlistedpackage.nuspec");
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackages();

            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.SetAction(
                "/packages/listedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.NotFound)
            {
                Content = _noContent
            }));

            var        front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor back  = MemoryCursor.CreateMax();

            await _target.RunAsync(front, back, CancellationToken.None);

            Assert.Equal(1, _catalogToDnxStorage.Content.Count);
            Assert.True(_catalogToDnxStorage.Content.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(indexJsonUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(nupkgUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(nuspecUri));
            Assert.True(_catalogToDnxStorage.ContentBytes.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(indexJsonUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(nupkgUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(nuspecUri));
        }
        public async Task RunAsync_WhenDownloadingPackage_RejectsUnexpectedHttpStatusCode(HttpStatusCode statusCode)
        {
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackagesAndDelete();

            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.Return404OnUnknownAction = true;

            _mockServer.SetAction(
                "/packages/listedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(statusCode)
            {
                Content = _noContent
            }));

            var        front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor back  = MemoryCursor.CreateMax();

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(
                () => _target.RunAsync(front, back, CancellationToken.None));

            Assert.Equal(
                $"Expected status code OK for package download, actual: {statusCode}",
                exception.Message);
            Assert.Equal(0, _catalogToDnxStorage.Content.Count);
        }
        public async Task RunAsync_WhenPackageDoesNotHaveNuspec_SkipsPackage()
        {
            var zipWithNoNuspec = CreateZipStreamWithEntry("readme.txt", "content");
            var indexJsonUri    = _catalogToDnxStorage.ResolveUri("/listedpackage/index.json");
            var catalogStorage  = Catalogs.CreateTestCatalogWithThreePackages();

            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.SetAction(
                "/packages/listedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(zipWithNoNuspec)
            }));

            var        front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor back  = MemoryCursor.CreateMax();

            await _target.RunAsync(front, back, CancellationToken.None);

            Assert.Equal(1, _catalogToDnxStorage.Content.Count);
            Assert.True(_catalogToDnxStorage.Content.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.Content.ContainsKey(indexJsonUri));
            Assert.True(_catalogToDnxStorage.ContentBytes.ContainsKey(_cursorJsonUri));
            Assert.False(_catalogToDnxStorage.ContentBytes.ContainsKey(indexJsonUri));
        }
Example #5
0
        public IActionResult Catalog(string id, int p = 1)
        {
            var catalog = Catalogs.FindByUrl(id);

            if (catalog == null)
            {
                return(Prompt());
            }

            ViewBag.Position = id;

            var list = Posts.PageView(catalog.ID, new PageParameter {
                PageIndex = p, PageSize = 5
            });

            // 只有一篇文章时直接跳转到详情页
            if (list.Count == 1)
            {
                return(View("Post", list.FirstOrDefault()));
            }

            ViewBag.PageUrl = id + "/" + (p + 1);
            return(View("Index", Posts.PageView(catalog.ID, new PageParameter {
                PageIndex = p, PageSize = 5
            })));
        }
Example #6
0
            public AppCatalog(string baseDir = null, string relSearchPath = null)
            {
                // This logic is 'borrowed' from the decompiled guts of the class
                //    <<System.ComponentModel.Composition.Hosting.ApplicationCatalog>>
                // The behavior is mostly the same, but it is simplified for our
                // particular use-case, and enhanced to support setting the BaseDir

                if (baseDir == null)
                {
                    baseDir = AppDomain.CurrentDomain.BaseDirectory;
                }

                if (relSearchPath == null)
                {
                    relSearchPath = AppDomain.CurrentDomain.RelativeSearchPath;
                }

                BaseDirectory      = baseDir;
                RelativeSearchPath = relSearchPath;

                Catalogs.Add(new DirectoryCatalog(baseDir, "*.dll"));
                Catalogs.Add(new DirectoryCatalog(baseDir, "*.exe"));
                if (!string.IsNullOrEmpty(relSearchPath))
                {
                    foreach (var path in relSearchPath.Split(new char[] { ';' },
                                                             StringSplitOptions.RemoveEmptyEntries))
                    {
                        var catDir = Path.Combine(baseDir, path);
                        if (Directory.Exists(catDir))
                        {
                            Catalogs.Add(new DirectoryCatalog(catDir, "*.dll"));
                        }
                    }
                }
            }
        public async Task FromCatalogEntry_HandlesCreatedLastEdited()
        {
            // Arrange
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackagesAndDelete();
            var client         = await CreateDummyClient(catalogStorage);

            var expectedTimestamp = DateTime.Parse("2015-01-01T00:00:00");

            var uris = new List <Uri>
            {
                new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.54/listedpackage.1.0.0.json"),
                new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.54/unlistedpackage.1.0.0.json"),
                new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.55/listedpackage.1.0.1.json")
            };

            // Act
            var entries = await Task.WhenAll(uris.Select(uri => PackageTimestampMetadata.FromCatalogEntry(client, new CatalogIndexEntry(uri, null, null, DateTime.MinValue, null, null))));

            // Assert
            foreach (var entry in entries)
            {
                Assert.True(entry.Exists);
                Assert.Equal(expectedTimestamp.Ticks, entry.Created.Value.Ticks);
                Assert.Equal(expectedTimestamp.Ticks, entry.LastEdited.Value.Ticks);
                Assert.Null(entry.Deleted);
                Assert.Equal(expectedTimestamp.Ticks, entry.Last.Value.Ticks);
            }
        }
Example #8
0
        private ProductCatalog?FindMatchingProductCatalog(Catalogs catalogs, Func <IEnumerable <ProductCatalog>, ProductCatalog> fallbackAction)
        {
            if (catalogs?.Products is null || !catalogs.Products.Any())
            {
                throw new NotSupportedException("No products to update are found");
            }

            var productsWithCorrectName = catalogs.Products.Where(x =>
                                                                  x.Name.Equals(LauncherInformation.Name, StringComparison.InvariantCultureIgnoreCase)).ToList();

            var searchOption = LauncherInformation.CurrentUpdateSearchOption ?? LauncherInformation.UpdateSearchOption;

            var matchingProduct = productsWithCorrectName.FirstOrDefault(x => x.ApplicationType == searchOption);

            if (fallbackAction == null || matchingProduct != null || LauncherInformation.UpdateMode == UpdateMode.Explicit || LauncherInformation.UpdateMode == UpdateMode.NoFallback)
            {
                return(matchingProduct);
            }

            var useFallback = true;

            if (LauncherInformation.UpdateMode == UpdateMode.AskFallbackStable)
            {
                var messageBoxResult = MessageBox.Show(
                    $"No updates for {searchOption}-Version available. Do you want to update to the latest stable version instead?",
                    "FoC Launcher", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes);
                useFallback = messageBoxResult == MessageBoxResult.Yes;
            }
            return(useFallback ? fallbackAction(productsWithCorrectName) : null);
        }
Example #9
0
        private string CalcDisplayValue(GridHitInfo gridHitInfo)
        {
            return(GridViewObjects.GetRowCellValue(gridHitInfo.RowHandle, gridHitInfo.Column)
                   .Return(rcv =>
            {
                var value = rcv.ToString();
                var catValue = value;
                var typeValue = value;
                var descriptionValue = value;
                var classValue = value;

                (gridHitInfo.Column.FieldName == "Name" || gridHitInfo.Column.FieldName == "OtherName")
                .Then(() => value = Catalogs.GetFrom(catValue));

                (gridHitInfo.Column.FieldName == "Type")
                .Then(() => value = ObjectType.GetFrom(typeValue));

                (gridHitInfo.Column.FieldName == "Description")
                .Then(() => value = Lookup.GetFrom(descriptionValue));

                (gridHitInfo.Column.FieldName == "Classification")
                .Then(() => value = Classification.GetFrom(
                          GridViewObjects.GetRowCellValue(gridHitInfo.RowHandle, "Type").ToString(),
                          classValue));

                (gridHitInfo.Column.FieldName == "MinimumAperture")
                .Then(() => value = MinimumApertureTip + CalcAperturesSkyBkgndBrightness + " mag/arcsec^2");

                (gridHitInfo.Column.FieldName == "BestExitPupil")
                .Then(() => value = BestExitPupilTip);

                return value;
            }, string.Empty));
        }
        private void InitializeViewModel()
        {
            CreateReportCommand        = new Command(async() => await GoToCreateReport());
            SearchPersonNameCommand    = new Command(async() => await GoToSearchPersonByName());
            SearchPersonPictureCommand = new Command(async() => await GoToSearchPersonByPicture());
            SettingsCommand            = new Command(async() => await GoToSettings());
            AboutCommand = new Command(async() => await GoToAbout());

            this.IsBusy = true;
            Task.Run(async() =>
            {
                //initialize catalogs
                Catalogs.InitCountries();
                Catalogs.InitGenre();
                Catalogs.InitLanguages();

                //get mobile settings
                Dictionary <string, string> result = await RestHelper.GetMobileSettings();
                Settings.AppCenterID_Android       = result[nameof(Settings.AppCenterID_Android)];
                Settings.AppCenterID_iOS           = result[nameof(Settings.AppCenterID_iOS)];
                Settings.AzureWebJobsStorage       = result[nameof(Settings.AzureWebJobsStorage)];
                Settings.ImageStorageUrl           = result[nameof(Settings.ImageStorageUrl)];

                //initialize App Center
                DependencyService.Get <IAppCenterService>().Initialize();
            }).ContinueWith((b) =>
            {
                this.IsBusy = false;
            });
        }
        public dataModel.Item[] GetItemByIds(string[] itemIds, coreModel.ItemResponseGroup respGroup = coreModel.ItemResponseGroup.ItemLarge)
        {
            if (itemIds == null)
            {
                throw new ArgumentNullException("categoriesIds");
            }

            if (!itemIds.Any())
            {
                return(new dataModel.Item[] { });
            }
            //Used breaking query EF performance concept https://msdn.microsoft.com/en-us/data/hh949853.aspx#8
            var retVal = Items.Include(x => x.Images).Where(x => itemIds.Contains(x.Id)).ToArray();

            //Load product catalogs separately
            var catalogIds = retVal.Select(x => x.CatalogId).Distinct().ToArray();
            var catalogs   = Catalogs.Include(x => x.CatalogLanguages).Where(x => catalogIds.Contains(x.Id)).ToArray();

            //Load product categories separately
            var categoryIds = retVal.Select(x => x.CategoryId).Where(x => !String.IsNullOrEmpty(x)).Distinct().ToArray();
            var categories  = Categories.Where(x => categoryIds.Contains(x.Id)).ToArray();

            if ((respGroup & coreModel.ItemResponseGroup.Links) == coreModel.ItemResponseGroup.Links)
            {
                var relations = CategoryItemRelations.Where(x => itemIds.Contains(x.ItemId)).ToArray();
            }
            if ((respGroup & coreModel.ItemResponseGroup.ItemProperties) == coreModel.ItemResponseGroup.ItemProperties)
            {
                var propertyValues = PropertyValues.Where(x => itemIds.Contains(x.ItemId)).ToArray();
                //Load categories with all properties for property inheritance
                categories = GetCategoriesByIds(categoryIds, coreModel.CategoryResponseGroup.WithProperties);
            }
            if ((respGroup & coreModel.ItemResponseGroup.ItemAssets) == coreModel.ItemResponseGroup.ItemAssets)
            {
                var assets = Assets.Where(x => itemIds.Contains(x.ItemId)).ToArray();
            }
            if ((respGroup & coreModel.ItemResponseGroup.ItemEditorialReviews) == coreModel.ItemResponseGroup.ItemEditorialReviews)
            {
                var editorialReviews = EditorialReviews.Where(x => itemIds.Contains(x.ItemId)).ToArray();
            }
            if ((respGroup & coreModel.ItemResponseGroup.Variations) == coreModel.ItemResponseGroup.Variations)
            {
                var variationIds = Items.Where(x => itemIds.Contains(x.ParentId)).Select(x => x.Id).ToArray();
                //For variations loads only info and images
                var variations = Items.Include(x => x.Images).Where(x => variationIds.Contains(x.Id)).ToArray();
                //load variations property values separately
                var variationPropertyValues = PropertyValues.Where(x => variationIds.Contains(x.ItemId)).ToArray();
            }
            if ((respGroup & coreModel.ItemResponseGroup.ItemAssociations) == coreModel.ItemResponseGroup.ItemAssociations)
            {
                var assosiationGroups = AssociationGroups.Include(x => x.Associations).ToArray();
                var assosiatedItemIds = assosiationGroups.SelectMany(x => x.Associations).Select(x => x.ItemId).Distinct().ToArray();
                var assosiationItems  = GetItemByIds(assosiatedItemIds, coreModel.ItemResponseGroup.ItemInfo);
            }
            //Load parents
            var parentIds = retVal.Where(x => x.Parent == null && x.ParentId != null).Select(x => x.ParentId).ToArray();
            var parents   = GetItemByIds(parentIds, respGroup);

            return(retVal);
        }
Example #12
0
        public void AddMetaData(MetaData metaData)
        {
            if (metaData != null)
            {
                if (metaData.Catalog != null)
                {
                    Catalogs.AddRange(metaData.Catalog);
                }

                if (metaData.PriceGroups != null)
                {
                    PriceGroups.AddRange(metaData.PriceGroups);
                }

                if (metaData.NomenclatureGroups != null)
                {
                    NomenclatureGroups.AddRange(metaData.NomenclatureGroups);
                }

                if (metaData.Brands != null)
                {
                    Brands.AddRange(metaData.Brands);
                }

                if (metaData.TypesOfPrices != null)
                {
                    TypesOfPrices.AddRange(metaData.TypesOfPrices);
                }

                if (metaData.CommodityDirections != null)
                {
                    CommodityDirections.AddRange(metaData.CommodityDirections);
                }
            }
        }
Example #13
0
        void InitializeViewModel()
        {
            Title = "Ubicación";

            Catalogs.InitEntities();
            Entities = Catalogs.Entities;

            if (!String.IsNullOrEmpty(Settings.CurrentRecordItem))
            {
                RecordItem item = JsonConvert.DeserializeObject <RecordItem>(Settings.CurrentRecordItem);
                LocationDetails = item.LocationDetails;

                if (item.Entity != null)
                {
                    SelectedEntity = Catalogs.GetEntityValue(item.Entity);
                }

                if (item.Municipality != null)
                {
                    SelectedMunicipality = Catalogs.GetMunicipalityValue(item.Municipality);
                }

                if (item.Locality != null)
                {
                    SelectedLocality = Catalogs.GetLocalityValue(item.Locality);
                }
            }

            NextCommand = new Command(async() => await Next());
        }
        public async Task RunAsync_WhenMultipleEntriesWithSamePackageIdentityInSameBatch_Throws()
        {
            var zipWithWrongNameNuspec = CreateZipStreamWithEntry("Newtonsoft.Json.nuspec", _nuspecData);
            var indexJsonUri           = _catalogToDnxStorage.ResolveUri("/listedpackage/index.json");
            var nupkgUri       = _catalogToDnxStorage.ResolveUri("/listedpackage/1.0.0/listedpackage.1.0.0.nupkg");
            var nuspecUri      = _catalogToDnxStorage.ResolveUri("/listedpackage/1.0.0/listedpackage.nuspec");
            var nupkgStream    = File.OpenRead(@"Packages\ListedPackage.1.0.1.zip");
            var expectedNupkg  = GetStreamBytes(nupkgStream);
            var catalogStorage = Catalogs.CreateTestCatalogWithMultipleEntriesWithSamePackageIdentityInSameBatch();

            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.SetAction(
                "/packages/listedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(nupkgStream)
            }));

            var        front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor back  = MemoryCursor.CreateMax();

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(
                () => _target.RunAsync(front, back, CancellationToken.None));

            Assert.Equal("The catalog batch 10/13/2015 6:40:07 AM contains multiple entries for the same package identity.  Package(s):  listedpackage 1.0.0", exception.Message);
        }
        /// <summary>
        /// Returned all properties belongs to specified catalog
        /// For virtual catalog also include all properties for categories linked to this virtual catalog
        /// </summary>
        /// <param name="catalogId"></param>
        /// <returns></returns>
        public dataModel.Property[] GetAllCatalogProperties(string catalogId)
        {
            var retVal  = new List <dataModel.Property>();
            var catalog = Catalogs.FirstOrDefault(x => x.Id == catalogId);

            if (catalog != null)
            {
                var propertyIds = Properties.Where(x => x.CatalogId == catalogId).Select(x => x.Id).ToArray();
                if (catalog.Virtual)
                {
                    //get all category relations
                    var linkedCategoryIds = CategoryLinks.Where(x => x.TargetCatalogId == catalogId)
                                            .Select(x => x.SourceCategoryId)
                                            .Distinct()
                                            .ToArray();
                    //linked product categories links
                    var linkedProductCategoryIds = CategoryItemRelations.Where(x => x.CatalogId == catalogId)
                                                   .Join(Items, link => link.ItemId, item => item.Id, (link, item) => item)
                                                   .Select(x => x.CategoryId)
                                                   .Distinct()
                                                   .ToArray();
                    linkedCategoryIds = linkedCategoryIds.Concat(linkedProductCategoryIds).Distinct().ToArray();
                    var expandedFlatLinkedCategoryIds = linkedCategoryIds.Concat(GetAllChildrenCategoriesIds(linkedCategoryIds)).Distinct().ToArray();

                    propertyIds = propertyIds.Concat(Properties.Where(x => expandedFlatLinkedCategoryIds.Contains(x.CategoryId)).Select(x => x.Id)).Distinct().ToArray();
                    var linkedCatalogIds = Categories.Where(x => expandedFlatLinkedCategoryIds.Contains(x.Id)).Select(x => x.CatalogId).Distinct().ToArray();
                    propertyIds = propertyIds.Concat(Properties.Where(x => linkedCatalogIds.Contains(x.CatalogId) && x.CategoryId == null).Select(x => x.Id)).Distinct().ToArray();
                }
                retVal.AddRange(GetPropertiesByIds(propertyIds));
            }
            return(retVal.ToArray());
        }
Example #16
0
 /// <summary>
 /// Initializes a new <see cref="RecursiveDirectoryCatalog"/>.
 /// </summary>
 /// <param name="path">
 /// The root directory path. In addition to the root, subdirectories of this path are searched for parts.
 /// </param>
 public RecursiveDirectoryCatalog(string path)
 {
     foreach (var catalog in GetCatalogs(path))
     {
         Catalogs.Add(catalog);
     }
 }
Example #17
0
        public async Task PutsSemVer2PackagesInLegacyStorageWhenSemVer2IsDisabled()
        {
            // Arrange
            SharedInit(useLegacy: true, useSemVer2: false);

            var catalogStorage = Catalogs.CreateTestCatalogWithSemVer2Package();
            await _mockServer.AddStorageAsync(catalogStorage);

            var front = new DurableCursor(_legacyStorage.ResolveUri("cursor.json"), _legacyStorage, MemoryCursor.MinValue);
            var back  = MemoryCursor.CreateMax();

            // Act
            await _target.RunAsync(front, back, CancellationToken.None);

            // Assert
            var legacyCursor = _legacyStorage.Content.FirstOrDefault(pair => pair.Key.PathAndQuery.EndsWith("cursor.json"));

            Assert.NotNull(legacyCursor.Key);
            var legacyIndex = _legacyStorage.Content.FirstOrDefault(pair => pair.Key.PathAndQuery.EndsWith("/testpackage.semver2/index.json"));

            Assert.NotNull(legacyIndex.Key);
            var legacyLeaf = _legacyStorage.Content.FirstOrDefault(pair => pair.Key.PathAndQuery.EndsWith("/testpackage.semver2/1.0.0-alpha.1.json"));

            Assert.NotNull(legacyLeaf.Key);
            Assert.Equal(3, _legacyStorage.Content.Count);
        }
Example #18
0
        public View(ViewModel viewModel,
                    AboutScreen aboutScreen,
                    SAC.Loader <Record> loader,
                    Catalogs catalogs,
                    ObjectType objectType,
                    Classification classification,
                    Lookup lookup,
                    IsVisibleHelper isVisibleHelper,
                    MinApertureBestExitPupil minApertureBestExitPupil)
        {
            InitializeComponent();

            ViewModel                = viewModel;
            AboutScreen              = aboutScreen;
            Loader                   = loader;
            Catalogs                 = catalogs;
            ObjectType               = objectType;
            Classification           = classification;
            Lookup                   = lookup;
            IsVisibleHelper          = isVisibleHelper;
            MinApertureBestExitPupil = minApertureBestExitPupil;

            SkyBkgndBrightness = 21.5;

            Subscribe();
        }
Example #19
0
        /// <summary>
        /// This callback is called when the catalog combobox is deployed.
        /// </summary>
        private void DeployCatalogCommandExecute()
        {
            if (_taskRetrieveDataBasesIsLaunched)
            {
                return;
            }

            var context = TaskScheduler.FromCurrentSynchronizationContext();

            Catalogs.Clear();
            Catalogs.Add("(loading databases ...)");
            var connectionString = CreateConnectionStringWithoutCatalog();

            _taskRetrieveDataBasesIsLaunched = true;
            GetDatabases(connectionString).ContinueWith(taskResult =>
            {
                try
                {
                    var databases = taskResult.Result;
                    Catalogs.Clear();
                    databases.ForEach(s => Catalogs.Add(s));
                }
                finally
                {
                    _taskRetrieveDataBasesIsLaunched = false;
                }
            }, context);
        }
        public void LoadSubCatalogs(string fileName)
        {
            try
            {
                string path;
                if (!Catalogs.ContainsKey(fileName))
                {
                    path = @"Catalog\SubCat\Empty.xml";
                }
                else
                {
                    path = string.Format(@"Catalog\SubCat\{0}.xml", fileName.Replace(" ", string.Empty));
                }
                if (path == "Catalog\\SubCat\\Всеобъявления.xml")
                {
                    path = @"Catalog\SubCat\Empty.xml";
                }

                FileStream    FS       = new FileStream(path, FileMode.Open);
                XmlSerializer XMLDeser = new XmlSerializer(typeof(UserCollection <string, string>));
                SubCatalogs = (UserCollection <string, string>)XMLDeser.Deserialize(FS);
                FS.Close();
            }
            catch (Exception)
            {
            }
        }
Example #21
0
        /// <summary>
        /// make a copy of catalog
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btCopy_Click(object sender, RoutedEventArgs e)
        {
            //get the selected item
            if (lbCatalogs.SelectedItem == null)
            {
                return;
            }
            ICatalog copy = lbCatalogs.SelectedItem as ICatalog;

            //copy fields
            var cat = new Catalog.Catalog(ComputeNode);

            BermudaConfigUtil.CopyCatalog(copy, cat);

            //open the window
            CatalogConfig window = new CatalogConfig(cat, "");
            var           ret    = window.ShowDialog();

            if (!ret.HasValue || ret == false)
            {
                return;
            }

            //add to list
            Catalogs.Add(cat);
            ComputeNode.Catalogs.Add(cat.CatalogName, cat);
        }
        public async Task FromCatalogEntry_HandlesDeleted_NotNull()
        {
            // Arrange
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackagesAndDelete();
            var client         = await CreateDummyClient(catalogStorage);

            var expectedTimestamp = DateTime.Parse("2015-01-01T01:01:01.0748028");

            var uri = new Uri(catalogStorage.BaseAddress, "data/2015.10.13.06.40.07/otherpackage.1.0.0.json");
            var catalogIndexEntry = new CatalogIndexEntry(
                uri,
                CatalogConstants.NuGetPackageDelete,
                "afc8c1f4-486e-4142-b3ec-cf5841eb8883",
                DateTime.ParseExact(
                    "2015-10-13T06:40:07.7850657Z",
                    CatalogConstants.CommitTimeStampFormat,
                    DateTimeFormatInfo.CurrentInfo,
                    DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal),
                new PackageIdentity("OtherPackage", new NuGetVersion("1.0.0")));

            // Act
            var entry = await PackageTimestampMetadata.FromCatalogEntry(client, catalogIndexEntry);

            // Assert
            Assert.False(entry.Exists);
            Assert.Null(entry.Created);
            Assert.Null(entry.LastEdited);
            Assert.Equal(expectedTimestamp.Ticks, entry.Deleted.Value.Ticks);
            Assert.Equal(expectedTimestamp.Ticks, entry.Last.Value.Ticks);
        }
        public async Task FromCatalogEntry_HandlesCreatedLastEdited()
        {
            // Arrange
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackagesAndDelete();
            var client         = await CreateDummyClient(catalogStorage);

            var expectedTimestamp = DateTime.Parse("2015-01-01T00:00:00");
            var commitTimeStamp1  = DateTime.ParseExact(
                "2015-10-12T10:08:54.1506742Z",
                CatalogConstants.CommitTimeStampFormat,
                DateTimeFormatInfo.CurrentInfo,
                DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
            var commitTimeStamp2 = DateTime.ParseExact(
                "2015-10-12T10:08:55.3335317Z",
                CatalogConstants.CommitTimeStampFormat,
                DateTimeFormatInfo.CurrentInfo,
                DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);

            var tasks = new Task <PackageTimestampMetadata>[]
            {
                PackageTimestampMetadata.FromCatalogEntry(
                    client,
                    new CatalogIndexEntry(
                        new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.54/listedpackage.1.0.0.json"),
                        CatalogConstants.NuGetPackageDetails,
                        "9a37734f-1960-4c07-8934-c8bc797e35c1",
                        commitTimeStamp1,
                        new PackageIdentity("ListedPackage", new NuGetVersion("1.0.0")))),
                PackageTimestampMetadata.FromCatalogEntry(
                    client,
                    new CatalogIndexEntry(
                        new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.54/unlistedpackage.1.0.0.json"),
                        CatalogConstants.NuGetPackageDetails,
                        "9a37734f-1960-4c07-8934-c8bc797e35c1",
                        commitTimeStamp1,
                        new PackageIdentity("UnlistedPackage", new NuGetVersion("1.0.0")))),
                PackageTimestampMetadata.FromCatalogEntry(
                    client,
                    new CatalogIndexEntry(
                        new Uri(catalogStorage.BaseAddress, "data/2015.10.12.10.08.55/listedpackage.1.0.1.json"),
                        CatalogConstants.NuGetPackageDetails,
                        "8a9e7694-73d4-4775-9b7a-20aa59b9773e",
                        commitTimeStamp2,
                        new PackageIdentity("ListedPackage", new NuGetVersion("1.0.1"))))
            };

            // Act
            var entries = await Task.WhenAll(tasks);

            // Assert
            foreach (var entry in entries)
            {
                Assert.True(entry.Exists);
                Assert.Equal(expectedTimestamp.Ticks, entry.Created.Value.Ticks);
                Assert.Equal(expectedTimestamp.Ticks, entry.LastEdited.Value.Ticks);
                Assert.Null(entry.Deleted);
                Assert.Equal(expectedTimestamp.Ticks, entry.Last.Value.Ticks);
            }
        }
Example #24
0
        public virtual void Prepare()
        {
            ViewBag.Position = "home";

            ViewBag.Catalogs = Catalogs.FindAll().OrderBy(p => p.ID);

            NewLife.Log.XTrace.Log.Info("**请求IP**:" + HttpContext.Connection.RemoteIpAddress.ToString());
        }
Example #25
0
        public CatalogDescription GetDefaultCatalog()
        {
            CatalogDescription result = Catalogs
                                        .FirstOrDefault(catalog => catalog.Default)
                                        ?? Catalogs.First();

            return(result);
        }
 private void PrintCatalogs()
 {
     Catalogs.Clear();
     foreach (var item in GetCatalogs())
     {
         Catalogs.Add(item);
     }
 }
        public MultipleDirectoryCatalog(string path, bool watchDirector, string filter)
        {
            string directoryName = GetNormalizedDirectoryName(path);

            foreach (string subDirectory in Directory.GetDirectories(directoryName))
            {
                Catalogs.Add(new DirectoryCatalog(subDirectory, watchDirector, filter));
            }
        }
        private int LoadCatalogs(DateTimeOffset lastUpdate)
        {
            SetCatalogsLabel();
            Catalogs catalogs = webService.GetCatalogs(lastUpdate);

            loadService.DownLoadCatalogs(catalogs);
            webService.ConfirmUpdateCatalogs(catalogs.Items.Select(x => x.Id));
            return(catalogs.Items.Count());
        }
        private void DeleteCatalogCommandExecute(object obj)
        {
            _dataBase.Catalog.Remove(SelectedCatalogToDelete);
            Catalogs.Remove(SelectedCatalogToDelete);

            _dataBase.SaveChanges();

            DeletingCatalogStatusText = "Deleted!";
        }
        public async Task RunAsync_WhenDownloadingPackage_OnlyDownloadsNupkgOncePerCatalogLeaf()
        {
            // Arrange
            var catalogStorage = Catalogs.CreateTestCatalogWithThreePackagesAndDelete();
            await _mockServer.AddStorageAsync(catalogStorage);

            _mockServer.SetAction(
                "/packages/listedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(File.OpenRead("Packages\\ListedPackage.1.0.0.zip"))
            }));
            _mockServer.SetAction(
                "/packages/listedpackage.1.0.1.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(File.OpenRead("Packages\\ListedPackage.1.0.1.zip"))
            }));
            _mockServer.SetAction(
                "/packages/unlistedpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(File.OpenRead("Packages\\UnlistedPackage.1.0.0.zip"))
            }));
            _mockServer.SetAction(
                "/packages/otherpackage.1.0.0.nupkg",
                request => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(File.OpenRead("Packages\\OtherPackage.1.0.0.zip"))
            }));

            ReadWriteCursor front = new DurableCursor(_cursorJsonUri, _catalogToDnxStorage, MemoryCursor.MinValue);
            ReadCursor      back  = MemoryCursor.CreateMax();

            // Act
            await _target.RunAsync(front, back, CancellationToken.None);

            // Assert
            Assert.Equal(9, _catalogToDnxStorage.Content.Count);

            Assert.Equal(5, _mockServer.Requests.Count);
            Assert.EndsWith("/index.json", _mockServer.Requests[0].RequestUri.AbsoluteUri);
            Assert.EndsWith("/page0.json", _mockServer.Requests[1].RequestUri.AbsoluteUri);

            // The packages were processed in random order.
            var remainingRequests = _mockServer.Requests
                                    .Skip(2)
                                    .Take(3)
                                    .Select(request => request.RequestUri.AbsoluteUri)
                                    .OrderBy(uri => uri)
                                    .ToArray();

            Assert.Contains("/listedpackage.1.0.0.nupkg", remainingRequests[0]);
            Assert.Contains("/listedpackage.1.0.1.nupkg", remainingRequests[1]);
            Assert.Contains("/unlistedpackage.1.0.0.nupkg", remainingRequests[2]);
        }
        public int CreateNewCatalog(bool isNew,string cateId,string catDesc, string catStartDate, string catEndDate,
                                                       string catThumbNails,
                                                       string catComments, string catWebColumns, string catSortSequence, PickBase.openMode openMode)
        {
            try
            {

                Catalogs t;
                if (isNew)
                    t = new Catalogs();
                else
                    t = new Catalogs(cateId);

                //Value to insert
                t.AddVariable("UPDATETYPE", "CATALOG");
                //t.AddVariable("CATALOG", catid);
                t.AddVariable("CATDESC", catDesc);
                t.AddVariable("STARTDATE", catStartDate);
                t.AddVariable("ENDDATE", catEndDate);
                t.AddVariable("THUMBS", catThumbNails);
                t.AddVariable("COMMENTS", catComments);
                t.AddVariable("COLUMNS", catWebColumns);
                t.AddVariable("SORT", catSortSequence);
                int key = t.Write();

                return key;
            }
            catch (Exception x)
            {
                throw;
            }
        }