// GET: Patients/Create
 public ActionResult Create()
 {
     var patient = new Patient();
     patient.Conditions = new List<Condition>();
     PopulateAssignedCondition(patient);
     PopulateDropDownList();
     return View();
 }
 private void UpdateConditions(string[] selectedConditions, Patient patientToUpdate)
 {
     if (selectedConditions == null)
     {
         patientToUpdate.Conditions = new List<Condition>();
         return;
     }
     var selectedHibakHash = new HashSet<string>(selectedConditions); //checkbox diagok
     var autoHibak = new HashSet<int>(patientToUpdate.Conditions.Select(g => g.ID));
     foreach (var hiba in db.Conditions)
     {
         string hibaid = hiba.ID.ToString();
         if (selectedHibakHash.Contains(hibaid))
         {
             if (!autoHibak.Contains(hiba.ID))
             {
                 patientToUpdate.Conditions.Add(hiba);
             }
         }
         else
         {
             if (autoHibak.Contains(hiba.ID))
             {
                 patientToUpdate.Conditions.Remove(hiba);
             }
         }
     }
 }
        private void PopulateAssignedCondition(Patient patient)
        {
            var allCondition = db.Conditions;
            var pConditions = new HashSet<int>(patient.Conditions.Select(d => d.ID));
            var viewModelSelected = new List<PatientConditionsViewModel>();
            var viewModelNotSelected = new List<PatientConditionsViewModel>();
            foreach (var con in allCondition)
            {
                if (pConditions.Contains(con.ID))
                {
                    viewModelSelected.Add(new PatientConditionsViewModel
                    {
                        ConditionID = con.ID,
                        ConditionName = con.ConditionName,
                        Assigned = true
                    });
                }
                else
                {
                    viewModelNotSelected.Add(new PatientConditionsViewModel
                    {
                        ConditionID = con.ID,
                        ConditionName = con.ConditionName,
                        Assigned = true
                    });
                }
            }
            ViewBag.SelectedCon = new MultiSelectList(viewModelSelected, "ConditionID", "ConditionName");
            ViewBag.NotSelectedCon = new MultiSelectList(viewModelNotSelected, "ConditionID", "ConditionName");

        }