private Clinic MapClinicFromRM(ClinicRM clinic) { return(new Clinic() { name = clinic.Name, RUC = clinic.RUC, address = clinic.Address, latitude = clinic.Latitude, longitude = clinic.Longitude, phone = clinic.Phone }); }
public IHttpActionResult PostClinicProfile([FromBody] ClinicRM clinic) { if (!ModelState.IsValid || clinic == null) { return(BadRequest()); } context.Connection.Open(); using (context.Transaction = context.Connection.BeginTransaction()) { try { // Check if user exists var user = context.Users.First(u => u.idUser == clinic.UserId); if (user == null) { context.Transaction.Rollback(); return(NotFound()); } // Insert new clinic Clinic newClinic = MapClinicFromRM(clinic); context.Clinics.InsertOnSubmit(newClinic); context.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict); // Update user table to reference the new clinic user.Clinic = newClinic; context.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict); // If everything is OK, commit context.Transaction.Commit(); return(Ok(newClinic)); } catch (Exception e) { // Rollback if something goes wrong context.Transaction.Rollback(); return(InternalServerError(e)); } } }