public ActionResult GetPaymentGateway(long id)
        {
            try
            {
                if (id < 1)
                {
                    return(Json(new PaymentGatewayObject(), JsonRequestBehavior.AllowGet));
                }

                var paymentGateway = new PaymentGatewayServices().GetPaymentGateway(id);
                if (id < 1)
                {
                    return(Json(new PaymentGatewayObject(), JsonRequestBehavior.AllowGet));
                }
                Session["_paymentGateway"] = paymentGateway;
                if (!string.IsNullOrEmpty(paymentGateway.LogoPath))
                {
                    paymentGateway.LogoPath = paymentGateway.LogoPath.Replace("~", "");
                }
                return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(new PaymentGatewayObject(), JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult DeletePaymentGateway(long id)
        {
            var gVal = new GenericValidator();

            try
            {
                if (id < 1)
                {
                    gVal.Code  = -1;
                    gVal.Error = message_Feedback.Invalid_Selection;
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                var k = new PaymentGatewayServices().DeletePaymentGateway(id);
                if (k)
                {
                    gVal.Code  = 5;
                    gVal.Error = "Payment Gateway information was successfully deleted.";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }
                gVal.Code  = -1;
                gVal.Error = "Payment Gateway information could not be deleted.";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                gVal.Code  = 5;
                gVal.Error = "Payment Gateway information could not be deleted.";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult GetPaymentGatewayObjects(JQueryDataTableParamModel param)
        {
            try
            {
                IEnumerable <PaymentGatewayObject> filteredPaymentGatewayObjects;
                var countG = new PaymentGatewayServices().GetObjectCount();

                var pagedPaymentGatewayObjects = GetPaymentGateways(param.iDisplayLength, param.iDisplayStart);

                if (!string.IsNullOrEmpty(param.sSearch))
                {
                    filteredPaymentGatewayObjects = new PaymentGatewayServices().Search(param.sSearch);
                }
                else
                {
                    filteredPaymentGatewayObjects = pagedPaymentGatewayObjects;
                }

                if (!filteredPaymentGatewayObjects.Any())
                {
                    return(Json(new List <PaymentGatewayObject>(), JsonRequestBehavior.AllowGet));
                }

                //var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
                Func <PaymentGatewayObject, string> orderingFunction = (c => c.GatewayName
                                                                        );

                var sortDirection = Request["sSortDir_0"]; // asc or desc
                if (sortDirection == "asc")
                {
                    filteredPaymentGatewayObjects = filteredPaymentGatewayObjects.OrderBy(orderingFunction);
                }
                else
                {
                    filteredPaymentGatewayObjects = filteredPaymentGatewayObjects.OrderByDescending(orderingFunction);
                }

                var displayedUserProfilenels = filteredPaymentGatewayObjects;

                var result = from c in displayedUserProfilenels
                             select new[] { Convert.ToString(c.PaymentGatewayId), c.GatewayName };
                return(Json(new
                {
                    param.sEcho,
                    iTotalRecords = countG,
                    iTotalDisplayRecords = filteredPaymentGatewayObjects.Count(),
                    aaData = result
                },
                            JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new List <PaymentGatewayObject>(), JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult AddPaymentGateway(PaymentGatewayObject paymentGateway)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var valStatus = ValidatePaymentGateway(paymentGateway);
                    if (valStatus.Code < 1)
                    {
                        paymentGateway.PaymentGatewayId = 0;
                        paymentGateway.GatewayName      = valStatus.Error;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }

                    var logoPath = SaveFile("");
                    if (!string.IsNullOrEmpty(logoPath))
                    {
                        paymentGateway.LogoPath = logoPath;
                    }
                    var k = new PaymentGatewayServices().AddPaymentGateway(paymentGateway);
                    if (k < 1)
                    {
                        if (k == -3)
                        {
                            paymentGateway.GatewayName = "Payment Gateway information already exists";
                        }
                        if (k == -4)
                        {
                            paymentGateway.GatewayName = "This Sort Code has been registered for another Payment Gateway.";
                        }
                        if (k != -3 && k != -4)
                        {
                            paymentGateway.GatewayName = "Payment Gateway information could not be added. Please try again";
                        }
                        paymentGateway.PaymentGatewayId = 0;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }

                    paymentGateway.PaymentGatewayId = k;
                    return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                }

                paymentGateway.PaymentGatewayId = -5;
                paymentGateway.GatewayName      = message_Feedback.Model_State_Error;
                return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                paymentGateway.PaymentGatewayId = 0;
                paymentGateway.GatewayName      = message_Feedback.Process_Failed;
                return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult EditPaymentGateway(PaymentGatewayObject paymentGateway)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var valStatus = ValidatePaymentGateway(paymentGateway);
                    if (valStatus.Code < 1)
                    {
                        paymentGateway.PaymentGatewayId = 0;
                        paymentGateway.GatewayName      = valStatus.Error;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }

                    if (Session["_paymentGateway"] == null)
                    {
                        paymentGateway.PaymentGatewayId = -5;
                        paymentGateway.GatewayName      = message_Feedback.Session_Time_Out;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }

                    var oldPaymentGateway = Session["_paymentGateway"] as PaymentGatewayObject;
                    if (oldPaymentGateway == null || oldPaymentGateway.PaymentGatewayId < 1)
                    {
                        paymentGateway.PaymentGatewayId = -5;
                        paymentGateway.GatewayName      = message_Feedback.Session_Time_Out;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }

                    oldPaymentGateway.GatewayName = paymentGateway.GatewayName.Trim();

                    var formerLogoPath = string.Empty;
                    if (!string.IsNullOrEmpty(oldPaymentGateway.LogoPath))
                    {
                        formerLogoPath = oldPaymentGateway.LogoPath;
                    }

                    var logoPath = SaveFile(formerLogoPath);

                    if (!string.IsNullOrEmpty(logoPath))
                    {
                        oldPaymentGateway.LogoPath = logoPath;
                    }

                    var k = new PaymentGatewayServices().UpdatePaymentGateway(oldPaymentGateway);
                    if (k < 1)
                    {
                        if (k == -3)
                        {
                            paymentGateway.GatewayName = "Payment Gateway information already exists";
                        }
                        if (k == -4)
                        {
                            paymentGateway.GatewayName = "This Sort Code has been registered for another Payment Gateway.";
                        }
                        if (k != -3 && k != -4)
                        {
                            paymentGateway.GatewayName = "Payment Gateway information could not be updated. Please try again";
                        }
                        paymentGateway.PaymentGatewayId = 0;
                        return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
                    }
                    return(Json(oldPaymentGateway, JsonRequestBehavior.AllowGet));
                }

                paymentGateway.PaymentGatewayId = -5;
                paymentGateway.GatewayName      = message_Feedback.Model_State_Error;
                return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                paymentGateway.PaymentGatewayId = 0;
                paymentGateway.GatewayName      = message_Feedback.Process_Failed;
                return(Json(paymentGateway, JsonRequestBehavior.AllowGet));
            }
        }