From 917792c4a4117c139d59c740183c3e9bc38f8ba3 Mon Sep 17 00:00:00 2001 From: linuxct Date: Tue, 14 Jul 2020 12:33:59 +0200 Subject: [PATCH] Fix categories not being properly detected --- .../Context/ApplicationContextHelper.cs | 106 ---------------- .../Profiles/OriginToDestinationProfile.cs | 118 ++++++++++++++++-- OD.WebApplication/Startup.cs | 5 - 3 files changed, 109 insertions(+), 120 deletions(-) delete mode 100644 OD.WebApplication/Context/ApplicationContextHelper.cs diff --git a/OD.WebApplication/Context/ApplicationContextHelper.cs b/OD.WebApplication/Context/ApplicationContextHelper.cs deleted file mode 100644 index 1ff4dff..0000000 --- a/OD.WebApplication/Context/ApplicationContextHelper.cs +++ /dev/null @@ -1,106 +0,0 @@ -namespace OD.WebApplication.Context -{ - public static class ApplicationContextHelper - { - public static string[] BusinessApplicationCategories = - { - "Metrónomos, afinadores, atriles, accesorios y complementos en general", - "Contrabajo y arcos", - "Cuerdas de violín, viola, violonchelo y contrabajo", - "Pastillas, afinadores, puentes, cordales, soportes y accesorios de cuerda", - "Viola y arcos de viola", - "Violín y arcos de violín", - "Violonchelo y arcos", - "Amplificadores, cabezales y bafles de guitarra y bajo", - "Bajos eléctricos y acústicos", - "Bandurrias", - "Cuerdas de instrumentos de cuerda punteada", - "Estuches, fundas y soportes para instrumentos de cuerda punteada", - "Guitarras acústicas amplificadas", - "Guitarras acústicas no amplificadas", - "Guitarras eléctricas", - "Guitarras españolas amplificadas", - "Guitarras españolas no amplificadas", - "Laúdes", - "Procesadores de guitarra, pedales, pedaleras, pastillas, mocrófonos de guitara y afinadores", - "Púas, puentes, cejuelas, tornillos, cordales, clavijas y accesorios en general de guitarra e instrumentos de cuerda p", - "Timples, ukeleles y otros instrumentos de cuerda punteada", - "Lámaras, focos, procesadores y mesas iluminación", - "Líquido y máquinas de humo", - "Software secuenciador, editor, procesador y grabador de sonido y sus complementos, aso como programas en general", - "Torres, bolas y complementos de iluminación", - "Armónicas, acordeones e instrumentos de lengüeta y sus complementos", - "Baterías acústicas y digitales", - "Cajones rumberos, claves, sonajas y otros instrumentos no incluidos en otra familia", - "Marimbas, xilófonos, metalófonos e instrumentos con escala afinada", - "Platos", - "Soportes, racks, fundas, banquetas, parches, membranas, baquetas y accesorios de percusión en general", - "Timbales, bombos, tambores, cajas panderetas y otros instrumentos de membrana", - "Estuches, fundas, banquetas y accesorios de piano", - "Pianos de Cola Nuevos con o sin módulo", - "Pianos de Cola Usados", - "Pianos Digitales con ritmos", - "Pianos Digitales sin ritmos", - "Pianos Verticales Nuevos con o sin módulo", - "Pianos Verticales Usados con o sin módulo", - "Libretas, block y papel pautado", - "Libros y partituras de canto", - "Libros y partituras de clarinete", - "Libros y partituras de contrabajo", - "Libros y partituras de fagot", - "Libros y partituras de flauta, dulzaina y gaita", - "Libros y partituras de guitarra y cuerda punteada", - "Libros y partituras de música de cámara", - "Libros y partituras de oboe", - "Libros y partituras de orquesta", - "Libros y partituras de percusión", - "Libros y partituras de piano", - "Libros y partituras de saxo", - "Libros y partituras de solfeo, armonía, Historia de la Música y textos en general", - "Libros y partituras de teclado y acordeón", - "Libros y partituras de trombón, tuba y bombardino", - "Libros y partituras de trompa", - "Libros y partituras de trompeta", - "Libros y partituras de viola", - "Libros y partituras de violín", - "Libros y partituras de violonchelo", - "Alquiler de piano, teclados y otros aparatos", - "Servicios de afinación, reparación y transporte de pianos", - "Servicios de reparación de bafles, etapas y sistemas de amplificación y procesado de sonido", - "Servicios de reparación de teclados e instrumentos digitales", - "Servicios de reparación y ajuste de guitarras", - "Servicios de reparación y ajuste de instrumentos de cuerda", - "Servicios de reparación y ajuste de instrumentos de viento", - "Bafles, altavoces y monitores normales o inalámbricos", - "Cables y conectores", - "Etapas de potencia", - "Grabadores de sonido y sus soportes", - "Mesas de mezcla, cabezales, equipos integrados, amplificadores (combos) multiuso y mezcladores", - "Micrófonos normales e inalámbricos", - "Procesadores de efectos, pachbay, puertas de ruido, divisores, ecualizadores y otros sistemas de procesado de sonido", - "Soportes de micro, columna y torres, racks, auriculares y accesorios en general de amplificación", - "Accesorios de informática en general", - "CD y DVD", - "Librerías de sonidos y midifiles", - "OTRO", - "Tarjetas de sonido e interfaces de ordenador con o sin software", - "Alimentadores, fundas, estuches, pedales, soportes y accesorios de teclado y módulos", - "Cajas de ritmos y módulos de DJ", - "Módulos arregladores con ritmos y secuenciadores", - "Módulos de sonido, sintetizadores y samplers", - "Módulos digitales de percusión", - "Órganos y teclados litúrgicos", - "Teclados con ritmos", - "Teclados Sintetizadores, Workstation y samplers", - "Teclados y mesas controladores", - "Cañas, boquillas, abrazaderas, estuches, fundas, soportes, atriles, accesorios y complementos de viento", - "Clarinete", - "Flauta travesera y de pico", - "Oboe, fliscorno, bombardino, fagot, helicón, tuba y otros instrumentos de viento", - "Saxo", - "Trombón", - "Trompa", - "Trompetas y cornetas" - }; - } -} \ No newline at end of file diff --git a/OD.WebApplication/Profiles/OriginToDestinationProfile.cs b/OD.WebApplication/Profiles/OriginToDestinationProfile.cs index dbba64e..7e0b526 100644 --- a/OD.WebApplication/Profiles/OriginToDestinationProfile.cs +++ b/OD.WebApplication/Profiles/OriginToDestinationProfile.cs @@ -1,14 +1,114 @@ +using System.Collections.Generic; using System.Linq; using AutoMapper; -using AutoMapper.Internal; -using Microsoft.AspNetCore.Builder; -using OD.WebApplication.Context; using OD.WebApplication.Models; namespace OD.WebApplication.Profiles { public class OriginToDestinationProfile : Profile { + private readonly List BusinessApplicationCategories = new List + { + "Metrónomos, afinadores, atriles, accesorios y complementos en general", + "Contrabajo y arcos", + "Cuerdas de violín, viola, violonchelo y contrabajo", + "Pastillas, afinadores, puentes, cordales, soportes y accesorios de cuerda", + "Viola y arcos de viola", + "Violín y arcos de violín", + "Violonchelo y arcos", + "Amplificadores, cabezales y bafles de guitarra y bajo", + "Bajos eléctricos y acústicos", + "Bandurrias", + "Cuerdas de instrumentos de cuerda punteada", + "Estuches, fundas y soportes para instrumentos de cuerda punteada", + "Guitarras acústicas amplificadas", + "Guitarras acústicas no amplificadas", + "Guitarras eléctricas", + "Guitarras españolas amplificadas", + "Guitarras españolas no amplificadas", + "Laúdes", + "Procesadores de guitarra, pedales, pedaleras, pastillas, mocrófonos de guitara y afinadores", + "Púas, puentes, cejuelas, tornillos, cordales, clavijas y accesorios en general de guitarra e instrumentos de cuerda p", + "Timples, ukeleles y otros instrumentos de cuerda punteada", + "Lámaras, focos, procesadores y mesas iluminación", + "Líquido y máquinas de humo", + "Software secuenciador, editor, procesador y grabador de sonido y sus complementos, aso como programas en general", + "Torres, bolas y complementos de iluminación", + "Armónicas, acordeones e instrumentos de lengüeta y sus complementos", + "Baterías acústicas y digitales", + "Cajones rumberos, claves, sonajas y otros instrumentos no incluidos en otra familia", + "Marimbas, xilófonos, metalófonos e instrumentos con escala afinada", + "Platos", + "Soportes, racks, fundas, banquetas, parches, membranas, baquetas y accesorios de percusión en general", + "Timbales, bombos, tambores, cajas panderetas y otros instrumentos de membrana", + "Estuches, fundas, banquetas y accesorios de piano", + "Pianos de Cola Nuevos con o sin módulo", + "Pianos de Cola Usados", + "Pianos Digitales con ritmos", + "Pianos Digitales sin ritmos", + "Pianos Verticales Nuevos con o sin módulo", + "Pianos Verticales Usados con o sin módulo", + "Libretas, block y papel pautado", + "Libros y partituras de canto", + "Libros y partituras de clarinete", + "Libros y partituras de contrabajo", + "Libros y partituras de fagot", + "Libros y partituras de flauta, dulzaina y gaita", + "Libros y partituras de guitarra y cuerda punteada", + "Libros y partituras de música de cámara", + "Libros y partituras de oboe", + "Libros y partituras de orquesta", + "Libros y partituras de percusión", + "Libros y partituras de piano", + "Libros y partituras de saxo", + "Libros y partituras de solfeo, armonía, Historia de la Música y textos en general", + "Libros y partituras de teclado y acordeón", + "Libros y partituras de trombón, tuba y bombardino", + "Libros y partituras de trompa", + "Libros y partituras de trompeta", + "Libros y partituras de viola", + "Libros y partituras de violín", + "Libros y partituras de violonchelo", + "Alquiler de piano, teclados y otros aparatos", + "Servicios de afinación, reparación y transporte de pianos", + "Servicios de reparación de bafles, etapas y sistemas de amplificación y procesado de sonido", + "Servicios de reparación de teclados e instrumentos digitales", + "Servicios de reparación y ajuste de guitarras", + "Servicios de reparación y ajuste de instrumentos de cuerda", + "Servicios de reparación y ajuste de instrumentos de viento", + "Bafles, altavoces y monitores normales o inalámbricos", + "Cables y conectores", + "Etapas de potencia", + "Grabadores de sonido y sus soportes", + "Mesas de mezcla, cabezales, equipos integrados, amplificadores (combos) multiuso y mezcladores", + "Micrófonos normales e inalámbricos", + "Procesadores de efectos, pachbay, puertas de ruido, divisores, ecualizadores y otros sistemas de procesado de sonido", + "Soportes de micro, columna y torres, racks, auriculares y accesorios en general de amplificación", + "Accesorios de informática en general", + "CD y DVD", + "Librerías de sonidos y midifiles", + "OTRO", + "Tarjetas de sonido e interfaces de ordenador con o sin software", + "Alimentadores, fundas, estuches, pedales, soportes y accesorios de teclado y módulos", + "Cajas de ritmos y módulos de DJ", + "Módulos arregladores con ritmos y secuenciadores", + "Módulos de sonido, sintetizadores y samplers", + "Módulos digitales de percusión", + "Órganos y teclados litúrgicos", + "Teclados con ritmos", + "Teclados Sintetizadores, Workstation y samplers", + "Teclados y mesas controladores", + "Cañas, boquillas, abrazaderas, estuches, fundas, soportes, atriles, accesorios y complementos de viento", + "Clarinete", + "Flauta travesera y de pico", + "Oboe, fliscorno, bombardino, fagot, helicón, tuba y otros instrumentos de viento", + "Saxo", + "Trombón", + "Trompa", + "Trompetas y cornetas" + }; + + public OriginToDestinationProfile() { CreateMap() @@ -21,17 +121,17 @@ namespace OD.WebApplication.Profiles .ForMember(dest => dest.OnlineValueWihtVAT, opt => opt.MapFrom(src => ResolveAddVAT(src.PriceRecommendedWithoutVAT))); } - private static string ResolveCategory(OriginDataModel src) + private string ResolveCategory(OriginDataModel src) { var categories = src.Categories.Split(',').ToList(); - categories = categories.Select(del => del.Trim()).ToList(); + categories = categories.Select(del => del.Trim()).Reverse().ToList(); foreach (var category in categories) { - if (ApplicationContextHelper.BusinessApplicationCategories.Any(x => - x.Contains(category) || category.Contains(x))) + if (BusinessApplicationCategories.Any(x => + x.ToLower().Contains(category.ToLower()) || category.ToLower().Contains(x.ToLower()))) { - return ApplicationContextHelper.BusinessApplicationCategories.First(x => - x.Contains(category) || category.Contains(x)); + return BusinessApplicationCategories.First(x => + x.ToLower().Contains(category.ToLower()) || category.ToLower().Contains(x.ToLower())); } } diff --git a/OD.WebApplication/Startup.cs b/OD.WebApplication/Startup.cs index 7824ce1..94af75a 100644 --- a/OD.WebApplication/Startup.cs +++ b/OD.WebApplication/Startup.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; @@ -9,8 +6,6 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using AutoMapper; -using OD.WebApplication.Context; -using OD.WebApplication.Profiles; namespace OD.WebApplication {