/// <summary> /// Recibe como parametro un ETipoInsumo que representa cada uno de los tipos de insumos posibles y devuelve la cantidad de insumos de este tipo /// existentes /// </summary> /// <param name="listaInsumos"></param> /// <param name="tipoInsumo"></param> /// <returns></returns> public static int CountInsumoType(List <Insumo> listaInsumos, ETipoInsumo tipoInsumo) { int output = 0; foreach (Insumo insumo in listaInsumos) { switch (tipoInsumo) { case ETipoInsumo.Madera: if (insumo is Madera) { output++; } break; case ETipoInsumo.Tela: if (insumo is Tela) { output++; } break; default: if (insumo is InsumoAccesorio) { InsumoAccesorio insumoAccesorio = (InsumoAccesorio)insumo; if (tipoInsumo == ETipoInsumo.Barniz && insumoAccesorio.TipoAccesorio == ETipoAccesorio.Barniz) { output += insumoAccesorio.Cantidad; } else if (tipoInsumo == ETipoInsumo.Pegamento && insumoAccesorio.TipoAccesorio == ETipoAccesorio.Pegamento) { output += insumoAccesorio.Cantidad; } else if (tipoInsumo == ETipoInsumo.Tornillo && insumoAccesorio.TipoAccesorio == ETipoAccesorio.Tornillo) { output += insumoAccesorio.Cantidad; } else if (tipoInsumo == ETipoInsumo.Yute && insumoAccesorio.TipoAccesorio == ETipoAccesorio.Yute) { output += insumoAccesorio.Cantidad; } } break; } } return(output); }
/// <summary> /// Obtiene todos los insumos del repositorio filtrando por el tipo de Insumo /// </summary> /// <param name="tipoInsumo"></param> /// <returns></returns> public List <Insumo> GetAll(ETipoInsumo tipoInsumo) { List <Insumo> listadoInsumo = new List <Insumo>(); try { switch (tipoInsumo) { case ETipoInsumo.Madera: listadoInsumo = Insumo.ToListInsumo(maderaRepo.GetAll()); break; case ETipoInsumo.Tela: listadoInsumo = Insumo.ToListInsumo(telasRepo.GetAll()); break; case ETipoInsumo.Pegamento: listadoInsumo.Add(((RepositoryInsumoAccesorioSQL)accesorioRepo).GetByTipoAccesorio(ETipoAccesorio.Pegamento)); break; case ETipoInsumo.Barniz: listadoInsumo.Add(((RepositoryInsumoAccesorioSQL)accesorioRepo).GetByTipoAccesorio(ETipoAccesorio.Barniz)); break; case ETipoInsumo.Tornillo: listadoInsumo.Add(((RepositoryInsumoAccesorioSQL)accesorioRepo).GetByTipoAccesorio(ETipoAccesorio.Tornillo)); break; case ETipoInsumo.Yute: listadoInsumo.Add(((RepositoryInsumoAccesorioSQL)accesorioRepo).GetByTipoAccesorio(ETipoAccesorio.Tornillo)); break; } } catch (Exception e) { throw new SQLEntityException("Error al recuperar el listado completo de Insumos"); } return(listadoInsumo); }
/// <summary> /// Devuelve al cantidad de productos que poseen el mismo tipo /// </summary> /// <param name="tipoInsumo"></param> /// <returns></returns> public int GetCountByTipoInsumo(ETipoInsumo tipoInsumo) { int output = 0; try { switch (tipoInsumo) { case ETipoInsumo.Madera: output = ((RepositoryMaderaSQL)maderaRepo).Count(); break; case ETipoInsumo.Tela: output = ((RepositoryTelaSQL)telasRepo).Count(); break; case ETipoInsumo.Barniz: output = ((RepositoryInsumoAccesorioSQL)accesorioRepo).SumTipoInsumoAccesorio(ETipoAccesorio.Barniz); break; case ETipoInsumo.Pegamento: output = ((RepositoryInsumoAccesorioSQL)accesorioRepo).SumTipoInsumoAccesorio(ETipoAccesorio.Pegamento); break; case ETipoInsumo.Tornillo: output = ((RepositoryInsumoAccesorioSQL)accesorioRepo).SumTipoInsumoAccesorio(ETipoAccesorio.Tornillo); break; case ETipoInsumo.Yute: output = ((RepositoryInsumoAccesorioSQL)accesorioRepo).SumTipoInsumoAccesorio(ETipoAccesorio.Yute); break; } } catch (Exception e) { throw new SQLEntityException($"Error al obtener el conteo de insumos"); } return(output); }