/// <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<FilterGroups>.</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()))); }
/// <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<Products>.</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()))); }
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(); }
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()); }
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); }
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); } }
/// <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<SKUs>.</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()))); }
/// <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<Categories>.</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()))); }
/// <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<RootSKU>.</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()))); }
/// <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<RootManufacturer>.</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()))); }
/// <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<RootCategory></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()))); }
/// <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<RootSearch>.</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()))); }
/// <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<ShopLocations>.</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()))); }
public void TestProcessFileWithWrongFileName() { NameReader instance = new NameReader("WrongFileName.txt"); instance.Process(); }
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(); }