public IActionResult AddPrescription(AddPrescriptionRequest request)
        {
            AddPrescriptionResponse response;

            using (var con = new SqlConnection(ConString))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();

                    var tran = con.BeginTransaction();
                    com.Transaction = tran;
                    int idPrescription = 0;

                    try
                    {
                        if (DateTime.Compare(request.Date, request.DueDate) > 0)
                        {
                            tran.Rollback();
                            return(BadRequest("Data waznosci starsza niz data wystawienia"));
                        }

                        com.CommandText = "INSERT INTO Prescription(idPrescription, Date, DueDate, IdPatient, IdDoctor)  OUTPUT INSERTED.idprescription VALUES((select(select max(idEnrollment) from Enrollment) + 1),@Date, @DueDate, @IdPatient, @IdDoctor) ";
                        com.Parameters.AddWithValue("Date", request.Date);
                        com.Parameters.AddWithValue("DueDate", request.DueDate);
                        com.Parameters.AddWithValue("IdDoctor", request.IdDoctor);
                        com.Parameters.AddWithValue("IdPatient", request.IdPatient);
                        var reader = com.ExecuteReader();

                        if (reader.Read())
                        {
                            idPrescription = (int)reader["idprescritpion"];
                        }
                        reader.Close();

                        response = new AddPrescriptionResponse()
                        {
                            Date           = request.Date,
                            DueDate        = request.DueDate,
                            IdDoctor       = request.IdDoctor,
                            IdPatient      = request.IdPatient,
                            IdPrescription = idPrescription
                        };

                        tran.Commit();
                    }
                    catch (SqlException ex)
                    {
                        Console.WriteLine(ex.Message);
                        tran.Rollback();
                        throw new ArgumentException(ex.Message);
                    }

                    return(Ok(response));
                }
        }
Esempio n. 2
0
        public IActionResult AddPrescription(AddPrescriptionRequest request)
        {
            var response = new AddPrescriptionResponse();

            if (_dbService.AddPrescription(request))
            {
                return(Ok("dodano"));
            }

            return(BadRequest());
        }