private void addToCategoryFeaturesMap() { if (!_categoryFeaturesBySite.ContainsKey(_site)) { Hashtable myCategoryMap = new Hashtable(); for (int i = 0; i < _categoryFeatures.Count; i++) { CategoryFeatureType myCategory = _categoryFeatures[i]; myCategoryMap.Add(myCategory.CategoryID, myCategory); } _categoryFeaturesBySite.Add(_site, myCategoryMap); } }
public ActionResult FixEbayConditions() { var token = repository.GetOAuthToken(subdomainid.Value, OAuthTokenType.EBAY, true); var service = new CategoryService(token.token_key); var tobechecked = db.ebay_categories.Where(x => x.leaf && !x.ebay_conditions.Any()); foreach (var category in tobechecked) { var call = service.GetCategoryFeatures(category.categoryid, category.siteid.ToEnum <SiteCodeType>()); var features = call.CategoryList; CategoryFeatureType feature = features[0]; if (features.Count > 1) { return(Content("more feature: " + category.categoryid)); } // if condition is available if (feature.ConditionEnabledSpecified && (feature.ConditionEnabled == ConditionEnabledCodeType.Enabled || feature.ConditionEnabled == ConditionEnabledCodeType.Required)) { //iterate through each condition node foreach (ConditionType condition in feature.ConditionValues.Condition) { var con = new ebay_condition(); con.name = condition.DisplayName; con.value = condition.ID; if (!category.ebay_conditions.Any(x => x.name == con.name && x.value == con.value && x.ebayrowid == category.id)) { category.ebay_conditions.Add(con); db.SubmitChanges(); } } } } return(Content("done")); }
//recursively find out the payment metheds for a given category private static BuyerPaymentMethodCodeTypeCollection getPaymentMethods(string catId) { if (cfsTable.ContainsKey(catId)) { CategoryFeatureType cf = (CategoryFeatureType)cfsTable[catId]; if (cf.PaymentMethod != null) { return(cf.PaymentMethod); } } CategoryType cat = (CategoryType)catsTable[catId]; //if we reach top level, return null if (cat.CategoryLevel == 1) { return(null); } //check parent category return(getPaymentMethods(cat.CategoryParentID[0])); }
//recursively find out the listing duration reference type for a given category private static ListingDurationReferenceTypeCollection getListingTypes(string catId) { if (cfsTable.ContainsKey(catId)) { CategoryFeatureType cf = cfsTable[catId] as CategoryFeatureType; if (cf.ListingDuration != null) { return(cf.ListingDuration); } } CategoryType cat = catsTable[catId] as CategoryType; //if we reach top level, return null if (cat.CategoryLevel == 1) { return(null); } //check parent category return(getListingTypes(cat.CategoryParentID[0])); }
//recursively search for item condition enabled parent category feature private CategoryFeatureType getConditionEnabledCategoryFeature(string catId, Hashtable catsTable, Hashtable cfsTable) { if (cfsTable.ContainsKey(catId)) { CategoryFeatureType cf = cfsTable[catId] as CategoryFeatureType; if (cf.ConditionEnabled == ConditionEnabledCodeType.Enabled || cf.ConditionEnabled == ConditionEnabledCodeType.Required) { return(cf); } } CategoryType cat = catsTable[catId] as CategoryType; //if we reach top level, return null if (cat.CategoryLevel == 1) { return(null); } //check parent category return(getConditionEnabledCategoryFeature(cat.CategoryParentID[0], catsTable, cfsTable)); }
public ActionResult TestEbayCategories() { var token = repository.GetOAuthToken(subdomainid.Value, OAuthTokenType.EBAY, true); var service = new CategoryService(token.token_key); foreach (var category in db.ebay_categories.AsQueryable().Where(x => x.leaf)) { if (category.done.HasValue && category.done.Value) { continue; } var call = service.GetCategoryFeatures(category.categoryid, category.siteid.ToEnum <SiteCodeType>()); var features = call.CategoryList; if (features.Count > 1) { Syslog.Write(string.Format("{0} more than 1 features", category.categoryid)); } // get listing duration foreach (ListingDurationReferenceType type in call.SiteDefaults.ListingDuration) { foreach (ListingDurationDefinitionType def in call.FeatureDefinitions.ListingDurations.ListingDuration) { if (def.durationSetID == type.Value) { foreach (string entry in def.Duration) { var duration = new ebay_listingduration(); duration.listingtypeid = type.type.ToString(); duration.duration = entry; if (!category.ebay_listingdurations.Any(x => x.listingtypeid == duration.listingtypeid && x.duration == duration.duration)) { category.ebay_listingdurations.Add(duration); } } } } } CategoryFeatureType feature = features[0]; // if condition is available if (feature.ConditionEnabledSpecified && (feature.ConditionEnabled == ConditionEnabledCodeType.Enabled || feature.ConditionEnabled == ConditionEnabledCodeType.Required)) { //iterate through each condition node foreach (ConditionType condition in feature.ConditionValues.Condition) { var con = new ebay_condition(); con.name = condition.DisplayName; con.value = condition.ID; if (!category.ebay_conditions.Any(x => x.name == con.name && x.value == con.value && x.ebayrowid == category.id)) { category.ebay_conditions.Add(con); db.SubmitChanges(); } } } if (feature.ReturnPolicyEnabled) { category.requiresReturnPolicy = true; } else { category.requiresReturnPolicy = false; } category.done = true; db.SubmitChanges(); } return(Content("done")); }
public ActionResult PopulateNewEbaySiteDetails(SiteCodeType site) { var token = repository.GetOAuthToken(subdomainid.Value, OAuthTokenType.EBAY, true); var service = new CategoryService(token.token_key); // get categories if (db.ebay_categories.Count(x => x.siteid == site.ToString()) == 0) { var collections = service.GetCategories(site); foreach (CategoryType category in collections) { var entry = new ebay_category(); entry.siteid = site.ToString(); entry.categoryid = int.Parse(category.CategoryID); entry.level = category.CategoryLevel; entry.name = category.CategoryName; entry.parentid = int.Parse(category.CategoryParentID[0]); entry.leaf = category.LeafCategory; db.ebay_categories.InsertOnSubmit(entry); } repository.Save(); } var resp = service.GetEbayDetails(site); // populate dispatch time if (db.ebay_dispatchtimes.Count(x => x.siteid == site.ToString()) == 0) { foreach (DispatchTimeMaxDetailsType entry in resp.DispatchTimeMaxDetails) { var time = new ebay_dispatchtime(); time.siteid = site.ToString(); time.name = entry.Description; time.dispatchTime = entry.DispatchTimeMax; db.ebay_dispatchtimes.InsertOnSubmit(time); } repository.Save(); } // populate shipping locations if (db.ebay_shippinglocations.Count(x => x.siteid == site.ToString()) == 0) { foreach (ShippingLocationDetailsType entry in resp.ShippingLocationDetails) { var loc = new ebay_shippinglocation(); loc.description = entry.Description; loc.location = entry.ShippingLocation; loc.siteid = site.ToString(); db.ebay_shippinglocations.InsertOnSubmit(loc); } repository.Save(); } // populate shipping services if (db.ebay_shippingservices.Count(x => x.siteid == site.ToString()) == 0) { // shipping details foreach (ShippingServiceDetailsType entry in resp.ShippingServiceDetails) { var ship = new ebay_shippingservice(); ship.siteid = site.ToString(); ship.description = entry.Description; ship.servicetype = entry.ShippingService; ship.isInternational = entry.InternationalService; ship.requiresDimension = entry.DimensionsRequired; ship.requiresWeight = entry.WeightRequired; db.ebay_shippingservices.InsertOnSubmit(ship); } repository.Save(); } // now go through and populate category related services foreach (var category in db.ebay_categories.AsQueryable().Where(x => x.leaf)) { if (category.done.HasValue && category.done.Value) { continue; } var call = service.GetCategoryFeatures(category.categoryid, category.siteid.ToEnum <SiteCodeType>()); var features = call.CategoryList; if (features.Count > 1) { Syslog.Write(string.Format("{0} more than 1 features", category.categoryid)); } // get listing duration foreach (ListingDurationReferenceType type in call.SiteDefaults.ListingDuration) { foreach (ListingDurationDefinitionType def in call.FeatureDefinitions.ListingDurations.ListingDuration) { if (def.durationSetID == type.Value) { foreach (string entry in def.Duration) { var duration = new ebay_listingduration(); duration.listingtypeid = type.type.ToString(); duration.duration = entry; if (!category.ebay_listingdurations.Any(x => x.listingtypeid == duration.listingtypeid && x.duration == duration.duration)) { category.ebay_listingdurations.Add(duration); } } } } } CategoryFeatureType feature = features[0]; // if condition is available if (feature.ConditionEnabledSpecified && (feature.ConditionEnabled == ConditionEnabledCodeType.Enabled || feature.ConditionEnabled == ConditionEnabledCodeType.Required)) { //iterate through each condition node foreach (ConditionType condition in feature.ConditionValues.Condition) { var con = new ebay_condition(); con.name = condition.DisplayName; con.value = condition.ID; if (!category.ebay_conditions.Any(x => x.name == con.name && x.value == con.value && x.ebayrowid == category.id)) { category.ebay_conditions.Add(con); db.SubmitChanges(); } } } if (feature.ReturnPolicyEnabled) { category.requiresReturnPolicy = true; } else { category.requiresReturnPolicy = false; } category.done = true; db.SubmitChanges(); } return(Content("done")); }
/// <summary> /// درج مقادیر اولیه در دیتابیس به هنگام ساخت دیتابیس /// </summary> /// <param name="context">شی دیتابیس اصلی برنامه</param> protected override void Seed(AsefianContext context) { foreach (var item in Language.GetList()) { context.Language.Add(item); } #region Account foreach (var item in UserType.GetList()) { context.UserType.Add(item); } foreach (var item in BalanceType.GetList()) { context.BalanceType.Add(item); } foreach (var item in Browser.GetList()) { context.Browser.Add(item); } foreach (var item in DeviceType.GetList()) { context.DeviceType.Add(item); } foreach (var item in GroupStatus.GetList()) { context.GroupStatus.Add(item); } foreach (var item in NotificationStatus.GetList()) { context.NotificationStatus.Add(item); } foreach (var item in NotificationType.GetList()) { context.NotificationType.Add(item); } foreach (var item in Account.Enum.OperatingSystem.GetList()) { context.OperatingSystem.Add(item); } foreach (var item in Sex.GetList()) { context.Sex.Add(item); } foreach (var item in TokenType.GetList()) { context.TokenType.Add(item); } foreach (var item in UserAddressStatus.GetList()) { context.UserAddressStatus.Add(item); } foreach (var item in UserFavoriteFolderStatus.GetList()) { context.UserFavoriteFolderStatus.Add(item); } foreach (var item in UserFavoriteStatus.GetList()) { context.UserFavoriteStatus.Add(item); } foreach (var item in UserStatus.GetList()) { context.UserStatus.Add(item); } #endregion #region Blog foreach (var item in ArticleFileStatus.GetList()) { context.ArticleFileStatus.Add(item); } foreach (var item in ArticleStatus.GetList()) { context.ArticleStatus.Add(item); } foreach (var item in NewsStatus.GetList()) { context.NewsStatus.Add(item); } #endregion #region Core foreach (var item in BranchStatus.GetList()) { context.BranchStatus.Add(item); } foreach (var item in LocationType.GetList()) { context.LocationType.Add(item); } foreach (var item in SliderContentStatus.GetList()) { context.SliderContentStatus.Add(item); } foreach (var item in SliderStatus.GetList()) { context.SliderStatus.Add(item); } foreach (var item in SliderType.GetList()) { context.SliderType.Add(item); } #endregion #region Data foreach (var item in ExportStatus.GetList()) { context.ExportStatus.Add(item); } foreach (var item in ContactUsStatus.GetList()) { context.ContactUsStatus.Add(item); } foreach (var item in SpecialProjectStatus.GetList()) { context.SpecialProjectStatus.Add(item); } foreach (var item in SpecialProjectFileStatus.GetList()) { context.SpecialProjectFileStatus.Add(item); } foreach (var item in BrandStatus.GetList()) { context.BrandStatus.Add(item); } foreach (var item in CategoryFeatureStatus.GetList()) { context.CategoryFeatureStatus.Add(item); } foreach (var item in CategoryFeatureType.GetList()) { context.CategoryFeatureType.Add(item); } foreach (var item in CategoryStatus.GetList()) { context.CategoryStatus.Add(item); } foreach (var item in CategoryType.GetList()) { context.CategoryType.Add(item); } foreach (var item in DownloadCenterStatus.GetList()) { context.DownloadCenterStatus.Add(item); } foreach (var item in ProductFileStatus.GetList()) { context.ProductFileStatus.Add(item); } foreach (var item in ProductFileType.GetList()) { context.ProductFileType.Add(item); } foreach (var item in ProductFilterStatus.GetList()) { context.ProductFilterStatus.Add(item); } foreach (var item in ProductFilterType.GetList()) { context.ProductFilterType.Add(item); } foreach (var item in ProductFilterValueStatus.GetList()) { context.ProductFilterValueStatus.Add(item); } foreach (var item in ProductStatus.GetList()) { context.ProductStatus.Add(item); } foreach (var item in ServiceStatus.GetList()) { context.ServiceStatus.Add(item); } #endregion #region Financial foreach (var item in CouponStatus.GetList()) { context.CouponStatus.Add(item); } foreach (var item in CouponType.GetList()) { context.CouponType.Add(item); } foreach (var item in DeliveryType.GetList()) { context.DeliveryType.Add(item); } foreach (var item in InquiryStatus.GetList()) { context.InquiryStatus.Add(item); } foreach (var item in InvoiceDetailStatus.GetList()) { context.InvoiceDetailStatus.Add(item); } foreach (var item in InvoiceStatus.GetList()) { context.InvoiceStatus.Add(item); } foreach (var item in PaymentType.GetList()) { context.PaymentType.Add(item); } #endregion #region Support foreach (var item in FaqCategoryStatus.GetList()) { context.FaqCategoryStatus.Add(item); } foreach (var item in FaqStatus.GetList()) { context.FaqStatus.Add(item); } foreach (var item in MessageBoxStatus.GetList()) { context.MessageBoxStatus.Add(item); } foreach (var item in NewsLetterStatus.GetList()) { context.NewsLetterStatus.Add(item); } foreach (var item in TicketMessageType.GetList()) { context.TicketMessageType.Add(item); } foreach (var item in TicketPriority.GetList()) { context.TicketPriority.Add(item); } foreach (var item in TicketStatus.GetList()) { context.TicketStatus.Add(item); } foreach (var item in MessageType.GetList()) { context.MessageType.Add(item); } #endregion var admin = new User() { FirstName = "مدیر", LastName = "سیستم", MobileNumber = "09122424519", MobileNumberValid = true, Email = "*****@*****.**", EmailValid = true, SexId = Sex.Male.Id, TypeId = UserType.Insider.Id, Password = PasswordUtility.Encrypt("alialiali"), StatusId = UserStatus.Active.Id, Permission = 1, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, CreateIp = "::1", ModifyIp = "::1" }; context.User.Add(admin); }
private void populateCategoryList() { this.categoryListBox.Items.Clear(); Hashtable allCategories = controller.SiteFacade.GetAllCategoriesTable(); Hashtable cfsTable = this.controller.SiteFacade.SiteCategoriesFeaturesTable[this.controller.ApiContext.Site] as Hashtable; SiteDefaultsType siteDefaults = this.controller.SiteFacade.SiteFeatureDefaultTable[this.controller.ApiContext.Site] as SiteDefaultsType; for (int i = 0; i < sortedLeafCategories.Count; i++) { CategoryType cat = (CategoryType)sortedLeafCategories.GetByIndex(i); string categoryId = cat.CategoryID; String catName = cat.CategoryName; //check if category id is provided on SiteList form, if provided, //just list the provided category if (this.isCategoryIdProvided() && categoryId != catId) { continue; } // Walk up the category hierarchy to see if itemspecifics is enabled for this category ItemSpecificsEnabledCodeType itemSpecificsEnabled = (siteDefaults.ItemSpecificsEnabledSpecified == true) ? siteDefaults.ItemSpecificsEnabled : ItemSpecificsEnabledCodeType.Disabled; while (true) { CategoryFeatureType cft = cfsTable[categoryId] as CategoryFeatureType; CategoryType currentCat = (CategoryType)allCategories[categoryId]; if (cft != null && cft.ItemSpecificsEnabledSpecified == true) { itemSpecificsEnabled = cft.ItemSpecificsEnabled; break; } if (currentCat.CategoryLevelSpecified == true && currentCat.CategoryLevel == 1) { break; } categoryId = currentCat.CategoryParentID.ItemAt(0); } //ignore category which has no attributes or item specifics if (itemSpecificsEnabled.Equals(ItemSpecificsEnabledCodeType.Disabled)) { continue; } string name; string value; if (catName != null && catName.Length > 1) { name = cat.CategoryName + "(" + cat.CategoryID + ")"; value = cat.CategoryID; } else { name = cat.CharacteristicsSets[0].Name + "[" + cat.CategoryID + "]"; value = cat.CategoryID; } categoryListBox.Items.Add(new ListItem(name, value)); } }
// //sync category features // private void SyncCategoryFeatures() { Hashtable catsTable = this.siteFacade.GetAllCategoriesTable(); Hashtable cfsTable = this.siteFacade.SiteCategoriesFeaturesTable[this.apiContext.Site] as Hashtable; SiteDefaultsType siteDefaults = this.siteFacade.SiteFeatureDefaultTable[this.apiContext.Site] as SiteDefaultsType; FeatureDefinitionsType featureDefinition = this.siteFacade.SiteFeatureDefinitionsTable[this.apiContext.Site] as FeatureDefinitionsType; CategoryFeatureType cf = cfsTable[this.CategoryID] as CategoryFeatureType; //get item SpecificsEnabled feature //workaround, if no CategoryFeature found, just use site defaults this.ItemSpecificEnabled = (cf == null) ? siteDefaults.ItemSpecificsEnabled : cf.ItemSpecificsEnabled; //get item ConditionEnabled feature //workaround, if Disabled, just check parent CategoryFeatureType conditionEnabledCategoryFeature = this.getConditionEnabledCategoryFeature(this.CategoryID, catsTable, cfsTable); if (conditionEnabledCategoryFeature != null) { this.conditionEnabled = conditionEnabledCategoryFeature.ConditionEnabled; this.conditionValues = conditionEnabledCategoryFeature.ConditionValues; } else { this.conditionEnabled = siteDefaults.ConditionEnabled; this.conditionValues = siteDefaults.ConditionValues; } if (cf != null && cf.ConditionValues != null) { this.conditionValues = cf.ConditionValues; } //this.conditionValues = (cf == null || cf.ConditionValues == null) ? siteDefaults.ConditionValues : cf.ConditionValues; //get returnPolicyEnabled feature //workaround, just use siteDefaults now //bool retPolicyEnabled = (cf == null)?siteDefaults.ReturnPolicyEnabled:cf.ReturnPolicyEnabled; this.ReturnPolicyEnabled = siteDefaults.ReturnPolicyEnabled; //listing types, recursively search ListingDurationReferenceTypeCollection listingTypes = getListingTypes(this.CategoryID, catsTable, cfsTable); if (listingTypes == null || listingTypes.Count == 0)//get site defaults { listingTypes = siteDefaults.ListingDuration; } //listing duration definitions ListingDurationDefinitionsType listingDurations = featureDefinition.ListingDurations; //get a mapping from listing type to duration this.ListingType2DurationMap = constructListingTypeDurationMapping(listingTypes, listingDurations); //payment methods BuyerPaymentMethodCodeTypeCollection paymentMethods = getPaymentMethods(this.CategoryID, catsTable, cfsTable); if (paymentMethods == null || paymentMethods.Count == 0)//get site defautls { paymentMethods = siteDefaults.PaymentMethod; } this.PaymentMethod = paymentMethods; }