public static async Task SaveUser(User user, List <Condition> conditions, List <Medication> medications) { var conditionsToDelete = user.UserConditions.Where(o => o.Deleted != null); foreach (var con in conditionsToDelete) { Context.UpdateObject(con); } if (conditions.Count > 0) { foreach (var con in conditions) { var userCondition = user.UserConditions.Where(o => o.ConditionId == con.Id).FirstOrDefault(); if (userCondition == null) { userCondition = new UserCondition { User_Id = user.user_id, ConditionId = con.Id, Created = DateTime.Now, CreatedBy = user.username, Updated = DateTime.Now, UpdatedBy = user.username }; Context.AddObject("UserConditions", userCondition); } else { userCondition.Deleted = null; userCondition.DeletedBy = null; Context.UpdateObject(userCondition); } } } var medsToDelete = user.UserMedications.Where(o => o.Deleted != null); foreach (var med in medsToDelete) { Context.UpdateObject(med); } if (medications.Count > 0) { foreach (var med in medications) { var userMed = user.UserMedications.Where(o => o.MedicationId == med.Id).FirstOrDefault(); if (userMed == null) { userMed = new UserMedication { User_Id = user.user_id, MedicationId = med.Id, Created = DateTime.Now, CreatedBy = user.username, Updated = DateTime.Now, UpdatedBy = user.username }; Context.AddObject("UserMedications", userMed); } else { userMed.Deleted = null; userMed.DeletedBy = null; Context.UpdateObject(userMed); } } } user.Updated = DateTime.Now; user.UpdatedBy = user.username; Context.UpdateObject(user); Context.BeginSaveChanges(null, null); }
public IHttpActionResult Delete(UserMedication medication) { db.DeleteUserMedication(medication.UserMedicationId); return(Ok()); }
public static async Task SaveUser(User user, string conditions, string medications) { //var userConditions = new DataServiceCollection<UserCondition>(Context); if (conditions.Length > 0) { var condArray = conditions.Split(';'); var condList = SuspensionManager.SessionState["UserConditions"] as List <string>; foreach (var con in condArray) { if (con.Trim().Length > 0) { var c = await GetConditionByName(con.Trim()); if (c != null) { var userCondition = new UserCondition { User_Id = user.user_id, ConditionId = c.Id }; if (user.UserConditions.Where(o => o.ConditionId == userCondition.ConditionId).FirstOrDefault() == null) { Context.AddObject("UserConditions", userCondition); } if (!condList.Contains(c.Name)) { condList.Add(c.Name); } } } } SuspensionManager.SessionState["UserConditions"] = condList; var conditionsToRemove = user.UserConditions.Where(o => !condArray.Contains(o.Condition.Name)); foreach (var condition in conditionsToRemove) { user.UserConditions.Remove(condition); } } else { user.UserConditions.Clear(); SuspensionManager.SessionState["UserConditions"] = null; } //var userMeds = new DataServiceCollection<UserMedication>(); if (medications.Length > 0) { var medArray = medications.Split(';'); var medList = SuspensionManager.SessionState["UserMedications"] as List <string>; foreach (var med in medArray) { if (med.Length > 0) { var m = await GetMedicationByName(med); if (m != null) { var userMedication = new UserMedication { User_Id = user.user_id, MedicationId = m.Id }; if (user.UserMedications.Where(o => o.MedicationId == userMedication.MedicationId).FirstOrDefault() == null) { Context.AddObject("UserMedications", userMedication); } if (!medList.Contains(m.Name)) { medList.Add(m.Name); } } } } SuspensionManager.SessionState["UserMedications"] = medList; var medsToRemove = user.UserMedications.Where(o => !medArray.Contains(o.Medication.Name)); foreach (var med in medsToRemove) { user.UserMedications.Remove(med); } } else { user.UserMedications.Clear(); SuspensionManager.SessionState["UserMedications"] = null; } user.Updated = DateTime.Now; user.UpdatedBy = user.username; Context.UpdateObject(user); Context.BeginSaveChanges(null, null); }