public bool IsHaveDbWithQrParametrs(QrCodeData qrCode) { bool produkt_param = false; bool serial_param = false; foreach (DataBase db in m_DataBasesCollection) { foreach (QrItem qr in qrCode.ListQrItems) { if (qr.Type == db.TypeOfDataSerial) { serial_param = true; } if (qr.Type == db.TypeDbProdukt.Type && qr.Value == db.TypeDbProdukt.Key) { produkt_param = true; } } } if (produkt_param && serial_param) { return(true); } else { return(false); } }
//можно ли добавить данный qr-код в базы с этими индексами private bool is_can_to_Add(int[] db_indexes, QrCodeData qrCode) { if (db_indexes.Length > 0) { int sucsess_counter = 0; for (int i = 0; i < db_indexes.Length; i++) { foreach (QrItem qr in qrCode.ListQrItems) { if (qr.Type == m_DataBasesCollection[db_indexes[i]].TypeOfDataSerial) { if (!m_DataBasesCollection[db_indexes[i]].IsItemContain(qr)) { sucsess_counter++; } if (m_DataBasesCollection[db_indexes[i]].IsItemContain(qr) && qr.NoIncrimented) { sucsess_counter++; } } } } if (sucsess_counter == db_indexes.Length) { return(true); } else { return(false); } } return(false); }
//возвращает индексы баз данных в которые необходимо добавить qr-код private int[] DbIndexesForQrDataSave(QrCodeData qrCode) { List <int> indexes = new List <int>(); for (int i = 0; i < m_DataBasesCollection.Count; i++) { bool produkt_param = false; bool serial_param = false; foreach (QrItem qr in qrCode.ListQrItems) { if (qr.Type == m_DataBasesCollection[i].TypeOfDataSerial) { serial_param = true; } if (qr.Type == m_DataBasesCollection[i].TypeDbProdukt.Type && qr.Value == m_DataBasesCollection[i].TypeDbProdukt.Key) { produkt_param = true; } } if (produkt_param && serial_param) { indexes.Add(i); } } return(indexes.ToArray()); }
public void AddQrInPacket(QrCodeData qr) { if (m_ListInPackets == null) { m_ListInPackets = new List <QrCodeData>(); m_ListInPackets.Add(qr); } else { m_ListInPackets.Add(qr); } }
/// <summary> /// возвращает последнее занесенное значение из базы соответствующей параметрам qr кода /// </summary> /// <param name="qrCode"></param> /// <param name="qritem"></param> /// <returns></returns> public string GetLastValueFromDb(QrCodeData qrCode, QrItem qritem) { for (int i = 0; i < m_DataBasesCollection.Count; i++) { foreach (QrItem qr in qrCode.ListQrItems) { if (qr.Type == m_DataBasesCollection[i].TypeDbProdukt.Type && qr.Value == m_DataBasesCollection[i].TypeDbProdukt.Key && qritem.Type == m_DataBasesCollection[i].TypeOfDataSerial) { if (m_DataBasesCollection[i].DataBaseItems.Count > 0) { return(m_DataBasesCollection[i].DataBaseItems[m_DataBasesCollection[i].DataBaseItems.Count - 1].QrItem.Value); } } } } return(null); }
/// <summary> /// Копирует объект в аргументе /// </summary> /// <param name="qr"></param> public QrCodeData(QrCodeData qr) { QrItem[] arr = new QrItem[qr.m_ListQrItems.Count]; qr.ListQrItems.CopyTo(arr); m_ListQrItems = new List <QrItem>(); m_ListQrItems.AddRange(arr); if (qr.ListInPackets != null) { if (qr.ListInPackets.Count > 0) { QrCodeData[] arr_qr = new QrCodeData[qr.ListInPackets.Count]; qr.ListInPackets.CopyTo(arr_qr); m_ListInPackets = new List <QrCodeData>(); m_ListInPackets.AddRange(arr_qr); } } }
/// <summary> /// добавляет qr итем в базу /// </summary> /// <param name="qr"></param> /// <param name="qrData"></param> /// <returns></returns> public bool AddItemInBase(QrItem qr, QrCodeData qrData) { if (qr.Type != m_TypeOfDataSerial) { return(false); } else { foreach (DataBaseItem dbi in m_DataBaseItems) { if (dbi.QrItem.Value == qr.Value) { return(false); } } m_DataBaseItems.Add(new DataBaseItem(qr, qrData.GenerateQrCode(false))); return(true); } }
public bool AddQrCodeToDataBases(QrCodeData qrCode) { int[] db_indexes = DbIndexesForQrDataSave(qrCode); if (is_can_to_Add(db_indexes, qrCode)) { for (int i = 0; i < db_indexes.Length; i++) { foreach (QrItem qr in qrCode.ListQrItems) { if (qr.Type == m_DataBasesCollection[db_indexes[i]].TypeOfDataSerial) { m_DataBasesCollection[db_indexes[i]].AddItemInBase(qr, qrCode); } } } return(true); } return(false); }