private void AddCatalogItems(CatalogDBContext context) { var preconfiguredItems = useCustomizationData ? GetCatalogItemsFromFile(context) : PreconfiguredData.GetPreconfiguredCatalogItems(); foreach (var item in preconfiguredItems) { var sequenceId = indexGenerator.GetNextSequenceValue(context); item.Id = sequenceId; context.CatalogItems.Add(item); } context.SaveChanges(); }
private void AddCatalogTypes(CatalogDBContext context) { var preconfiguredTypes = useCustomizationData ? GetCatalogTypesFromFile() : PreconfiguredData.GetPreconfiguredCatalogTypes(); int sequenceId = GetSequenceIdFromSelectedDBSequence(context, DBCatalogSequenceName); foreach (var type in preconfiguredTypes) { type.Id = sequenceId; context.CatalogTypes.Add(type); sequenceId++; } context.SaveChanges(); }
private void AddCatalogBrands(CatalogDBContext context) { var preconfiguredBrands = useCustomizationData ? GetCatalogBrandsFromFile() : PreconfiguredData.GetPreconfiguredCatalogBrands(); int sequenceId = GetSequenceIdFromSelectedDBSequence(context, DBBrandSequenceName); foreach (var brand in preconfiguredBrands) { brand.Id = sequenceId; context.CatalogBrands.Add(brand); sequenceId++; } context.SaveChanges(); }
private IEnumerable <CatalogType> GetCatalogTypesFromFile() { var contentRootPath = HostingEnvironment.ApplicationPhysicalPath; string csvFileCatalogTypes = Path.Combine(contentRootPath, "Setup", "CatalogTypes.csv"); if (!File.Exists(csvFileCatalogTypes)) { return(PreconfiguredData.GetPreconfiguredCatalogTypes()); } string[] csvheaders; string[] requiredHeaders = { "catalogtype" }; csvheaders = GetHeaders(csvFileCatalogTypes, requiredHeaders); return(File.ReadAllLines(csvFileCatalogTypes) .Skip(1) // skip header row .Select(x => CreateCatalogType(x)) .Where(x => x != null)); }
static IEnumerable <CatalogItem> GetCatalogItemsFromFile(CatalogDBContext context) { var contentRootPath = HostingEnvironment.ApplicationPhysicalPath; string csvFileCatalogItems = Path.Combine(contentRootPath, "Setup", "CatalogItems.csv"); if (!File.Exists(csvFileCatalogItems)) { return(PreconfiguredData.GetPreconfiguredCatalogItems()); } string[] csvheaders; string[] requiredHeaders = { "catalogtypename", "catalogbrandname", "description", "name", "price", "pictureFileName" }; string[] optionalheaders = { "availablestock", "restockthreshold", "maxstockthreshold", "onreorder" }; csvheaders = GetHeaders(csvFileCatalogItems, requiredHeaders, optionalheaders); var catalogTypeIdLookup = context.CatalogTypes.ToDictionary(ct => ct.Type, ct => ct.Id); var catalogBrandIdLookup = context.CatalogBrands.ToDictionary(ct => ct.Brand, ct => ct.Id); return(File.ReadAllLines(csvFileCatalogItems) .Skip(1) // skip header row .Select(row => Regex.Split(row, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")) .Select(column => CreateCatalogItem(column, csvheaders, catalogTypeIdLookup, catalogBrandIdLookup)) .Where(x => x != null)); }