public List <Entities.DrugLinkWithDrugRoutes> GetDrugLinkByDrugId(Int32?drugId = null)
        {
            var drugsLink = new List <Entities.DrugLinkWithDrugRoutes>();

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.GetDrugLinkByDrugId))
                {
                    database.AddInParameter(dbCommand, "@drug_id", DbType.Int32, drugId);

                    using (IDataReader reader = database.ExecuteReader(dbCommand))
                    {
                        while (reader.Read())
                        {
                            var drugLink = new Entities.DrugLinkWithDrugRoutes
                            {
                                DrugRouteLinkId = DRE.GetNullableInt32(reader, "drug_route_link_id", null),
                                DrugId          = DRE.GetNullableInt32(reader, "drug_id", 0),
                                DrugRouteId     = DRE.GetNullableInt32(reader, "drug_route_id", null),
                                RouteName       = DRE.GetNullableString(reader, "route_name", null)
                            };

                            drugsLink.Add(drugLink);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(drugsLink);
        }
        private Int32 AddDrugLinkWithDrugRoute(Entities.DrugLinkWithDrugRoutes drugLinkWithDrugRoute, DbTransaction dbTransaction)
        {
            var drugRouteLinkId = 0;

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.InsertDrugLinkWithDrugRoute))
                {
                    database.AddInParameter(dbCommand, "@drug_route_link_id", DbType.Int32, drugLinkWithDrugRoute.DrugRouteLinkId);
                    database.AddInParameter(dbCommand, "@drug_id", DbType.Int32, drugLinkWithDrugRoute.DrugId);
                    database.AddInParameter(dbCommand, "@drug_route_id", DbType.Int32, drugLinkWithDrugRoute.DrugRouteId);
                    database.AddInParameter(dbCommand, "@created_by", DbType.Int32, drugLinkWithDrugRoute.CreatedBy);
                    database.AddInParameter(dbCommand, "@created_by_ip", DbType.String, drugLinkWithDrugRoute.CreatedByIP);

                    database.AddOutParameter(dbCommand, "@return_value", DbType.Int32, 0);

                    drugRouteLinkId = database.ExecuteNonQuery(dbCommand, dbTransaction);

                    if (database.GetParameterValue(dbCommand, "@return_value") != DBNull.Value)
                    {
                        drugRouteLinkId = Convert.ToInt32(database.GetParameterValue(dbCommand, "@return_value"));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(drugRouteLinkId);
        }
        private bool DeleteDrugLinkWithDrugRoute(Entities.DrugLinkWithDrugRoutes drugLinkWithDrugRoute, DbTransaction dbTransaction)
        {
            var IsDeleted = true;

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(DBStoredProcedure.DeleteDrugLinkWithDrugRoute))
                {
                    database.AddInParameter(dbCommand, "@drug_route_link_id", DbType.Int32, drugLinkWithDrugRoute.DrugRouteLinkId);
                    database.AddInParameter(dbCommand, "@deleted_by", DbType.Int32, drugLinkWithDrugRoute.DeletedBy);
                    database.AddInParameter(dbCommand, "@deleted_by_ip", DbType.String, drugLinkWithDrugRoute.DeletedByIP);

                    database.AddOutParameter(dbCommand, "@return_value", DbType.Int32, 0);

                    var result = database.ExecuteNonQuery(dbCommand, dbTransaction);

                    if (database.GetParameterValue(dbCommand, "@return_value") != DBNull.Value)
                    {
                        IsDeleted = Convert.ToBoolean(database.GetParameterValue(dbCommand, "@return_value"));
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(IsDeleted);
        }
        public Int32 SaveDrugLinkWithDrugRoute(Entities.DrugLinkWithDrugRoutes drugLinkWithDrugRoute, DbTransaction dbTransaction)
        {
            var drugRouteLinkId = 0;

            if (drugLinkWithDrugRoute.DrugRouteLinkId == null || drugLinkWithDrugRoute.DrugRouteLinkId == 0)
            {
                drugRouteLinkId = AddDrugLinkWithDrugRoute(drugLinkWithDrugRoute, dbTransaction);
            }
            else if (drugLinkWithDrugRoute.IsDeleted == true)
            {
                var result = DeleteDrugLinkWithDrugRoute(drugLinkWithDrugRoute, dbTransaction);

                if (result == true)
                {
                    drugRouteLinkId = (int)drugLinkWithDrugRoute.DrugRouteLinkId;
                }
            }
            else if (drugLinkWithDrugRoute.ModifiedBy > 0)
            {
                drugRouteLinkId = UpdateDrugLinkWithDrugRoute(drugLinkWithDrugRoute, dbTransaction);
            }

            return(drugRouteLinkId);
        }