public HttpResponseMessage Electricity(HttpRequestMessage req, DL_Electricity electricity)
        {
            if (electricity != null && !string.IsNullOrEmpty(electricity.UserId) && !string.IsNullOrEmpty(electricity.Key) &&
                !string.IsNullOrEmpty(electricity.CusAcc) && electricity.Amount > 0 &&
                !string.IsNullOrEmpty(electricity.DueDate) && electricity.ServiceId > 0 && !string.IsNullOrEmpty(electricity.CusMob))
            {
                try
                {
                    User user = new User()
                    {
                        Password = electricity.Key, UserId = electricity.UserId
                    };
                    //validate user
                    Validation.UserCheck(user);
                    if (Validation._IsSuccess)
                    {
                        DL_ElectricityReturn electricityReturn = dash.PayElectrictyBills(electricity);
                        if (dash._IsSuccess)
                        {
                            return(req.CreateResponse <DL_ElectricityReturn>(HttpStatusCode.OK, electricityReturn));
                        }
                        else
                        {
                            return(req.CreateErrorResponse(HttpStatusCode.InternalServerError, "ServerError"));
                        }
                    }
                    Logger.WriteLog(LogLevelL4N.FATAL, "Unauthorized Request");
                    return(req.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized"));
                }
                catch (Exception ex)
                {
                    Logger.WriteLog(LogLevelL4N.ERROR, "Inside the TransferFund api | Error : " + ex.Message);
                    Logger.WriteLog(LogLevelL4N.FATAL, "Bad Request");
                    return(req.CreateResponse(HttpStatusCode.BadRequest, "Bad Request"));
                }
            }

            Logger.WriteLog(LogLevelL4N.FATAL, "Bad Request");
            return(req.CreateResponse(HttpStatusCode.BadRequest, "Bad Request"));
        }
        //Electricity Request
        public DL_ElectricityReturn PayElectrictyBills(DL_Electricity electricity)
        {
            try
            {
                #region Check Account available balance and servie status.

                this.SpName = DL_StoreProcedure.SP_DHS_API_AvailableBalanceNServieStatus; //Sp Name || Get the Available balance and Service status.
                SqlParameter[] p = new SqlParameter[2];
                p[0] = new SqlParameter("@UserId", electricity.UserId);
                p[1] = new SqlParameter("@OpId", electricity.ServiceId);

                ds = db.GetDataSet(this.SpName, p);
                UserInfo userInfo = null;

                if (ds != null && ds.Tables.Count > 0)
                {
                    DataRow drc = ds.Tables[0].Rows[0];

                    userInfo = new UserInfo()
                    {
                        AvailBal      = Convert.ToDouble(drc["AvailableBalance"] != null ? drc["AvailableBalance"] : 0),
                        Margin        = Convert.ToDouble(drc["Margin"]),
                        ServiceStatus = Convert.ToBoolean(drc["ServiceStatus"]),
                        UType         = Convert.ToInt32(drc["UType"]),
                        IsFixedCharge = Convert.ToBoolean(drc["IsFixedCharge"])
                    };
                }

                #endregion
                double _fixedCharge = 2;
                if (userInfo.IsFixedCharge)
                {
                    _fixedCharge = (userInfo.Margin);
                }

                if (userInfo.AvailBal >= (electricity.Amount + _fixedCharge))        //Margin will be fixed amount in this case
                {
                    this.SpName       = DL_StoreProcedure.SP_DHS_API_PayElectricity; //Sp Name
                    electricityReturn = new DL_ElectricityReturn();
                    _IsSuccess        = true;
                    SqlParameter[] param = new SqlParameter[10];
                    param[0] = new SqlParameter("@UserId", electricity.UserId.Trim());
                    param[1] = new SqlParameter("@Key", electricity.Key);
                    param[2] = new SqlParameter("@ServiceId", electricity.ServiceId);
                    param[3] = new SqlParameter("@Amount", electricity.Amount);
                    param[4] = new SqlParameter("@BU", electricity.BU);
                    param[5] = new SqlParameter("@CusAcc", electricity.CusAcc);
                    param[6] = new SqlParameter("@CusMob", electricity.CusMob);
                    param[7] = new SqlParameter("@CyDiv", electricity.CyDiv);
                    param[8] = new SqlParameter("@DueDate", electricity.DueDate);
                    param[9] = new SqlParameter("@Date", indianTime);
                    // param[10] = new SqlParameter("@Charge", _fixedCharge);

                    ds = db.GetDataSet(this.SpName, param);
                    if (ds != null && ds.Tables.Count > 0)
                    {
                        DataRow dr = ds.Tables[0].Rows[0];
                        electricityReturn.AvaiBal = Convert.ToDouble(dr["AvaiBal"]);
                        electricityReturn.Status  = Convert.ToInt32(dr["Status"]);
                    }
                }
                else //not enough balance
                {
                    electricityReturn = new DL_ElectricityReturn()
                    {
                        AvaiBal = userInfo.AvailBal, Status = 2
                    }
                };
                this._IsSuccess = true;
            }
            catch (Exception ex)
            {
                Logger.WriteLog(LogLevelL4N.ERROR, "Error @ PayElectrictyBills : " + ex.Message);
                _IsSuccess = false;
            }

            return(electricityReturn);
        }