コード例 #1
0
        // 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, "系统维护中")
                       );
            }
        }
コード例 #2
0
        // 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, "系统维护中")
                       );
            }
        }
コード例 #3
0
        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
            });
        }
コード例 #4
0
        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;
                    }
                }
            }
        }