Example #1
0
 public override HashSet <AddressData> GetAddressData()
 {
     using (Nop190DataContext context = GetContext())
     {
         HashSet <Nop190_Address> addresses = context.Nop190_Addresses.ToHashSet();
         var stateProvinces = GetStateProvinces(context);
         var countries      = GetCountries(context);
         return(addresses.Select(address => GetAddressDataObject(address, stateProvinces, countries)).ToHashSet());
     }
 }
Example #2
0
        public override HashSet <ProductOptionData> GetProductOptions()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_ProductAttribute> productAttributes = context.Nop190_ProductAttributes.ToHashSet();

                return(productAttributes.Select(attribute => new ProductOptionData
                {
                    Id = attribute.ProductAttributeID,
                    Name = attribute.Name,
                }).ToHashSet());
            }
        }
Example #3
0
        public override HashSet <ProductSpecificationData> GetProductSpecifications()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_SpecificationAttribute> attributes = context.Nop190_SpecificationAttributes.ToHashSet();

                return(attributes.Select(attribute => new ProductSpecificationData
                {
                    Name = attribute.Name,
                    Id = attribute.SpecificationAttributeID
                }).ToHashSet());
            }
        }
Example #4
0
        public override HashSet <TagData> GetTags()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_ProductTag> productTags = context.Nop190_ProductTags.ToHashSet();

                return(productTags.Select(tag => new TagData
                {
                    Name = tag.Name,
                    Id = tag.ProductTagID
                }).ToHashSet());
            }
        }
Example #5
0
        public override HashSet <UserData> GetUserData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Customer> customers =
                    context.Nop190_Customers.Where(x => !x.Deleted && x.Email != null && x.PasswordHash != null && !x.IsGuest).ToHashSet();

                HashSet <Nop190_CustomerAttribute> attributes =
                    context.Nop190_CustomerAttributes.ToHashSet();
                Dictionary <int, HashSet <Nop190_CustomerAttribute> > attributeUserDictionary = attributes.GroupBy(
                    x => x.CustomerId)
                                                                                                .ToDictionary(grouping => grouping.Key, grouping => grouping.ToHashSet());
                HashSet <Nop190_Address> addresses = context.Nop190_Addresses.ToHashSet();
                var stateProvinces = GetStateProvinces(context);
                var countries      = GetCountries(context);

                var userDatas = new HashSet <UserData>();
                foreach (Nop190_Customer customer in customers)
                {
                    Nop190_Customer             thisCustomer       = customer;
                    Dictionary <string, string> customerAttributes =
                        attributeUserDictionary.ContainsKey(customer.CustomerID)
                            ? attributeUserDictionary[customer.CustomerID]
                        .GroupBy(attribute => attribute.Key)
                        .ToDictionary(grouping => grouping.Key, attribute => attribute.First().Value)
                            : new Dictionary <string, string>();
                    HashSet <Nop190_Address> customerAddresses =
                        addresses.FindAll(x => x.CustomerID == thisCustomer.CustomerID)
                        .ToHashSet();

                    userDatas.Add(new UserData
                    {
                        Id        = thisCustomer.CustomerID,
                        Email     = thisCustomer.Email,
                        Salt      = thisCustomer.SaltKey,
                        Hash      = thisCustomer.PasswordHash,
                        Active    = thisCustomer.Active,
                        Format    = "NopSHA1",
                        Guid      = thisCustomer.CustomerGUID,
                        FirstName =
                            customerAttributes.ContainsKey(FirstNameKey)
                                ? customerAttributes[FirstNameKey]
                                : string.Empty,
                        LastName =
                            customerAttributes.ContainsKey(LastNameKey) ? customerAttributes[LastNameKey] : string.Empty,
                        AddressData = customerAddresses.Select(address => GetAddressDataObject(address, stateProvinces, countries)).ToHashSet()
                    });
                }
                return(userDatas);
            }
        }
Example #6
0
        public override HashSet <BrandData> GetBrands()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Manufacturer> manufacturers =
                    context.Nop190_Manufacturers.Where(x => !x.Deleted).ToHashSet();

                return(manufacturers.Select(x => new BrandData
                {
                    Name = x.Name,
                    Id = x.ManufacturerID
                }).ToHashSet());
            }
        }
Example #7
0
        public override HashSet <CountryData> GetCountryData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Country> countries = context.Nop190_Countries.ToHashSet();

                return(countries.Select(country => new CountryData
                {
                    Id = country.CountryID,
                    Name = country.Name,
                    IsoCode = country.ThreeLetterISOCode
                }).ToHashSet());
            }
        }
Example #8
0
        public override HashSet <RegionData> GetRegionData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_StateProvince> list = context.Nop190_StateProvinces.ToHashSet();

                return(list.Select(province => new RegionData
                {
                    Id = province.StateProvinceID,
                    Name = province.Name,
                    CountryId = province.CountryID
                }).ToHashSet());
            }
        }
Example #9
0
 public override HashSet <ProductSpecificationValueData> GetProductSpecificationValues()
 {
     using (Nop190DataContext context = GetContext())
     {
         HashSet <Nop190_Product_SpecificationAttribute_Mapping> specificationAttributeMappings =
             context.Nop190_Product_SpecificationAttribute_Mappings.ToHashSet();
         return(specificationAttributeMappings.Select(attribute => new ProductSpecificationValueData
         {
             OptionId = attribute.SpecificationAttributeOptionID,
             ProductId = attribute.ProductID,
             DisplayOrder = attribute.DisplayOrder,
             Id = attribute.ProductSpecificationAttributeID
         }).ToHashSet());
     }
 }
Example #10
0
        public override HashSet <ProductOptionValueData> GetProductOptionValues()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_ProductVariantAttributeValue> values =
                    context.Nop190_ProductVariantAttributeValues.ToHashSet();

                return(values.Select(value => new ProductOptionValueData
                {
                    Value = value.Name,
                    PriceAdjustment = value.PriceAdjustment,
                    WeightAdjustment = value.WeightAdjustment,
                    Id = value.ProductVariantAttributeValueID,
                    OptionId = value.Nop190_ProductVariant_ProductAttribute_Mapping.ProductAttributeID,
                    VariantId = value.Nop190_ProductVariant_ProductAttribute_Mapping.ProductVariantID,
                }).ToHashSet());
            }
        }
Example #11
0
 public override HashSet <OrderLineData> GetOrderLineData()
 {
     using (MiniProfiler.Current.Step("Read order line data from old system"))
         using (Nop190DataContext context = GetContext())
         {
             HashSet <Nop190_OrderProductVariant> orderProductVariants =
                 context.Nop190_OrderProductVariants.ToHashSet();
             var productVariants = context.Nop190_ProductVariants.ToHashSet()
                                   .ToDictionary(x => x.ProductVariantId);
             var products = context.Nop190_Products.ToHashSet()
                            .ToDictionary(x => x.ProductId);
             return(orderProductVariants.Select(line =>
             {
                 var variant = productVariants.ContainsKey(line.ProductVariantID)
                 ? productVariants[line.ProductVariantID]
                 : null;
                 var product = variant == null ? null : products.ContainsKey(variant.ProductID)
                 ? products[variant.ProductID]
                 : null;
                 return new OrderLineData
                 {
                     Id = line.OrderProductVariantID,
                     OrderId = line.OrderID,
                     Quantity = line.Quantity,
                     UnitPriceInclTax = line.UnitPriceInclTax,
                     UnitPriceExclTax = line.UnitPriceExclTax,
                     PriceInclTax = line.PriceInclTax,
                     PriceExclTax = line.PriceExclTax,
                     DiscountAmountInclTax = line.DiscountAmountInclTax,
                     DiscountAmountExclTax = line.DiscountAmountExclTax,
                     DownloadCount = line.DownloadCount,
                     // ItemWeight = line.ItemWeight, // GM: ItemWeight is new field
                     RequiresShipping = variant != null && variant.IsShipEnabled,
                     SKU = variant == null ? string.Empty :
                           string.IsNullOrWhiteSpace(variant.SKU)
                         ? variant.ProductVariantId.ToString()
                         : variant.SKU,
                     ProductName = variant == null ? null :
                                   string.Format("{0} - {1}", product == null ? variant.Name : product.Name,
                                                 line.AttributeDescription)
                 };
             }).ToHashSet());
         }
 }
Example #12
0
        public override HashSet <CategoryData> GetCategoryData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Category> categories = context.Nop190_Categories.Where(x => !x.Deleted).ToHashSet();

                return(categories.Select(category => new CategoryData
                {
                    Id = category.CategoryID,
                    Name = category.Name,
                    ParentId = category.ParentCategoryID == 0 ? (int?)null : category.ParentCategoryID,
                    Abstract = category.Description,
                    Published = category.Published,
                    Url = MrCMS.Web.Apps.Ecommerce.Helpers.NopImport.SeoHelper.GetSeoUrl("Category", category.CategoryID, category.SEName, category.Name),
                    //Url = urlRecords.ContainsKey(category.Id) ? urlRecords[category.Id].Slug : null, // GM: UrlRecords is new table
                    PictureId = category.PictureID
                }).ToHashSet());
            }
        }
Example #13
0
        public override HashSet <PictureData> GetPictureData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Picture> pictures = context.Nop190_Pictures.ToHashSet();

                var usedPictureList = context.Nop190_ProductPictures.Select(x => x.PictureID).ToHashSet();

                pictures = pictures.FindAll(x => usedPictureList.Contains(x.PictureID));

                return(pictures.Select(picture => new PictureData
                {
                    Id = picture.PictureID,
                    ContentType = picture.MimeType,
                    FileName = GetFileName(picture),
                    GetData = () => GetData(picture, PictureInfo)
                }).ToHashSet());
            }
        }
Example #14
0
        public override HashSet <TaxData> GetTaxData()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_TaxCategory> taxCategories = context.Nop190_TaxCategories.ToHashSet();

                return(taxCategories.Select(taxCategory =>
                {
                    Nop190_TaxRate nop190TaxRate = taxCategory.Nop190_TaxRates.FirstOrDefault(x => x.TaxCategoryID == taxCategory.TaxCategoryID);
                    return new TaxData
                    {
                        Name = taxCategory.Name,
                        Rate = nop190TaxRate == null ? 0m : nop190TaxRate.Percentage,
                        Id = taxCategory.TaxCategoryID,
                        RegionId = nop190TaxRate == null ? (int?)null : nop190TaxRate.StateProvinceID
                    };
                }).ToHashSet());
            }
        }
Example #15
0
 private static Dictionary <int, Nop190_StateProvince> GetStateProvinces(Nop190DataContext context)
 {
     return(context.Nop190_StateProvinces.ToList().ToDictionary(x => x.StateProvinceID));
 }
Example #16
0
 private Dictionary <int, Nop190_Country> GetCountries(Nop190DataContext context)
 {
     return(context.Nop190_Countries.ToList().ToDictionary(x => x.CountryID));
 }
Example #17
0
        public override HashSet <OrderData> GetOrderData()
        {
            using (MiniProfiler.Current.Step("Read order data from old system"))
                using (Nop190DataContext context = GetContext())
                {
                    HashSet <Nop190_Order> orders =
                        context.Nop190_Orders.Where(order => !order.Deleted && order.OrderStatusID != 40).ToHashSet();
                    Dictionary <int, HashSet <Nop190_OrderNote> > orderNotes =
                        context.Nop190_OrderNotes.ToHashSet()
                        .GroupBy(note => note.OrderID)
                        .ToDictionary(notes => notes.Key, notes => notes.ToHashSet());

                    var countries = GetCountries(context);

                    return(orders.Select(order => new OrderData
                    {
                        Id = order.OrderID,
                        Guid = order.OrderGUID,
                        OrderDate = order.CreatedOn,
                        //BillingAddressId = order.BillingAddressId, // GM: BillingAddressId is new field. Old is BillingAddress1,2 etc
                        //ShippingAddressId = order.ShippingAddressId, // GM: ShippingAddressId is new field. Old is ShippingAddress1,2 etc
                        CustomerId = order.CustomerID,
                        Email = order.BillingEmail,
                        OrderStatus = (OrderStatus)order.OrderStatusID,
                        PaymentStatus = (PaymentStatus)order.PaymentStatusID,
                        ShippingStatus = (ShippingStatus)order.ShippingStatusID,
                        OrderSubtotalInclTax = order.OrderSubtotalInclTax,
                        OrderSubtotalExclTax = order.OrderSubtotalExclTax,
                        OrderSubTotalDiscountInclTax = order.OrderSubTotalDiscountInclTax,
                        OrderSubTotalDiscountExclTax = order.OrderSubTotalDiscountExclTax,
                        OrderShippingInclTax = order.OrderShippingInclTax,
                        OrderShippingExclTax = order.OrderShippingExclTax,
                        OrderTax = order.OrderTax,
                        OrderDiscount = order.OrderDiscount,
                        OrderTotal = order.OrderTotal,
                        //RewardPointsWereAdded = order.RewardPointsWereAdded, // GM: RewardPointsWereAdded is new field
                        CustomerIp = order.CustomerIP,
                        Notes = orderNotes.ContainsKey(order.OrderID)
                        ? orderNotes[order.OrderID].Select(note => new OrderNoteData
                        {
                            Note = note.Note,
                            ShowToCustomer = note.DisplayToCustomer,
                            Date = note.CreatedOn
                        }).ToHashSet()
                        : new HashSet <OrderNoteData>(),
                        PaidDate = order.PaidDate,
                        ShippingMethodName = order.ShippingMethod,
                        PaymentMethod = order.PaymentMethodName,
                        BillingAddress = new AddressData
                        {
                            Address1 = order.BillingAddress1,
                            Address2 = order.BillingAddress2,
                            City = order.BillingCity,
                            Company = order.BillingCompany,
                            CountryCode = GetCountryCode(order.BillingCountryID, countries),
                            Email = order.BillingEmail,
                            FirstName = order.BillingFirstName,
                            LastName = order.BillingLastName,
                            PhoneNumber = order.BillingPhoneNumber,
                            PostalCode = order.BillingZipPostalCode,
                            StateProvince = order.BillingStateProvince
                        },
                        ShippingAddress = new AddressData
                        {
                            Address1 = order.ShippingAddress1,
                            Address2 = order.ShippingAddress2,
                            City = order.ShippingCity,
                            Company = order.ShippingCompany,
                            CountryCode = GetCountryCode(order.ShippingCountryID, countries),
                            Email = order.ShippingEmail,
                            FirstName = order.ShippingFirstName,
                            LastName = order.ShippingLastName,
                            PhoneNumber = order.ShippingPhoneNumber,
                            PostalCode = order.ShippingZipPostalCode,
                            StateProvince = order.ShippingStateProvince
                        }
                    }).ToHashSet());
                }
        }
Example #18
0
        public override HashSet <ProductData> GetProducts()
        {
            using (Nop190DataContext context = GetContext())
            {
                HashSet <Nop190_Product> products = context.Nop190_Products.Where(x => !x.Deleted).ToHashSet();

                // GM: UrlRecord is new table
                //Dictionary<int, Nop190_UrlRecord> urlRecords =
                //    context.Nop190_UrlRecords.Where(x => x.EntityName == "Product")
                //        .ToHashSet().GroupBy(x => x.EntityId)
                //        .ToDictionary(x => x.Key, x => x.First());

                Dictionary <int, HashSet <Nop190_ProductVariant> > productVariants =
                    context.Nop190_ProductVariants.Where(x => !x.Deleted).ToHashSet()
                    .GroupBy(x => x.ProductID)
                    .ToDictionary(x => x.Key, x => x.ToHashSet());

                var brandIds =
                    context.Nop190_Product_Manufacturer_Mappings.GroupBy(x => x.ProductID)
                    .ToDictionary(x => x.Key, x => x.First().ProductManufacturerID);

                var productTags = context.Nop190_ProductTag_Product_Mappings.GroupBy(x => x.ProductID)
                                  .ToDictionary(x => x.Key, x => x.Select(y => y.ProductTagID).ToHashSet());
                var productCategories = context.Nop190_Product_Category_Mappings.GroupBy(x => x.ProductID)
                                        .ToDictionary(x => x.Key, x => x.Select(y => y.ProductCategoryID).ToHashSet());

                var productPictures = context.Nop190_ProductPictures.GroupBy(x => x.ProductID)
                                      .ToDictionary(x => x.Key, x => x.Select(y => y.PictureID).ToHashSet());

                var tierPriceDictionary = context.Nop190_TierPrices.ToHashSet().GroupBy(x => x.ProductVariantID)
                                          .ToDictionary(x => x.Key, x => x.ToHashSet());

                return(products.Select(product =>
                {
                    var id = product.ProductId;
                    int?brandId = brandIds.ContainsKey(id) ? brandIds[id] : (int?)null;
                    var productData = new ProductData
                    {
                        Name = product.Name,
                        Id = id,
                        Abstract = product.ShortDescription,
                        Description = product.FullDescription,
                        BrandId = brandId,
                        Tags = productTags.ContainsKey(id) ? productTags[id] : new HashSet <int>(),
                        Categories = productCategories.ContainsKey(id) ? productCategories[id] : new HashSet <int>(),
                        Pictures = productPictures.ContainsKey(id) ? productPictures[id] : new HashSet <int>(),
                        Published = product.Published,
                        Url = Ecommerce.Helpers.NopImport.SeoHelper.GetSeoUrl("Product", id, product.SEName, product.Name),
                    };
                    var variants = productVariants.ContainsKey(id) ? productVariants[id] : new HashSet <Nop190_ProductVariant>();
                    productData.ProductVariants =
                        variants
                        .Select(variant =>
                    {
                        Nop190_Download download = context.Nop190_Downloads.FirstOrDefault(x => x.DownloadID == variant.DownloadID);
                        var tierPrices = tierPriceDictionary.ContainsKey(variant.ProductVariantId)
                                    ? tierPriceDictionary[variant.ProductVariantId]
                                    : new HashSet <Nop190_TierPrice>();
                        var productVariantData = new ProductVariantData
                        {
                            Name = variant.Name,
                            Id = variant.ProductVariantId,
                            BasePrice = variant.Price,
                            PreviousPrice = variant.OldPrice,
                            SKU = string.IsNullOrWhiteSpace(variant.SKU) ? variant.ProductVariantId.ToString() : variant.SKU,
                            StockRemaining = variant.StockQuantity,
                            TrackingPolicy =
                                variant.ManageInventory == 0
                                            ? TrackingPolicy.DontTrack
                                            : TrackingPolicy.Track,
                            TaxRate = variant.TaxCategoryID,
                            Weight = variant.Weight,
                            PartNumber = variant.ManufacturerPartNumber,
                            //Gtin = variant.Gtin, // GM: Gtin is new field
                            Download = variant.IsDownload,
                            GiftCard = variant.IsGiftCard,
                            GiftCardType =
                                variant.GiftCardType == 0 ? GiftCardType.Virtual : GiftCardType.Physicial,
                            RequiresShipping = variant.IsShipEnabled,
                            MaxDownloads = variant.MaxNumberOfDownloads,
                            DownloadDays = variant.DownloadExpirationDays,
                            DownloadUrl =
                                download == null ? null : download.DownloadURL,
                            PriceBreaks = tierPrices.Select(price => new PriceBreakInfo
                            {
                                Price = price.Price,
                                Quantity = price.Quantity
                            }).ToHashSet()
                        };

                        return productVariantData;
                    }).ToHashSet();
                    return productData;
                }).ToHashSet());
            }
        }