Beispiel #1
0
 public static int AddPay(Com.Pay mPay)
 {
     try
     {
         using (var ent = DB.Entity)
         {
             ent.Pays.Add(mPay);
             ent.SaveChanges();
             return(mPay.PayID);
         }
     }
     catch (Exception e)
     {
         Log.DoLog(Com.Common.Action.AddPay, mPay.BuyID, -100, e.Message);
         return(-100);
     }
 }
Beispiel #2
0
 public static bool UpdatePayAfterConfirm(Com.Pay mPay)
 {
     try
     {
         using (var ent = DB.Entity)
         {
             ent.Pays.Attach(mPay);
             var Entry = ent.Entry(mPay);
             Entry.Property(ex => ex.IsReverse).IsModified  = true;
             Entry.Property(ex => ex.FinalState).IsModified = true;
             ent.SaveChanges();
             return(true);
         }
     }
     catch (Exception e)
     {
         Log.DoLog(Com.Common.Action.UpdatePayAfterConfirm, mPay.BuyID, -100, e.Message);
         return(false);
     }
 }
Beispiel #3
0
 public static bool UpdatePayAfterDargah(Com.Pay mPay)
 {
     try
     {
         using (var ent = DB.Entity)
         {
             ent.Pays.Attach(mPay);
             var Entry = ent.Entry(mPay);
             Entry.Property(ex => ex.DargahState).IsModified     = true;
             Entry.Property(ex => ex.Token).IsModified           = true;
             Entry.Property(ex => ex.TrackingNumber).IsModified  = true;
             Entry.Property(ex => ex.ReferenceNumber).IsModified = true;
             Entry.Property(ex => ex.EndMoment).IsModified       = true;
             ent.SaveChanges();
             return(true);
         }
     }
     catch (Exception e)
     {
         Log.DoLog(Com.Common.Action.UpdateProduct, mPay.BuyID, -100, e.Message);
         return(false);
     }
 }
Beispiel #4
0
        public async Task <Com.BuyResult> Buy()
        {
            Com.BuyResult buyResult = new Com.BuyResult();
            try
            {
                if (!Request.Content.IsMimeMultipartContent())
                {
                    buyResult.HasError  = true;
                    buyResult.StateDesc = "Exception dade: UnsupportedMediaType";
                    return(buyResult);
                }


                var filesReadToProvider = await Request.Content.ReadAsMultipartAsync();

                if (filesReadToProvider.Contents[0].Headers.ContentDisposition.Name == "Object" || filesReadToProvider.Contents[0].Headers.ContentDisposition.Name == "\"Object\"")
                {
                    var jsonString = await filesReadToProvider.Contents[0].ReadAsStringAsync();
                    var serializer = new JavaScriptSerializer();
                    Com.MiddlePayment mMiddlePayment = serializer.Deserialize <Com.MiddlePayment>(jsonString);


                    double SumPrice = 0;
                    foreach (var itemPro in mMiddlePayment.productInfos)
                    {
                        var pr = BLL.Product.GetProductByID(itemPro.PID);
                        if (pr == null)
                        {
                            buyResult.HasError  = true;
                            buyResult.StateDesc = "product nistesh";
                            return(buyResult);
                        }
                        SumPrice = SumPrice + (pr.Discount * itemPro.Count);
                    }


                    Com.Order order = new Com.Order()
                    {
                        IsDelivered  = false,
                        OrderTime    = DateTime.Now,
                        PayStatus    = false,
                        ProductsInfo = JsonConvert.SerializeObject(mMiddlePayment.productInfos),
                        ReciverInfo  = JsonConvert.SerializeObject(mMiddlePayment.MiliUser),
                        UID          = mMiddlePayment.MiliUser.UID,
                    };
                    int OIDRes = BLL.Salement.AddOrder(order);
                    if (OIDRes < 0)
                    {
                        buyResult.HasError  = true;
                        buyResult.StateDesc = "Etela'at Kharid dar DB Save nashode";
                        return(buyResult);
                    }

                    string BuyID = "70000332" + DateTime.Now.ToString("MMddyyyyhmms");


                    Com.PayResultRequested payResultRequested = PayStart(10000, BuyID);
                    if (payResultRequested.Result > 0)
                    {
                        Com.Pay newPay = new Com.Pay()
                        {
                            Amount      = 10000,//MablagheGhabelePardakht
                            BuyID       = BuyID,
                            StartMoment = DateTime.Now,
                            UID         = mMiddlePayment.MiliUser.UID,
                            OID         = OIDRes
                        };
                        int resDB = BLL.Payment.AddPay(newPay);
                        if (resDB < 0)
                        {
                            buyResult.HasError  = true;
                            buyResult.StateDesc = "Etela'at pardakht dar DB Save nashode";
                            return(buyResult);
                        }

                        buyResult.PayID = resDB;
                        buyResult.MablagheKoleKharid = (long)SumPrice;
                        buyResult.HasError           = false;
                        buyResult.LinkPardakht       = "http://www.poolban.ir/V2PayGate/Pool/StartPayRedirectww/" + payResultRequested.Result;
                        buyResult.StateDesc          = "OK Successsssss hoooraaa";
                    }
                    else
                    {
                        buyResult.MablagheKoleKharid = (long)SumPrice;
                        buyResult.HasError           = true;
                        buyResult.StateDesc          = "irad dar dargahe pardakht";
                    }

                    return(buyResult);
                }
                else
                {
                    buyResult.HasError  = true;
                    buyResult.StateDesc = "eshtbahi dar ersal Post pish amade";
                    return(buyResult);
                }
            }
            catch (Exception e)
            {
                new System.Threading.Thread(delegate() { BLL.Log.DoLog(Com.Common.Action.Buy, "", -100, e.Message); }).Start();
                buyResult.HasError  = true;
                buyResult.StateDesc = "Exception dade: " + e.Message;
                return(buyResult);
            }
        }