/// <summary> /// Handle the updating of terminology for an existing condition /// </summary> /// <param name="conditionForUpdate">The payload containing the list of lab tests</param> /// <param name="conditionFromRepo">The condition entity that is being updated</param> /// <returns></returns> private void AddOrUpdateConditionMeddras(ConditionForUpdateDto conditionForUpdate, Condition conditionFromRepo) { // Determine what has been removed ArrayList deleteCollection = new ArrayList(); foreach (var conditionMeddra in conditionFromRepo.ConditionMedDras) { if (!conditionForUpdate.ConditionMedDras.Contains(conditionMeddra.TerminologyMedDra.Id)) { deleteCollection.Add(conditionMeddra); } } // Process deletes foreach (var conditionMeddra in deleteCollection) { _conditionMeddraRepository.Delete(conditionMeddra); } // Determine what needs to be added foreach (var meddraId in conditionForUpdate.ConditionMedDras) { if (!conditionFromRepo.ConditionMedDras.Any(c => c.TerminologyMedDra.Id == meddraId)) { var newConditionMedra = new ConditionMedDra() { Condition = conditionFromRepo, TerminologyMedDra = _terminologyMeddraRepository.Get(f => f.Id == meddraId) }; _conditionMeddraRepository.Save(newConditionMedra); } } }
protected void btnAddMedDra_Click(object sender, EventArgs e) { string err = "<ul>"; if (lstTermResult.SelectedIndex == -1) { SetActive("tab4"); return; } ; // Save element var terminologyId = Convert.ToInt32(lstTermResult.SelectedItem.Value); var terminology = GetTerminology(terminologyId); if (terminology.ConditionMedDras.Count > 0) { SetActive("tab4"); err += "<li>Terminology already added to a condition...</li>"; } if (err != "<ul>") { err += "</ul>"; divMError.Visible = true; spnMError.InnerHtml = err; return; } var conmed = new ConditionMedDra { Condition = _condition, TerminologyMedDra = terminology }; UnitOfWork.Repository <ConditionMedDra>().Save(conmed); UnitOfWork.Complete(); RenderGrids(); SetActive("tab4"); }