Exemple #1
0
 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);
     }
 }
Exemple #2
0
        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]));
        }
Exemple #5
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));
        }
Exemple #6
0
        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"));
        }
Exemple #8
0
        /// <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);
        }
Exemple #9
0
        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));
            }
        }
Exemple #10
0
        //
        //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;
        }