public Int32 SaveDrugDispenseReturnDetails(Entities.DrugDispenseReturn drugDispenseReturn)
        {
            var drugDispenseReturnId = 0;

            var db = DBConnect.getDBConnection();

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();

                using (DbTransaction dbTransaction = conn.BeginTransaction())
                {
                    try
                    {
                        var drugDispenseDrugReturnId = 0;

                        if (drugDispenseReturn != null)
                        {
                            if (drugDispenseReturn.DrugDispenseReturnId == null || drugDispenseReturn.DrugDispenseReturnId == 0)
                            {
                                drugDispenseReturnId = AddDrugDispenseReturnDetails(drugDispenseReturn, dbTransaction);
                            }
                            else if (drugDispenseReturn.ModifiedBy != null || drugDispenseReturn.ModifiedBy > 0)
                            {
                                drugDispenseReturnId = UpdateDrugDispenseReturnDetails(drugDispenseReturn, dbTransaction);
                            }
                            else if (drugDispenseReturn.IsDeleted == true)
                            {
                                var result = DeleteDrugDispenseReturnDetails(drugDispenseReturn, dbTransaction);

                                if (result)
                                {
                                    drugDispenseReturnId = (int)drugDispenseReturn.DrugDispenseReturnId;
                                }
                                else
                                {
                                    drugDispenseReturnId = -1;
                                }
                            }

                            if (drugDispenseReturnId > 0)
                            {
                                if (drugDispenseReturn.IsDeleted == true)
                                {
                                    DrugDispenseDrugReturn drugReturnDB = new DrugDispenseDrugReturn();

                                    var result = drugReturnDB.DeleteDrugDispenseDrugReturnDetailsByDrugDispenseReturnId((int)drugDispenseReturn.DrugDispenseReturnId, (int)drugDispenseReturn.DeletedBy, drugDispenseReturn.DeletedByIP, dbTransaction);

                                    if (result)
                                    {
                                        drugDispenseDrugReturnId = (int)drugDispenseReturn.DrugDispenseReturnId;
                                    }
                                }

                                if (drugDispenseReturn.DrugDispenseDrugReturns != null)
                                {
                                    if (drugDispenseReturn.DrugDispenseDrugReturns.Count > 0)
                                    {
                                        foreach (Entities.DrugDispenseDrugReturn drugReturn in drugDispenseReturn.DrugDispenseDrugReturns)
                                        {
                                            DrugDispenseDrugReturn drugReturnDB = new DrugDispenseDrugReturn();

                                            drugReturn.DrugDispenseReturnId = drugDispenseReturnId;

                                            drugDispenseDrugReturnId = drugReturnDB.SaveDrugDispenseDrugReturn(drugReturn, dbTransaction);

                                            if (drugDispenseDrugReturnId < 0)
                                            {
                                                drugDispenseReturnId = -1;
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        if (drugDispenseReturnId > 0)
                        {
                            dbTransaction.Commit();
                        }
                        else
                        {
                            dbTransaction.Rollback();
                        }
                    }
                    catch (Exception ex)
                    {
                        drugDispenseReturnId = -1;
                        dbTransaction.Rollback();
                        throw ex;
                    }
                }

                return(drugDispenseReturnId);
            }
        }
        public List <Entities.DrugDispenseDrugReturn> GetDrugDispenseDetailsByPatientId(Int32 patientId)
        {
            var drugDetails = new DrugDispenseDrugReturn();

            return(drugDetails.GetDrugDispenseDetailsByPatientId(patientId));
        }