/// <summary> /// Obtiene todos los productos con bajo stock y monedas y los envia por email /// </summary> public void SendEmailLowStock() { //bucle que se va a ejecutar siempre para comprobar los items de las máquinas while (true) { //enviará en email cada 12 horas Thread.Sleep(43200000); var mailDataInfo = new HashSet <InfoLowStockSave <StringBuilder, int> >(); //obtengo los productos con stock bajo mailDataInfo.UnionWith(iCheckLowStock.ProductsCheck()); //Obtengo las monedas de las máquinas que están bajas de stock mailDataInfo.UnionWith(iCheckLowStock.CoinsStock()); //Obtendo los diferentes ids que tengo HashSet <int> ids = mailDataInfo.Select(X => X.id).ToHashSet(); HashSet <StringBuilder> stringToSend; foreach (var id in ids) { stringToSend = mailDataInfo.Where(x => x.id == id && x.id != NO_ID).Select(y => y.sb).ToHashSet(); IntegrateSendEmail(id, stringToSend); } } }
/// <summary> /// Obtiene todos las monedas que tengan un stock bajo para el usuario actual /// </summary> /// <param name="iLogged"></param> /// <returns></returns> public IEnumerable <InfoLowStockSave <StringBuilder, int> > ReturnInfoLowStockCoins(ILogged iLogged) { var userLowStockCoins = new HashSet <InfoLowStockSave <StringBuilder, int> >(); //Solo devuelve las monedas con bajo stock que se correspondan con el usuario logueado foreach (var item in checkLowStock.CoinsStock()) { if (item.id == iLogged.GetUserIdLogged()) { userLowStockCoins.Add(item); } } return(userLowStockCoins); }