Example #1
0
        public HttpStatusCode UpdateCatalog(int catalogId, UpdateCatalogDto updateCatalogDto)
        {
            var response = _catalogRepository.UpdateCatalog(catalogId, updateCatalogDto);

            switch (response)
            {
            case HttpStatusCode.OK:
                return(HttpStatusCode.OK);

            case HttpStatusCode.InternalServerError:
                return(HttpStatusCode.InternalServerError);

            default:
                return(HttpStatusCode.NotFound);
            }
        }
Example #2
0
        public HttpStatusCode UpdateCatalog(int catalogId, UpdateCatalogDto updateCatalogDto)
        {
            if (catalogId <= 0)
            {
                return(HttpStatusCode.NotFound);
            }

            Catalog catalog = _ctx.Catalogs.FirstOrDefault(f => f.Id == catalogId);

            catalog.Name             = updateCatalogDto.Name;
            catalog.LastModifiedDate = DateTime.Now;

            try
            {
                _ctx.Entry(catalog).State = EntityState.Modified;
                _ctx.SaveChanges();

                return(HttpStatusCode.OK);
            }
            catch (Exception ex)
            {
                return(HttpStatusCode.InternalServerError);
            }
        }
        public static List <Catalog> UpdateCatalog(UpdateCatalogDto updateCatalog)
        {
            var updatedProducts = new List <Catalog>();

            try
            {
                // file paths
                var supplierFile = "./input/suppliers" + updateCatalog.Source + ".csv";
                var barcodeFile  = "./input/barcodes" + updateCatalog.Source + ".csv";
                var productFile  = "./input/catalog" + updateCatalog.Source + ".csv";

                // get all data for company
                List <CatalogSupplier> suppliers = FileProcessor.InportCsv <CatalogSupplier>(supplierFile);
                List <CatalogBarcodes> barcodes  = FileProcessor.InportCsv <CatalogBarcodes>(barcodeFile);
                List <Catalog>         products  = FileProcessor.InportCsv <Catalog>(productFile);
                products.ForEach(p => p.Source = updateCatalog.Source);

                //find product
                var existProduct = products.Where(w => w.SKU == updateCatalog.SKU).Select(s => s).FirstOrDefault();
                if (existProduct != null)
                {
                    // supplier
                    var supplierID = suppliers.Max(m => m.ID) + 1;
                    var supplier   = suppliers.Where(w => w.Name == updateCatalog.SupplierName).Select(s => s).FirstOrDefault();
                    if (supplier == null)
                    {
                        // add supplier
                        supplier = new CatalogSupplier()
                        {
                            ID   = supplierID,
                            Name = updateCatalog.SupplierName
                        };
                        // add supplier
                        suppliers.Add(supplier);
                    }
                    else
                    {
                        supplierID = supplier.ID;
                    }
                    // barcode
                    var newBarcode = new CatalogBarcodes()
                    {
                        SupplierID = supplierID,
                        SKU        = updateCatalog.SKU,
                        Barcode    = updateCatalog.Barcode
                    };
                    barcodes.Add(newBarcode);
                }

                // save back to input files
                FileProcessor.ExportCsv <Catalog>(productFile, products.AsEnumerable());
                FileProcessor.ExportCsv <CatalogSupplier>(supplierFile, suppliers.AsEnumerable());
                FileProcessor.ExportCsv <CatalogBarcodes>(barcodeFile, barcodes.AsEnumerable());
                updatedProducts = products;
            }
            catch (Exception)
            {
                return(updatedProducts);
            }
            return(updatedProducts);
        }
 public List <Catalog> Put([FromBody] UpdateCatalogDto catalog)
 {
     return(AddCommand.UpdateCatalog(catalog));
 }