/// <summary> /// Скопировать все карты обследования для указанных id госпитализации и консультации /// </summary> /// <param name="hospitalizationId">id госпитализации</param> /// <param name="visitId">id консультации</param> /// <param name="newHospitalizationId">id новой госпитализации</param> /// <param name="newVisitId">id новой консультации</param> public void CopyByHospitalizationAndVisitId( int hospitalizationId, int visitId, int newHospitalizationId, int newVisitId) { int cardListCnt = _cardList.Count; for (int i = 0; i < cardListCnt; i++) { if (_cardList[i].HospitalizationId == hospitalizationId && _cardList[i].VisitId == visitId) { var newCard = new CCard(_cardList[i]); string oldFilePath = GetPicturePath(newCard.GetPictureFileName()); newCard.HospitalizationId = newHospitalizationId; newCard.VisitId = newVisitId; _cardList.Add(newCard); string newFilePath = GetPicturePath(newCard.GetPictureFileName()); if (File.Exists(oldFilePath)) { File.Copy(oldFilePath, newFilePath); } else { PutDefaultPictureFile(newCard.CurrentCardType, newFilePath); } } } Save(null); }
/// <summary> /// Загрузить список карт обследования /// </summary> private void Load() { _cardList = new List <CCard>(); string allDataStr = CDatabaseEngine.UnpackText(_cardPath); // Получаем набор объектов string[] objectsStr = allDataStr.Split(new[] { ObjSplitStr }, StringSplitOptions.RemoveEmptyEntries); var errorStr = new StringBuilder(); try { // Проходим по всем объектам foreach (string objectStr in objectsStr) { // Для каждого объекта получаем список значений string[] datasStr = objectStr.Split(new[] { DataSplitStr }, StringSplitOptions.RemoveEmptyEntries); var cardInfo = new CCard(); foreach (string dataStr in datasStr) { string[] keyValue = dataStr.Split(new[] { '=' }, 2); switch (keyValue[0]) { case "HospitalizationId": cardInfo.HospitalizationId = Convert.ToInt32(keyValue[1]); break; case "VisitId": cardInfo.VisitId = Convert.ToInt32(keyValue[1]); break; case "CardSide": cardInfo.CurrentSideOfCard = CConvertEngine.StringToCardSide(keyValue[1]); break; case "CurrentCardType": cardInfo.CurrentCardType = CConvertEngine.StringToCardType(keyValue[1]); break; } } string picturePath = GetPicturePath(cardInfo.GetPictureFileName()); if (!File.Exists(picturePath)) { PutDefaultPictureFile(cardInfo.CurrentCardType, picturePath); } cardInfo.Picture = CDatabaseEngine.GetBitmapFromFile(picturePath); _cardList.Add(cardInfo); } } catch (Exception ex) { errorStr.Append(ex.Message + "\r\n"); } if (errorStr.Length != 0) { MessageBox.ShowDialog(errorStr.ToString()); } }