// PUT: api/formula/5 public HttpResponseMessage Put(string id, [FromBody] PrescriptionObject body) { if (id != "500" && id != "404" && id != "400") { return(Request.CreateResponse(HttpStatusCode.OK, new Error() { message = "更新成功" })); } else if (id == "404") { // log exception here return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "查无此资料") ); } else if (id == "400") { // log exception here return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "资料格式错误") ); } else { // log exception here return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "系统维护中") ); } }
// POST: api/formula public HttpResponseMessage Post([FromBody] PrescriptionObject body) { if (body.doctor_id != "500") { return(Request.CreateResponse(HttpStatusCode.OK, body)); } else { // log exception here return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "系统维护中") ); } }
public static PrescriptionObjectDto Map(this PrescriptionObject prescription) { if (prescription == null) { return(null); } return(new PrescriptionObjectDto { IdPrescription = prescription.Id, IdDoctor = prescription.IdDoctor, IdPatient = prescription.IdPatient, Date = prescription.Date, DateOfExpiration = prescription.DateOfExpiration, Medicines = prescription.Medicines }); }
public async Task AddPrescriptionAsync(PrescriptionObject prescription) { const string getAddedRowIdQueryQuery = @"SELECT CAST(SCOPE_IDENTITY() as int)"; //utworzenie połączenia do bazy danych, klauzula using wykorzystywana jest żebyśmy nie musieli przejmować się zamykaniem polączenia using (var dbConnection = new SqlConnection(Constants.connectionString)) { dbConnection.Open(); using (DbTransaction transaction = dbConnection.BeginTransaction()) { try { const string insertPrescriptionQuery = @"INSERT INTO Prescription (IdDoctor, IdPatient, Date, DateOfExpiration) VALUES (@idDoctor, @idPatient, @date, @dateOfExpiration);"; int prescriptionId = await dbConnection.QueryFirstAsync <int>(insertPrescriptionQuery + ";" + getAddedRowIdQueryQuery, new { idDoctor = prescription.IdDoctor, idPatient = prescription.IdPatient, date = prescription.Date, DateOfExpiration = prescription.DateOfExpiration }, transaction); var medicinesIds = new List <int>(); const string insertMedicinesQuery = @"INSERT INTO Medicine (Name, DailyDose) VALUES (@name,@dailyDose);"; foreach (var medicine in prescription.Medicines) { medicinesIds.Add(await dbConnection.QueryFirstAsync <int>(insertMedicinesQuery + ";" + getAddedRowIdQueryQuery, new { name = medicine.Name, dailyDose = medicine.DailyDose }, transaction)); } const string insertMedicinePrescriptionQuery = @"INSERT INTO MedicinePrescription (MedicineId, PrescriptionId) VALUES (@medicineId,@prescriptionId);"; foreach (var medicineId in medicinesIds) { await dbConnection.QueryAsync(insertMedicinePrescriptionQuery, new { medicineId = medicineId, prescriptionId = prescriptionId }, transaction); } //commit transakcji transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw; } } } }