コード例 #1
0
ファイル: FilterGroup.cs プロジェクト: giorgalis/skroutz.gr
        /// <summary>
        /// List FilterGroups
        /// </summary>
        /// <param name="categoryId">The category identifier.</param>
        /// <param name="page">The page.</param>
        /// <param name="per">Results per page.</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;FilterGroups&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="categoryId" /> or <paramref name="page" /> or <paramref name="per" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/filter_groups/#list-filtergroups" />
        public Task <FilterGroups> ListFilterGroups(int categoryId, int page = 1, int per = 25, params Expression <Func <Entities.Base.FilterGroup, object> >[] sparseFields)
        {
            if (categoryId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(categoryId));
            }

            if (page <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(page));
            }

            if (per <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(per));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"categories/{categoryId}/filter_groups?");
            _skroutzRequest.SBuilder.Append($"page={page}&per={per}");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"&fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <FilterGroups>(t.Result.ToString())));
        }
コード例 #2
0
        /// <summary>
        /// Search for products
        /// </summary>
        /// <param name="shopId">Unique identifier of the shop</param>
        /// <param name="shopUid">Search with the product identifier as assigned by the shop</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;Products&gt;.</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">Thrown when <paramref name="shopId" /> or <paramref name="shopUid" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/product/#search-for-products" />
        public Task <Products> SearchForProducts(int shopId, string shopUid, params Expression <Func <Entities.Base.Product, object> >[] sparseFields)
        {
            if (shopId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(shopId));
            }
            if (string.IsNullOrEmpty(shopUid))
            {
                throw new ArgumentNullException(nameof(shopUid));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"shops/{shopId}/products/search?");
            _skroutzRequest.SBuilder.Append($"shop_uid={shopUid}");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"&fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <Products>(t.Result.ToString())));
        }
コード例 #3
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     NameReader.GetBindingExpression(TextBox.TextProperty).UpdateSource();
     Email.GetBindingExpression(TextBox.TextProperty).UpdateSource();
     Address.GetBindingExpression(TextBox.TextProperty).UpdateSource();
     DobReader.GetBindingExpression(DatePicker.SelectedDateProperty).UpdateSource();
 }
コード例 #4
0
        public void TestChangeToName()
        {
            NameReader reader       = new NameReader();
            var        result       = reader.ChangeToName("SIPON HOSSAIN MAHMUD");
            var        expectedName = new Name {
                FirstName = null, LastName = "SIPON", OtherName = "HOSSAIN", FourthName = "MAHMUD"
            };

            Assert.AreEqual(expectedName.ToString(), result.ToString());
        }
コード例 #5
0
        public void TestProcessFile()
        {
            var instance  = new NameReader("unsorted-names-list.txt");
            var expResult = TestUtils.TestUtils.ConvertPersonListToNameList(new MockData().ExpectedUnorderedList()).ToList();
            var result    = TestUtils.TestUtils.ConvertPersonListToNameList(instance.Process()).ToList();

            Assert.AreNotEqual(result, 0);
            Assert.AreEqual(result.Count, 14);
            Assert.AreEqual(result.Count, expResult.Count);
            CollectionAssert.AreEqual(result, expResult);
        }
コード例 #6
0
        static void Main(string[] args)
        {
            IEnumerable <string> names = NameReader.LoadNames("../../../../../Resources/StarNames.txt");

            var nameGenerator = new MarkovChainNameGenerator(names.ToList());

            var generated = nameGenerator.GenerateNames(100);

            foreach (string name in generated)
            {
                Console.WriteLine(name);
            }
        }
コード例 #7
0
        /// <summary>
        /// List SKUs of specific category.
        /// </summary>
        /// <param name="categoryId">Unique identifier of the Category</param>
        /// <param name="orderBy">Order by price, popularity or rating</param>
        /// <param name="orderDir">Order by ascending or descending</param>
        /// <param name="searchKeyword">The keyword to search by</param>
        /// <param name="metaFilters">The meta filters.</param>
        /// <param name="manufacturerIds">The ids of the manufacturers of the SKUs</param>
        /// <param name="filterIds">The ids of the filters to be applied on the SKUs</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;SKUs&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="categoryId" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/sku/#list-skus-of-specific-category"></see>
        /// <remarks>The default <c>order_by value</c> may differ across categories but in most cases it's <c>pricevat</c>.</remarks>
        public Task <SKUs> ListSKUsOfSpecificCategory(int categoryId, OrderByPrcPopRating orderBy = OrderByPrcPopRating.pricevat, OrderDir orderDir = OrderDir.asc, string searchKeyword = null, MetaFilters?metaFilters = null, IList <int> manufacturerIds = null, IList <int> filterIds = null, params Expression <Func <SKU, object> >[] sparseFields)
        {
            if (categoryId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(categoryId));
            }
            //TODO: perform check
            //if (metaFilters.HasValue && metaFilters == MetaFilters.AppliedFilters)
            //{
            //    if(manufacturerIds == null && filterIds == null) throw new ArgumentOutOfRangeException(nameof(metaFilters));
            //}

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"categories/{categoryId}/skus?");
            _skroutzRequest.SBuilder.Append($"order_by={orderBy}");
            _skroutzRequest.SBuilder.Append($"&order_dir={orderDir}");

            if (!string.IsNullOrEmpty(searchKeyword))
            {
                _skroutzRequest.SBuilder.Append($"&q={searchKeyword}");
            }

            if (manufacturerIds != null)
            {
                _skroutzRequest.SBuilder.Append($"&manufacturer_ids[]={string.Join("&manufacturer_ids[]=", manufacturerIds.Select(s => s.ToString()))}");
            }

            if (filterIds != null)
            {
                _skroutzRequest.SBuilder.Append($"&filter_ids[]={string.Join("&filter_ids[]=", filterIds.Select(s => s.ToString()))}");
            }

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"&fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <SKUs>(t.Result.ToString())));
        }
コード例 #8
0
ファイル: Manufacturer.cs プロジェクト: giorgalis/skroutz.gr
        /// <summary>
        /// Retrieve a manufacturer's categories
        /// </summary>
        /// <param name="manufacturerId">Unique identifier of the manufacturer</param>
        /// <param name="orderBy">Order by name or popularity</param>
        /// <param name="orderDir">Order by ascending or descending</param>
        /// <param name="page">The page.</param>
        /// <param name="per">Results per page.</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;Categories&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="manufacturerId" /> or <paramref name="page" /> or <paramref name="per" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/manufacturer/#retrieve-a-manufacturers-categories" />
        public Task <Categories> RetrieveManufacturerCategories(int manufacturerId, OrderByNamePop?orderBy = OrderByNamePop.popularity, OrderDir?orderDir = OrderDir.desc, int page = 1, int per = 25, params Expression <Func <Entities.Base.Category, object> >[] sparseFields)
        {
            if (manufacturerId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(manufacturerId));
            }

            if (page <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(page));
            }

            if (per <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(per));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"manufacturers/{manufacturerId}/categories?");

            if (orderBy.HasValue)
            {
                _skroutzRequest.SBuilder.Append($"&order_by={orderBy}");
            }

            if (orderDir.HasValue)
            {
                _skroutzRequest.SBuilder.Append($"&order_dir={orderDir}");
            }

            _skroutzRequest.SBuilder.Append($"&page={page}&per={per}");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"&fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <Categories>(t.Result.ToString())));
        }
コード例 #9
0
        /// <summary>
        /// Retrieve a single SKU.
        /// </summary>
        /// <param name="skuId">Unique identifier of the SKU</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;RootSKU&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="skuId" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/sku/#retrieve-a-single-sku" />
        public Task <RootSKU> RetrieveSingleSKU(int skuId, params Expression <Func <SKU, object> >[] sparseFields)
        {
            if (skuId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(skuId));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"skus/{skuId}");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"&fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <RootSKU>(t.Result.ToString())));
        }
コード例 #10
0
ファイル: Manufacturer.cs プロジェクト: giorgalis/skroutz.gr
        /// <summary>
        /// Retrieve a single manufacturer
        /// </summary>
        /// <param name="manufacturerId">Unique Identifier of the manufacturer</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;RootManufacturer&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="manufacturerId" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/manufacturer/#retrieve-a-single-manufacturer" />
        public Task <RootManufacturer> RetrieveSingleManufacturer(int manufacturerId, params Expression <Func <Entities.Base.Manufacturer, object> >[] sparseFields)
        {
            if (manufacturerId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(manufacturerId));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"manufacturers/{manufacturerId}?");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <RootManufacturer>(t.Result.ToString())));
        }
コード例 #11
0
        /// <summary>
        /// Retrieve the parent of a category.
        /// </summary>
        /// <param name="categoryId">Unique identifier of the Category</param>
        /// <param name="sparseFields">The sparse fields.</param>
        /// <returns>Task&lt;RootCategory&gt;</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="categoryId" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/category/#retrieve-a-single-category" />
        public Task <RootCategory> RetrieveTheParentOfCategory(int categoryId, params Expression <Func <Entities.Base.Category, object> >[] sparseFields)
        {
            if (categoryId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(categoryId));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"categories/{categoryId}/parent?");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <RootCategory>(t.Result.ToString())));
        }
コード例 #12
0
ファイル: Search.cs プロジェクト: giorgalis/skroutz.gr
        /// <summary>
        /// Autocompletes the specified search string.
        /// </summary>
        /// <param name="searchString">The search string.</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;RootSearch&gt;.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="searchString" /> is null or empty.</exception>
        /// <remarks>Note that the results of the autocomplete are to be treated as search suggestions. When the user selects any of them you should perform a search with the selected keyphrase.</remarks>
        public Task <RootSearch> Autocomplete(string searchString, params Expression <Func <Entities.Search, object> >[] sparseFields)
        {
            if (string.IsNullOrEmpty(searchString))
            {
                throw new ArgumentNullException(nameof(searchString));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"autocomplete?q={searchString}");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <RootSearch>(t.Result.ToString())));
        }
コード例 #13
0
ファイル: Shop.cs プロジェクト: giorgalis/skroutz.gr
        /// <summary>
        /// Lists the shop locations.
        /// </summary>
        /// <param name="shopId">The shop identifier.</param>
        /// <param name="sparseFields">Sparse fields are a way for clients to request specific json fields from the server response.</param>
        /// <returns>Task&lt;ShopLocations&gt;.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="shopId" /> is less than or equal to 0.</exception>
        /// <see href="https://developer.skroutz.gr/api/v3/shop/#list-shop-locations" />
        public Task <ShopLocations> ListShopLocations(int shopId, params Expression <Func <Location, object> >[] sparseFields)
        {
            if (shopId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(shopId));
            }

            _skroutzRequest.SBuilder.Clear();
            _skroutzRequest.SBuilder.Append($"shops/{shopId}/locations?");

            if (sparseFields.Length > 0)
            {
                _skroutzRequest.SBuilder.Append($"fields[root]={NameReader.GetMemberNames(sparseFields)}");
            }

            _skroutzRequest.Method = HttpMethod.GET;

            return(GetWebResultAsync(_skroutzRequest).ContinueWith((t) =>
                                                                   JsonConvert.DeserializeObject <ShopLocations>(t.Result.ToString())));
        }
コード例 #14
0
        public void TestProcessFileWithWrongFileName()
        {
            NameReader instance = new NameReader("WrongFileName.txt");

            instance.Process();
        }
コード例 #15
0
ファイル: ObjectReaderTest.cs プロジェクト: mrmorgan/Pdfl
        public void Test_NameReader()
        {
            const string raw = "/ASomewhatLongerName /A;Name_With-Various***Characters? /1.2 /$$ /@pattern /.notdef /Adobe#20Green /PANTONE#205757#20CV /paired#28#29parentheses /The_Key_of_F#23_Minor /A#42";
            var stream = new MemoryStream(Encoding.ASCII.GetBytes(raw));
            var reader = new NameReader(stream, null);

            var obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("ASomewhatLongerName", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("A;Name_With-Various***Characters?", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("1.2", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("$$", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("@pattern", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual(".notdef", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("Adobe Green", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("PANTONE 5757 CV", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("paired()parentheses", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("The_Key_of_F#_Minor", obj.Value);

            obj = reader.Read();
            Assert.IsNotNull(obj);
            Assert.AreEqual("AB", obj.Value);

            stream.Dispose();
        }