protected void btnAddMedication_Click(object sender, EventArgs e) { if (ddlMedication.Items.Count == 0) { SetActive("tab3"); return; } ; if (ddlMedication.SelectedValue == "0") { SetActive("tab3"); return; } ; // Save element var medication = GetMedication(Convert.ToInt32(ddlMedication.SelectedValue)); var conmed = new ConditionMedication { Condition = _condition, Medication = medication }; UnitOfWork.Repository <ConditionMedication>().Save(conmed); UnitOfWork.Complete(); RenderGrids(); SetActive("tab3"); }
/// <summary> /// Handle the updating of medications 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 AddOrUpdateConditionMedications(ConditionForUpdateDto conditionForUpdate, Condition conditionFromRepo) { // Determine what has been removed ArrayList deleteCollection = new ArrayList(); foreach (var conditionMedication in conditionFromRepo.ConditionMedications) { if (!conditionForUpdate.ConditionMedications.Contains(conditionMedication.Product.Id)) { deleteCollection.Add(conditionMedication); } } // Process deletes foreach (var conditionMedication in deleteCollection) { _conditionMedicationRepository.Delete(conditionMedication); } // Determine what needs to be added foreach (var productId in conditionForUpdate.ConditionMedications) { if (!conditionFromRepo.ConditionMedications.Any(c => c.Product.Id == productId)) { var product = _productRepository.Get(f => f.Id == productId); var newConditionMedication = new ConditionMedication() { Condition = conditionFromRepo, Product = product, Concept = product.Concept }; _conditionMedicationRepository.Save(newConditionMedication); } } }