public OrderDetailModel(orderDetails mst)
 {
     ORD_NO  = mst.ORD_NO;
     MDL_NO  = mst.MDL_NO;
     OPT_NUM = mst.OPT_NUM;
     DESC    = mst.DESC;
     CLR     = mst.CLR;
     PAT_POS = mst.PAT_POS;
     MDL_CNT = mst.MDL_CNT;
 }
Exemplo n.º 2
0
        public OrderDetailsData(orderDetails od)
        {
            Command   = od.command;
            RequestId = NewGuid(od.requestId);
            ORD_NO    = od.ORD_NO;
            MDL_NO    = od.MDL_NO;
            OPT_NUM   = od.OPT_NUM;
            OPT_TYPE  = od.OPT_TYPE;
            DESC      = od.DESC;
            CLR       = od.CLR;

            MDL_CNT = od.MDL_CNT;
            PAT_POS = Convert.ToByte(od.PAT_POS);

            SCAN_DATE_TIME = od.ScanTime;
        }
Exemplo n.º 3
0
 var(orderDetails, challengeResults) = input;
Exemplo n.º 4
0
    protected void Button3_Click(object sender, EventArgs e)
    {
        if (TextBox2.Text.Length != 0)
        {
            Session["memberid"] = TextBox2.Text.ToString();
        }
        else
        {
            Session["memberid"] = "00000";
        }

        int flag = 0;

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
            if (cbox.Checked == true)
            {
                flag++;
                //Response.Write(GridView1.DataKeys[i].Value.ToString());
                //TextBox2.Text += GridView1.DataKeys[i].Value.ToString();

                DataClassesDataContext data = new DataClassesDataContext("Data Source=.;Initial Catalog=DSMS;Integrated Security=True");
                ///////////////////////////////////////////////
                var exist =
                    from orderform1 in data.orderform
                    where orderform1.orderformid == Session["orderformid"].ToString()
                    select orderform1;
                if (flag == 1 && exist.Count() == 0)
                {
                    orderform form = new orderform();
                    form.orderformid = Session["orderformid"].ToString();
                    form.stuffid     = Session["stuffid"].ToString();
                    form.drugstoreid = Session["drugstoreid"].ToString();
                    if (TextBox2.Text.Length != 0)
                    {
                        form.memberid = TextBox2.Text.ToString();
                    }
                    else
                    {
                        form.memberid = "00000";
                    }
                    form.saletime   = DateTime.Now;
                    form.totalmoney = 0;
                    data.orderform.InsertOnSubmit(form);
                    data.SubmitChanges();
                }

                /////////////////////////////////////////
                orderDetails de = new orderDetails();
                de.datailid = Session["detailid"].ToString();
                //de.datailid = "111";
                // de.orderformid = Session["orderformid"].ToString();
                de.orderformid = Session["orderformid"].ToString();
                de.drugid      = GridView1.DataKeys[i].Value.ToString();
                de.discount    = 1;
                de.drugnumber  = 1;
                data.orderDetails.InsertOnSubmit(de);
                data.SubmitChanges();
            }
        }
        Response.Redirect("OrderDetails.aspx");
    }
        static Dictionary <short, Dictionary <byte, List <long> > > dTruckCodeToDealerNumbers = new Dictionary <short, Dictionary <byte, List <long> > >();  //TruckCode -> <Seq, List<Orders>>
        public static isaCommand CommandFactory(byte[] cmdBytes)
        {
            isaCommand cmd = new Command().FromArray(cmdBytes);

            switch (cmd.command)
            {
            case eCommand.Broadcast:
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                break;

            case eCommand.DeliveryComplete:
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                break;

            case eCommand.CheckManifest:
            case eCommand.CheckManifestComplete:
                manifestMaster mamr = new manifestMaster();
                cmd = mamr.FromArray(cmdBytes);
                break;

            case eCommand.GenerateManifest:
                manifestRequest mr = new manifestRequest();
                cmd = mr.FromArray(cmdBytes);
                if (cmd == null)
                {
                    manifestMaster mmr = new manifestMaster();
                    cmd = mmr.FromArray(cmdBytes);
                }
                //Call ApplicationServer to return the data requested.
                //UMDManifest.
                break;

            case eCommand.OrdersLoad:
                //orders ords = new orders();
                //cmd = ords.FromArray(cmdBytes);
                orderMaster orm = new orderMaster();
                cmd = orm.FromArray(cmdBytes);
                break;

            case eCommand.Trucks:
                trucks trks = new trucks();
                cmd = trks.FromArray(cmdBytes);
                break;

            case eCommand.Stops:
                stops stps = new stops();
                cmd = stps.FromArray(cmdBytes);
                break;

            case eCommand.OrderDetails:
                orderDetails cmdType = new orderDetails();
                cmd = cmdType.FromArray(cmdBytes);
                break;

            case eCommand.Manifest:
                manifestMaster mm = new manifestMaster();
                cmd = mm.FromArray(cmdBytes);
                break;

            case eCommand.ManifestDetails:
                manifestDetails md = new manifestDetails();
                cmd = md.FromArray(cmdBytes);
                break;

            case eCommand.OrdersUpload:
                orderMaster om = new orderMaster();
                cmd = om.FromArray(cmdBytes);
                OrderMasterData omd = new OrderMasterData(om);
                if (!dStopOrders.ContainsKey(omd.DLR_NO))
                {
                    dStopOrders.Add(omd.DLR_NO, new List <long>()
                    {
                        omd.ORD_NO
                    });
                }
                break;

            case eCommand.ScanFile:
                scanFile sc = new scanFile();
                cmd = sc.FromArray(cmdBytes);
                ScanFileData scd = new ScanFileData(sc);
                break;

            case eCommand.OrderOptions:
                orderOptions oo = new orderOptions();
                cmd = oo.FromArray(cmdBytes);
                //OrderOptionsData ood = new OrderOptionsData(oo);
                break;

            case eCommand.AccountReceivable:
                accountReceivable ar = new accountReceivable();
                cmd = ar.FromArray(cmdBytes);
                // AccountsReceivableData acr = new AccountsReceivableData((accountReceivable)cmd);
                break;

            case eCommand.ManifestLoadComplete:
            case eCommand.TrucksLoadComplete:
            case eCommand.StopsLoadComplete:
            case eCommand.OrdersLoadComplete:
            case eCommand.OrderUpdatesComplete:
            case eCommand.OrderDetailsComplete:
            case eCommand.OrderOptionsComplete:
            case eCommand.ManifestDetailsComplete:
            case eCommand.UploadManifestComplete:
            case eCommand.LoadFilesComplete:
                Logger.Info($"CommandFactory: {Enum.GetName(typeof(eCommand), cmd.command) + Environment.NewLine}");
                manifestRequest req = new manifestRequest();
                Logger.Info($"CommandFactory: {req.ToString()}");
                cmd = req.FromArray(cmdBytes);
                break;

            case eCommand.Ping:
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                //cmd = SendPong();
                break;

            case eCommand.Pong:
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                break;

            case eCommand.RunQuery:
                //Broadcast cmdType = Broadcast.FromArray(cmdBytes);
                break;

            default:
                break;
            }
            return(cmd);
        }
Exemplo n.º 6
0
        public ActionResult Checkout(user _user, bool?shipbox, int?shipmethod, int?paymentmethod, int?paymenttype, string ad, string soyad, string adres, string sehir, int?postakodu, string eposta, string telefon)
        {
            //shipbox-> shipbox true ise başkası adına yada basşa bir farklı adrese gönderim
            //shipmethod-> Hızlıgönderim:10 tl yada normal gönderim 5 tl
            //paymentmethod_>ödeme tipi 1-havale,2-kredi kartı,3- kapıda ödeme vb.
            string message        = "";
            bool   status         = false;
            bool   orderCompleted = false;

            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Login", "User"));
            }
            user   loginUser = repoUser.GetAll().Where(x => x.email == User.Identity.Name).FirstOrDefault();
            orders newOrder  = new orders();

            newOrder.customerId = loginUser.userId;
            newOrder.orderDate  = DateTime.Now;
            if (paymentmethod == null)
            {
                message         = "Bir ödeme tipi seçmeniz gerekir";
                ViewBag.message = message;
                return(View());
            }
            else
            {
                newOrder.paymentType = paymentmethod;
            }
            if (shipmethod == null)
            {
                message         = "Bir gönderme tipi(Hızlı ya da Normal gönderim) seçmeniz gerekir";
                ViewBag.message = message;
                return(View());
            }
            else
            {
                // hızlı gönderim seçilmişse
                if (shipmethod == 1)
                {
                    newOrder.shipPrice = 10;
                }

                else
                {
                    newOrder.shipPrice = 5;
                }
            }

            // eğer kendine gönderiyorsa
            if (shipbox == null)
            {
                if (_user != null)
                {
                    // faklı birine yada farklı bir adrese göndermiyorsa
                    newOrder.isOther = false;

                    if (string.IsNullOrEmpty(_user.firstName))
                    {
                        message         = "isim alanını doldurmanız gerekir";
                        ViewBag.message = message;
                        return(View());
                    }
                    else
                    {
                        newOrder.firstname = _user.firstName;
                    }
                    if (string.IsNullOrEmpty(_user.lastName))
                    {
                        message         = "Soyad alanını doldurmanız gerekir";
                        ViewBag.message = message;
                        return(View());
                    }
                    else
                    {
                        newOrder.lastname = _user.lastName;
                    }
                    if (string.IsNullOrEmpty(_user.address))
                    {
                        message         = "adres alanını doldurmanız gerekir";
                        ViewBag.message = message;
                        return(View());
                    }
                    else
                    {
                        newOrder.address = _user.address;
                    }
                    if (string.IsNullOrEmpty(_user.city))
                    {
                        message         = "Şehir alanını doldurmanız gerekir";
                        ViewBag.message = message;
                        return(View());
                    }
                    else
                    {
                        newOrder.city = _user.city;
                    }
                    if (string.IsNullOrEmpty(_user.phone))
                    {
                        message         = "telefon alanını doldurmanız gerekir";
                        ViewBag.message = message;
                        return(View());
                    }
                    else
                    {
                        newOrder.phone = _user.phone;
                    }

                    newOrder.postCode = _user.postCode;
                    // sipariş kaydet
                    repoOrder.Save(newOrder);
                }
            }
            // farklı birine yada farklı bir adrese gönderiyorsa
            else
            {
                Session["ad"]    = ad;
                Session["soyad"] = soyad;
                Session["adres"] = adres;
                Session["sehir"] = sehir;

                Session["telefon"]   = telefon;
                Session["postakodu"] = postakodu ?? 0;
                Session["isGuest"]   = true;


                if (string.IsNullOrEmpty(ad))
                {
                    message         = "isim alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.firstname = ad;
                }
                if (string.IsNullOrEmpty(soyad))
                {
                    message         = "Soyisim alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.lastname = soyad;
                }

                if (string.IsNullOrEmpty(adres))
                {
                    message         = "Adres alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.address = adres;
                }
                if (string.IsNullOrEmpty(sehir))
                {
                    message         = "Şehir alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.city = sehir;
                }
                if (postakodu != null)
                {
                    newOrder.postCode = postakodu;
                }
                if (!string.IsNullOrEmpty(eposta))
                {
                    newOrder.email = eposta;
                }

                if (string.IsNullOrEmpty(telefon))
                {
                    message         = "Telefon alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.phone = telefon;
                }

                // faklı birine yada farklı bir adrese gönderİyorsa
                newOrder.isOther = true;
                repoOrder.Save(newOrder);
            }


            // sepette ürünler varsa
            if (Session["card"] != null)
            {
                List <BasketItem> Basket         = (List <BasketItem>)Session["card"];
                orderDetails      newOrderDetail = new orderDetails();
                foreach (var item in Basket)
                {
                    newOrderDetail.orderId   = newOrder.orderId;
                    newOrderDetail.productId = item.product.productId;
                    newOrderDetail.quantity  = item.quantity;
                    repoOrderDetail.Save(newOrderDetail);
                }
                decimal total = (decimal)Basket.Sum(x => x.quantity * x.product.price);
                //indirim kullanımı talep edilmişse
                if (Session["discount"] != null)
                {
                    coupons _discount = (coupons)Session["discount"];
                    //indirim kullanılıyor.
                    total -= (decimal)_discount.discount;
                    // indirim kullanıldığı için indirimi pasif et
                    coupons usedCoupon = repoCoupon.GetAll().FirstOrDefault(x => x.couponCode == _discount.couponCode);
                    // kullanıldı olarak işaretle
                    usedCoupon.isUsed = true;
                    // durumunu pasif et
                    usedCoupon.isActive = false;
                    // değişklilikleri güncelle
                    repoCoupon.Update(usedCoupon);
                    // sipariş tablosundaki indirim tutarını ekle
                    newOrder.discountPrice = _discount.discount;
                }
                if (total >= 2500)
                {
                    string couponCode = createCouponCode();
                    string subject    = " Bookstore İndirim Kuponu";
                    string body       = "Tebrikler! 2500 TL alışveriş yaptığınız için % 5 indirim kuponu kazandınız." +
                                        "Bir sonraki alışverişinizde indirim kuponunuzu kullanmak için son gün:" + DateTime.Now.AddDays(10);
                    coupons newCoupon = new coupons()
                    {
                        userId     = loginUser.userId,
                        isActive   = true,
                        created    = DateTime.Now,
                        expired    = DateTime.Now.AddDays(10),
                        couponCode = couponCode,
                        Title      = "%5 Hediye kuponu",
                        discount   = Basket.Sum(x => x.quantity * x.product.price) * 0.05m,
                        isUsed     = false
                    };

                    //kupon haketmişse kaydediliyor.
                    repoCoupon.Save(newCoupon);
                    // kupon haketmişse mail gönderiliyor.
                    SendCouponMail(User.Identity.Name, couponCode, subject, body);
                }
                //sipariş tutarı güncelleniyor
                newOrder.orderPrice = total;
                repoOrder.Update(newOrder);

                SendOrderInfo(loginUser.email);
                message = " Sipariş işlemi tamamlandı. siparişiniz ile ilgili bilgi mailinize gönderilmiştir. <br/>" +
                          "Goldstore sayfanızda sipariş detaylarını görebilirisiniz. Detay için aşağıdaki linke tıklayınız";
                status = true;
                // satışı tamamla
                orderCompleted = true;
                if (orderCompleted)
                {
                    // sepeti temizle;
                    Session.Remove("card");
                    //indirim sil
                    Session.Remove("discount");
                    // gönderme ücretini sil
                    Session.Remove("shipPrice");
                }
            }
            ViewBag.message = message;
            ViewBag.status  = status;
            return(View());
        }
        public isaCommand ReceiveMessage(isaCommand cmd)
        {
            switch (cmd.command)
            {
            case eCommand.Ping:
                Logger.Debug($"ReceiveMessage - Received Ping / Replying Pong..");
                WinSysSM.SendMessage(new Command()
                {
                    command = eCommand.Pong
                });
                break;

            case eCommand.Pong:
                Logger.Debug($"ReceiveMessage - Received Pong");
                break;

            case eCommand.LoadFiles:
                Logger.Info($"ReceiveMessage - Copy Files from Winsys Server Paths top App Server Paths:{cmd.ToString()}");
                //CopyFilesToServer(DateTime.Today);
                Logger.Info($"ReceiveMessage - Replying LoadFilesComplete...");
                WinSysSM.SendMessage(new Command()
                {
                    command = eCommand.LoadFilesComplete
                });
                //cbsend(new Command() { command = eCommand.LoadFilesComplete }.ToArray());
                break;

            case eCommand.GenerateManifest:
                Logger.Info($"ReceiveMessage - Generate Manifest from Winsys and SqlServer:{cmd.ToString()}");
                manifestRequest req = (manifestRequest)cmd;
                WinSysSM.SendMessage(req);
                break;

            case eCommand.ManifestDetails:
                Logger.Info($"ReceiveMessage - Generate Manifest Details from Winsys - API Drill Down:{cmd.ToString()}");
                manifestDetails manDet = (manifestDetails)cmd;

                ManifestDetailsData manDetData = new ManifestDetailsData(manDet);
                Logger.Info($"INSERTMANIFESTDETAILS (Persist): {manDetData.ToString()}");

                if (!dManDetails.ContainsKey(manDetData.RequestId.ToString() + manDetData.ManId.ToString()))
                {
                    dManDetails.Add(manDetData.RequestId.ToString() + manDetData.ManId.ToString(), new List <ManifestDetailsData>());
                }

                foreach (var omdit in UMDServer.Persist(SPCmds.INSERTMANIFESTDETAILS, manDetData))
                {
                    dManDetails[manDetData.RequestId.ToString() + manDetData.ManId.ToString()].Add(manDetData);
                }

                Logger.Info($"ManifestDetails Complete: {manDet.ToString()}");
                break;

            case eCommand.ManifestDetailsComplete:
                Logger.Info($"ReceiveMessage - ManifestDetailsComplete:{cmd.ToString()}");
                req = (manifestRequest)cmd;
                List <ManifestDetailsData> mdd = null;
                if (dManDetails.ContainsKey(NewGuid(req.requestId).ToString() + req.id.ToString()))
                {
                    mdd = dManDetails[NewGuid(req.requestId).ToString() + req.id.ToString()];
                    dManDetails.Remove(NewGuid(req.requestId).ToString() + req.id.ToString());
                }
                if (!dManDetails.ContainsKey(NewGuid(req.requestId).ToString()) && mdd != null && mdd.Count > 0)
                {
                    drillDown.GetOrderMasterData(new manifestRequest()
                    {
                        valist = req.valist, requestId = req.requestId, date = req.date, id = req.id
                    });
                }

                dRetCall[NewGuid(cmd.requestId)](req.ToArray());
                //drillDown.reportMDProgressChanged(100, cmd);
                break;

            case eCommand.OrdersUpload:
                Logger.Info($"ReceiveMessage - Orders  reqId: {cmd.requestId}");
                List <IMDMMessage> lstOrd = new List <IMDMMessage>();

                OrderMasterData omd = new OrderMasterData(((orderMaster)cmd));
                orderMaster     om  = new orderMaster(omd);
                //omd.Status = OrderStatus.Shipped;

                lock (dOrdLock)
                {
                    if (!dOrdersMaster.ContainsKey(omd.RequestId.ToString() + omd.ManId.ToString()))
                    {
                        dOrdersMaster.Add(omd.RequestId.ToString() + omd.ManId.ToString(), new List <OrderMasterData>());
                    }
                }
                if (!dOrdersMaster[omd.RequestId.ToString() + omd.ManId.ToString()].Contains(omd))
                {
                    foreach (var omdit in UMDServer.Persist(SPCmds.INSERTORDER, omd))
                    {
                        lock (dOrdLock)
                            dOrdersMaster[omd.RequestId.ToString() + omd.ManId.ToString()].Add((OrderMasterData)omdit);
                    }
                }

                break;

            case eCommand.OrdersLoad:
                Logger.Info($"ReceiveMessage - OrdersLoad  reqId: {cmd.requestId}");
                orderMaster     ord    = (orderMaster)cmd;
                OrderMasterData omdata = new OrderMasterData(ord);

                lock (dOrdLock)
                {
                    if (!dOrdersMaster.ContainsKey(NewGuid(ord.requestId).ToString() + ord.ManId.ToString()))
                    {
                        dOrdersMaster.Add(NewGuid(ord.requestId).ToString() + ord.ManId.ToString(), new List <OrderMasterData>());
                    }
                }
                if (!dOrdersMaster[omdata.RequestId.ToString() + omdata.ManId.ToString()].Contains(omdata))
                {
                    foreach (var omdit in UMDServer.Persist(SPCmds.INSERTORDER, omdata))
                    {
                        lock (dOrdLock)
                            dOrdersMaster[omdata.RequestId.ToString() + omdata.ManId.ToString()].Add((OrderMasterData)omdit);
                    }
                }

                break;

            case eCommand.OrdersLoadComplete:
                Logger.Info($"ReceiveMessage - OrdersLoadComplete:{cmd.ToString()}");
                req = (manifestRequest)cmd;

                if (dOrdersMaster.ContainsKey(NewGuid(cmd.requestId).ToString() + req.id))
                {
                    List <OrderMasterData> lMOrd = dOrdersMaster[NewGuid(cmd.requestId).ToString() + req.id.ToString()].Distinct().ToList();
                    lMOrd.ForEach(x => Logger.Info($"ordldcmp{x.ORD_NO}"));
                    drillDown.GetDrillDownData(req.valist, eCommand.OrderDetails, req.requestId, 1);
                    drillDown.GetDrillDownData(req.valist, eCommand.OrderOptions, req.requestId);
                    lock (dOrdLock)
                        dOrdersMaster.Remove(NewGuid(cmd.requestId).ToString() + req.id);
                }
                else
                {
                    Logger.Info($"No Orders for {cmd.ToString()}");
                }
//                        throw new Exception("OrdersLoadComplete - response not mapped in dOrderMaster.  " +
//                          "Request Id: {NewGuid(cmd.requestId).ToString()} , id: {req.id}. ");
                dRetCall[NewGuid(cmd.requestId)](req.ToArray());

                break;

            case eCommand.OrderDetails:
                Logger.Info($"ReceiveMessage - OrderDetails:{cmd.ToString()}");
                try
                {
                    orderDetails     od  = (orderDetails)cmd;
                    OrderDetailsData odd = new OrderDetailsData(od);

                    lock (dOrdLock)
                    {
                        if (!dOrdersDetails.ContainsKey(odd.RequestId))
                        {
                            dOrdersDetails.Add(odd.RequestId, new List <OrderDetailsData>());
                        }
                    }
                    foreach (var odit in UMDServer.Persist(SPCmds.INSERTORDERDETAILS, odd))
                    {
                        Logger.Info($"INSERTORDERDETAILS Complete: {odit.ToString()}");
                    }

                    //dRetCall[NewGuid(od.requestId)](cmd.ToArray());
                }
                catch (Exception ex) { Logger.Error($"eCommand.OrderDetails {ex.Message}"); }

                break;

            case eCommand.OrderDetailsComplete:
                Logger.Info($"ReceiveMessage - OrderDetailsComplete:{cmd.ToString()}");
                // Can we detrmine the completed transaction at this point from the cmd in order to clean the completed tx for dRetCall
                req = (manifestRequest)cmd;

                lock (dOrdLock)
                {
                    if (dOrdersDetails.ContainsKey(NewGuid(cmd.requestId)))
                    {
                        //                        drillDown.GetOrderOptionsData(dOrdersDetails[NewGuid(cmd.requestId)].Distinct().ToList());
                        //drillDown.GetOrderOptionsData(ordersToRequestDetails[NewGuid(cmd.requestId)]);
                        dOrdersDetails.Remove(NewGuid(cmd.requestId));
                    }
                }

                //dRetCall[NewGuid(cmd.requestId)](req.ToArray());

                break;

            case eCommand.OrderOptions:
                Logger.Info($"ReceiveMessage - OrderOptions  reqId:{cmd.ToString()}");
                try
                {
                    orderOptions     oo  = (orderOptions)cmd;
                    OrderOptionsData ood = new OrderOptionsData(oo);

                    foreach (var oodit in UMDServer.Persist(SPCmds.INSERTORDEROPTIONS, ood))
                    {
                        Logger.Info($"INSERTORDEROPTIONS Complete: {oodit.ToString()}");
                    }

                    //oo.command = eCommand.OrderOptionsComplete;
                    //dRetCall[NewGuid(oo.requestId)](cmd.ToArray());
                }
                catch (Exception ex) { Logger.Error($"eCommand.OrderOptions {ex.Message}"); }

                break;

            case eCommand.OrderOptionsComplete:

                Logger.Info($"ReceiveMessage - OrderOptionsComplete:{cmd.ToString()}");
                // Can we detrmine the completed transaction at this point from the cmd in order to clean the completed tx for dRetCall
                req = (manifestRequest)cmd;
                dRetCall[NewGuid(cmd.requestId)](req.ToArray());

                break;

            case eCommand.OrderUpdatesComplete:
                Logger.Info($"ReceiveMessage - OrderUpdatesComplete:{cmd.ToString()}");

                req = (manifestRequest)cmd;
                dRetCall[NewGuid(cmd.requestId)](req.ToArray());
                break;

            case eCommand.ManifestLoadComplete:
                Logger.Info($"ReceiveMessage - OrdersLoadComplete:{cmd.ToString()}");
                Logger.Info($"ReceiveMessage - OrderDetailsComplete:{cmd.ToString()}");

                req = (manifestRequest)cmd;
                dRetCall[NewGuid(cmd.requestId)](req.ToArray());
                break;

            case eCommand.ScanFile:
                Logger.Info($"ReceiveMessage Cached Success - ScanFile:{cmd.ToString()}");
                scanFile     sf  = (scanFile)cmd;
                ScanFileData sfd = new ScanFileData(sf);

                foreach (var scnfle in UMDServer.Persist(SPCmds.INSERTSCANFILE, sfd))
                {
                    Logger.Info($"INSERTSCNFLE Complete: {scnfle.ToString()}");
                }

                //if(cmd.requestId==null)
                //    dRetCall.FirstOrDefault().Value(sf.ToArray());
                //else
                //    dRetCall[NewGuid(cmd.requestId)](sf.ToArray());

                break;

            default:
                Logger.Error("ReceiveMessage - ERROR Unknown command.  Parse Error MDM-API");
                break;
            }
            return(cmd);
        }
Exemplo n.º 8
0
        public void HandleClientCmd(byte[] bytes_cmd, Func <byte[], Task> cbsend)
        {
            isaCommand cmd = new Command().FromArray(bytes_cmd);

            switch (cmd.command)
            {
            case eCommand.Ping:
                Logger.Debug("HandleClientCmd -  Received Ping / Replying Pong..");
                cbsend(new Command()
                {
                    command = eCommand.Pong
                }.ToArray());
                break;

            case eCommand.Pong:
                Logger.Debug("HandleClientCmd -  Received Pong");
                break;

            case eCommand.LoadFiles:
                Logger.Info("HandleClientCmd - Copy Files from Winsys Server Paths top App Server Paths:{cmd.ToString()}");
                //CopyFilesToServer(DateTime.Today);
                Logger.Info("HandleClientCmd - Replying LoadFilesComplete...");
                cbsend(new Command()
                {
                    command = eCommand.LoadFilesComplete
                }.ToArray());
                break;

            case eCommand.GenerateManifest:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");

                manifestMaster mM = (manifestMaster) new manifestMaster().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd Generate Manifest from Winsys and SqlServer:{mM.ToString()}");
                if (mM.LINK != 0)
                {
                    ManifestMasterData mmd = (ManifestMasterData)UMDServer.QueryData(cbsend, mM);
                    Logger.Info($"API Manager GenerateManifest. {mmd.ToString()}");
                }
                else
                {
                    WinSysSM.SendMessage(cmd);
                }
                break;

            case eCommand.CheckManifest:
                Logger.Info($"HandleClientCmd - CheckManifest:{cmd.ToString()}");
                //ManifestMasterData mMstData = (ManifestMasterData)new ManifestMasterData(bytes_cmd);
                manifestMaster mMst = (manifestMaster) new manifestMaster().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd Compare Manifest from Winsys to SqlServer: {mMst.ToString()}");
                ManifestMasterData mamd = (ManifestMasterData)UMDServer.QueryData(cbsend, mMst);
                Logger.Info($"API Manager GenerateManifest. {mamd.ToString()}");
                break;

            case eCommand.RunQuery:
                Logger.Info($"HandleClientCmd - ManifestDetails: {cmd.ToString()}");

                //DriverData dd = (DriverData)GetDrivers(cbsend);
                break;

            case eCommand.Manifest:
                Logger.Info($"HandleClientCmd - Manifest from Winsys and SqlServer:{cmd.ToString()}");
                cbsend(cmd.ToArray());
                break;

            case eCommand.Trucks:
                Logger.Info($"HandleClientCmd - Trucks: {cmd.ToString()}");

                isaCommand req = new manifestRequest().FromArray(bytes_cmd);
                TruckData  td  = (TruckData)UMDServer.QueryData(cbsend, req);
                Logger.Info($"HandleClientCmd - Trucks.  reqId:{req.ToString()}");
                break;

            case eCommand.ManifestDetails:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");
                isaCommand reqmd = new manifestRequest().FromArray(bytes_cmd);
                // ManifestDetailsData mdd =
                manifestDetails     manDet     = new manifestDetails();
                ManifestDetailsData manDetData = (ManifestDetailsData)manDet.FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - ManifestDetails:{manDetData.ToString()}");

                foreach (var mmd in UMDServer.Persist(SPCmds.INSERTMANIFESTDETAILS, manDetData))
                {
                    drillDown.GetOrderMasterData((ManifestDetailsData)mmd);
                    mmd.Command   = eCommand.ManifestDetails;
                    mmd.RequestId = new Guid(manDet.requestId);
                    Logger.Info($"HandleClientCmd - ManifestDetails.  Sending GetOrderMasterData:{mmd.ToString()}");
                    cbsend(((manifestDetails)mmd).ToArray());
                }
                break;

            case eCommand.Orders:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");

                var om = (orderMaster) new orderMaster().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - Orders.  reqId: {om.ToString()}");
                foreach (var omd in UMDServer.Persist(SPCmds.INSERTORDER, new OrderMasterData(om)))
                {
                    drillDown.GetOrderDetailsData((OrderMasterData)omd);
                }
                break;

            case eCommand.OrderOptions:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");

                var oo = (orderOptions) new orderOptions().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - OrderOptions:{cmd.ToString()}");
                foreach (var mmd in UMDServer.Persist(SPCmds.INSERTORDEROPTIONS, new OrderOptionsData(oo)))
                {
                    var oopt = new orderOptions((OrderOptionsData)mmd);
                    oopt.command = eCommand.OrderOptionsComplete;
                    cbsend(oopt.ToArray());
                }
                break;

            case eCommand.OrderDetails:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");

                var odt = (orderDetails) new orderDetails().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - OrderDetails: {odt.ToString()}");
                foreach (var mmd in UMDServer.Persist(SPCmds.INSERTORDERDETAILS, new OrderDetailsData(odt)))
                {
                    orderDetails odd = new orderDetails((OrderDetailsData)mmd);
                    odd.command = eCommand.OrderDetailsComplete;
                    cbsend(odd.ToArray());
                }
                break;

            case eCommand.Drivers:
                Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}");
                req = new manifestRequest().FromArray(bytes_cmd);
                DriverData dd = (DriverData)UMDServer.QueryData(cbsend, req);
                //drivers drvs = new drivers(dd);
                //drvs.command = eCommand.DriversLoadComplete;
                //cbsend(drvs.ToArray());

                //cbsend(new Command() { command = eCommand.DriversLoadComplete, value = dd.DriverId.ToString() }.ToArray());
                break;

            case eCommand.UploadManifest:
                Logger.Info($"HandleClientCmd - UploadManifest:{cmd.ToString()}");

                manifestRequest mreq = (manifestRequest) new manifestRequest().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - UploadManifest:  {mreq.ToString()}");
                //ManifestMasterData Mmd = (ManifestMasterData)cmd;
                manifestMaster            mm     = (manifestMaster) new manifestMaster().FromArray(mreq.bData);
                IEnumerable <IMDMMessage> mmdata = UMDServer.Persist(SPCmds.INSERTMANIFEST, new ManifestMasterData(mm, mm.id));
                Logger.Info($"HandleClientCmd - UploadManifest Persisted:{mm.ToString()}");

                try
                {
                    ManifestMasterData mmd = null;
                    foreach (var mmdIt in mmdata)
                    {
                        mmd = (ManifestMasterData)mmdIt;
                        Logger.Info($"HandleClientCmd - UploadManifest - Get ManifestDetails sending ManMastData Trk:{mmd.ToString()}");
                        drillDown.GetManifestDetails(mmd, cbsend);
                    }
                    if (mmd != null)
                    {
                        manifestMaster mmRet = new manifestMaster(mmd);
                        mmRet.command = eCommand.ManifestLoadComplete;
                        Logger.Info($"HandleClientCmd - UploadManifest - Done (ManifestLoadComplete):{mreq.ToString()}");
                        cbsend(mmRet.ToArray());
                    }
                }
                catch (Exception e)
                {
                    Logger.Debug("HandleClientCmd - Error exception = " + e.Message);
                }

                break;

            case eCommand.Stops:
                Logger.Info($"HandleClientCmd - Stops.  reqId:{cmd.ToString()}");
                req = new manifestRequest().FromArray(bytes_cmd);
                StopData sd   = (StopData)UMDServer.QueryData(cbsend, req);
                stops    stps = new stops(sd);
                stps.command = eCommand.StopsLoadComplete;
                cbsend(stps.ToArray());

                break;

            case eCommand.OrdersLoad:
                req = new manifestRequest().FromArray(bytes_cmd);
                Logger.Info($"HandleClientCmd - OrdersLoad (Start QueryData): {req.ToString()}");
                OrderData od   = (OrderData)UMDServer.QueryData(cbsend, req);
                orders    odrs = new orders(od);
                odrs.command = eCommand.OrdersLoadComplete;
                Logger.Info($"HandleClientCmd - OrdersLoad (OrdersLoadComplete): {odrs.ToString()}");
                cbsend(odrs.ToArray());
                break;

            default:
                Logger.Error("HandleClientCmd - ERROR Unknown command.  Parse Error MDM-API");
                break;
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// GetdataFromMySQL
        /// </summary>
        /// <param name="ConString"></param>
        public static void GetdataFromMySQL(string ConString)
        {
            string apiResponse       = string.Empty;
            string apiGenPickupRes   = string.Empty;
            string apiGenMenifestRes = string.Empty;

            AWBResponce      awbResponce      = new AWBResponce();
            PickupResponce   pickupResponce   = new PickupResponce();
            ManifestResponce manifestResponce = new ManifestResponce();

            MySqlConnection con = null;

            try
            {
                DataSet        ds           = new DataSet();
                AWBRequest     objdetails   = new AWBRequest();
                orderDetails   orderDetails = new orderDetails();
                IConfiguration config       = new ConfigurationBuilder().AddJsonFile("appsettings.json", true, true).Build();

                string ClientAPIURL = config.GetSection("MySettings").GetSection("ClientAPIURL").Value;
                con = new MySqlConnection(ConString);
                MySqlCommand cmd = new MySqlCommand("SP_PHYGetOrderdetailForAWB", con)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                };
                cmd.Connection.Open();
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                da.Fill(ds);
                cmd.Connection.Close();
                if (ds != null && ds.Tables[0] != null)
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        try
                        {
                            if (ds != null && ds.Tables[1] != null)
                            {
                                objdetails = new AWBRequest()
                                {
                                    pickup_postcode   = ds.Tables[1].Rows[i]["pickup_postcode"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[1].Rows[i]["pickup_postcode"]),
                                    delivery_postcode = ds.Tables[1].Rows[i]["delivery_postcode"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[1].Rows[i]["delivery_postcode"]),
                                    weight            = ds.Tables[1].Rows[i]["Weight"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[1].Rows[i]["Weight"]),
                                    orderDetails      = new orderDetails()
                                };
                            }

                            orderDetails = new orderDetails
                            {
                                Id                    = ds.Tables[0].Rows[i]["ID"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["ID"]),
                                order_id              = ds.Tables[0].Rows[i]["InvoiceNo"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["InvoiceNo"]),
                                order_date            = ds.Tables[0].Rows[i]["Date"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["Date"]),
                                billing_customer_name = ds.Tables[0].Rows[i]["CustomerName"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["CustomerName"]),
                                billing_address       = ds.Tables[0].Rows[i]["ShippingAddress"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["ShippingAddress"]),
                                billing_city          = ds.Tables[0].Rows[i]["City"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["City"]),
                                billing_pincode       = ds.Tables[0].Rows[i]["delivery_postcode"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["delivery_postcode"]),
                                billing_state         = ds.Tables[0].Rows[i]["State"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["State"]),
                                billing_country       = ds.Tables[0].Rows[i]["Country"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["Country"]),
                                //billing_email = ds.Tables[0].Rows[i]["EmailID"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["EmailID"]),
                                billing_phone          = ds.Tables[0].Rows[i]["MobileNumber"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["MobileNumber"]),
                                shipping_customer_name = ds.Tables[0].Rows[i]["CustomerName"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["CustomerName"]),
                                shipping_address       = ds.Tables[0].Rows[i]["ShippingAddress"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["ShippingAddress"]),
                                shipping_city          = ds.Tables[0].Rows[i]["City"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["City"]),
                                shipping_pincode       = ds.Tables[0].Rows[i]["delivery_postcode"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["delivery_postcode"]),
                                shipping_country       = ds.Tables[0].Rows[i]["Country"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["Country"]),
                                shipping_state         = ds.Tables[0].Rows[i]["State"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["State"]),
                                //shipping_email = ds.Tables[0].Rows[i]["EmailID"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["EmailID"]),
                                shipping_phone          = ds.Tables[0].Rows[i]["MobileNumber"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["MobileNumber"]),
                                shipping_is_billing     = true,
                                billing_email           = "*****@*****.**",
                                shipping_email          = "*****@*****.**",
                                payment_method          = "Prepaid",
                                pickup_location         = "Test",
                                channel_id              = "633828",
                                billing_last_name       = "",
                                billing_address_2       = "",
                                billing_alternate_phone = "",
                                shipping_last_name      = "",
                                shipping_address_2      = "",
                                sub_total     = ds.Tables[0].Rows[i]["Amount"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["Amount"]),
                                length        = ds.Tables[0].Rows[i]["Length"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["Length"]),
                                breadth       = ds.Tables[0].Rows[i]["Breath"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["Breath"]),
                                height        = ds.Tables[0].Rows[i]["Height"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["Height"]),
                                weight        = ds.Tables[0].Rows[i]["Weight"] == DBNull.Value ? 0 : Convert.ToDecimal(ds.Tables[0].Rows[i]["Weight"]),
                                StoreDelivery = Convert.ToBoolean(ds.Tables[0].Rows[i]["StoreDelivery"]),
                                TenantId      = ds.Tables[0].Rows[i]["TenantId"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["TenantId"]),
                                StoreId       = ds.Tables[0].Rows[i]["StoreId"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[i]["StoreId"]),
                                ProgramCode   = ds.Tables[0].Rows[i]["ProgramCode"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[i]["ProgramCode"]),
                                order_items   = new List <order_items>()
                            };
                            List <order_items> listobj = new List <order_items>();

                            string ItemIDs = "";
                            for (int j = 0; j < ds.Tables[2].Rows.Count; j++)
                            {
                                if (Convert.ToInt32(ds.Tables[2].Rows[j]["OrderID"]) == Convert.ToInt32(orderDetails.Id))
                                {
                                    order_items objorder_Items = new order_items()
                                    {
                                        OrderItemID   = ds.Tables[2].Rows[j]["ID"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[2].Rows[j]["ID"]),
                                        name          = ds.Tables[2].Rows[j]["ItemName"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[2].Rows[j]["ItemName"]),
                                        sku           = ds.Tables[2].Rows[j]["ItemID"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[2].Rows[j]["ItemID"]),
                                        units         = ds.Tables[2].Rows[j]["Quantity"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[2].Rows[j]["Quantity"]),
                                        selling_price = ds.Tables[2].Rows[j]["ItemPrice"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[2].Rows[j]["ItemPrice"])
                                    };
                                    listobj.Add(objorder_Items);
                                    ItemIDs += ds.Tables[2].Rows[j]["ID"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[2].Rows[j]["ID"]) + ",";
                                }
                            }
                            ItemIDs = ItemIDs.TrimEnd(',');
                            /*Check the Pincode Deliver or not*/

                            HSChkCourierAvailibilty hSChkCourierAvailibilty = new HSChkCourierAvailibilty
                            {
                                Pickup_postcode   = objdetails.pickup_postcode,
                                Delivery_postcode = objdetails.delivery_postcode
                            };

                            ResponseCourierAvailibilty responseCourierAvailibilty = new ResponseCourierAvailibilty();
                            responseCourierAvailibilty = CheckClientPinCodeForCourierAvailibilty(hSChkCourierAvailibilty, orderDetails.TenantId, orderDetails.Id, ClientAPIURL);

                            /*Check the Pincode Deliver or not*/
                            if (responseCourierAvailibilty.Available == "false")
                            {
                                if (orderDetails.StoreDelivery == true)
                                {
                                    AddStoreResponse(orderDetails.Id, ItemIDs, orderDetails.TenantId, true, ConString);
                                }
                                else
                                {
                                    AddStoreResponse(orderDetails.Id, ItemIDs, orderDetails.TenantId, false, ConString);
                                }
                            }
                            else if (responseCourierAvailibilty.Available == "true")
                            {
                                orderDetails.order_items = listobj;
                                ItemIDs = ItemIDs.TrimEnd(',');
                                objdetails.orderDetails = orderDetails;
                                string apiReq = JsonConvert.SerializeObject(objdetails);
                                apiResponse = CommonService.SendApiRequest(ClientAPIURL + "/api/ShoppingBag/GetCouriersPartnerAndAWBCode", apiReq);
                                awbResponce = JsonConvert.DeserializeObject <AWBResponce>(apiResponse);
                                if (awbResponce.data != null)
                                {
                                    if (awbResponce.data.awb_code != "" && awbResponce.data.courier_name != "" && awbResponce.statusCode == "200")
                                    {
                                        InsertCourierResponse(orderDetails.Id, ItemIDs, awbResponce.data.awb_code, awbResponce.data.courier_company_id, awbResponce.data.courier_name, awbResponce.data.order_id, awbResponce.data.shipment_id, ConString);

                                        CommonService.SmsWhatsUpDataSend(orderDetails.TenantId, 0, orderDetails.ProgramCode, orderDetails.Id, ClientAPIURL, "AWBAssigned", ConString);

                                        if (awbResponce != null)
                                        {
                                            if (awbResponce.data != null)
                                            {
                                                if (awbResponce.data.shipment_id != null)
                                                {
                                                    PickupManifestRequest pickupManifestRequest = new PickupManifestRequest()
                                                    {
                                                        shipmentId = new List <int> {
                                                            Convert.ToInt32(awbResponce.data.shipment_id)
                                                        }
                                                    };

                                                    try
                                                    {
                                                        string apiGenPickupReq = JsonConvert.SerializeObject(pickupManifestRequest);
                                                        apiGenPickupRes = CommonService.SendApiRequest(ClientAPIURL + "/api/ShoppingBag/GeneratePickup", apiGenPickupReq);
                                                        pickupResponce  = JsonConvert.DeserializeObject <PickupResponce>(apiGenPickupRes);
                                                        //if (pickupResponce.response.pickupTokenNumber != "")
                                                        //{
                                                        //    UpdateGeneratePickupManifest(orderDetails.Id, orderDetails.TenantId, orderDetails.Id, "Pickup", ConString);
                                                        //}
                                                        if (pickupResponce.status_code == 0 && pickupResponce.pickupStatus == "1")
                                                        {
                                                            if (pickupResponce.response != null)
                                                            {
                                                                if (pickupResponce.response.pickupTokenNumber != null)
                                                                {
                                                                    //UpdateGeneratePickupManifest(ID, "Pickup", ConString, TenantId);
                                                                    UpdateGeneratePickupManifest(orderDetails.Id, orderDetails.TenantId, orderDetails.Id, "Pickup", ConString);

                                                                    CommonService.SmsWhatsUpDataSend(orderDetails.TenantId, 0, orderDetails.ProgramCode, orderDetails.Id, ClientAPIURL, "PickupScheduled", ConString);
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ExLogger(orderDetails.Id, orderDetails.order_id, Convert.ToString(DateTime.Now), Convert.ToString(orderDetails.StoreId), pickupResponce.status_code + " : " + pickupResponce.message, apiGenPickupRes, ConString);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        ExLogger(orderDetails.Id, orderDetails.order_id, orderDetails.order_date, Convert.ToString(orderDetails.StoreId), ex.Message, ex.StackTrace, ConString);
                                                    }
                                                    try
                                                    {
                                                        string apiGenMenifestReq = JsonConvert.SerializeObject(pickupManifestRequest);
                                                        apiGenMenifestRes = CommonService.SendApiRequest(ClientAPIURL + "/api/ShoppingBag/GenerateManifest", apiGenMenifestReq);
                                                        manifestResponce  = JsonConvert.DeserializeObject <ManifestResponce>(apiGenMenifestRes);
                                                        if (manifestResponce.status_code == 0)
                                                        {
                                                            if (manifestResponce.status == "1" && manifestResponce.manifestUrl != null && manifestResponce.manifestUrl != "")
                                                            {
                                                                UpdateGeneratePickupManifest(orderDetails.Id, orderDetails.TenantId, orderDetails.Id, "Manifest", ConString);

                                                                CommonService.SmsWhatsUpDataSend(orderDetails.TenantId, 0, orderDetails.ProgramCode, orderDetails.Id, ClientAPIURL, "ManifestGenerated", ConString);
                                                            }
                                                            else
                                                            {
                                                                ExLogger(orderDetails.Id, orderDetails.order_id, Convert.ToString(DateTime.Now), Convert.ToString(orderDetails.StoreId), manifestResponce.status, apiGenMenifestRes, ConString);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ExLogger(orderDetails.Id, orderDetails.order_id, Convert.ToString(DateTime.Now), Convert.ToString(orderDetails.StoreId), manifestResponce.status_code + " : " + manifestResponce.message, apiGenMenifestRes, ConString);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        ExLogger(orderDetails.Id, orderDetails.order_id, orderDetails.order_date, Convert.ToString(orderDetails.StoreId), ex.Message, ex.StackTrace, ConString);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        AddStoreResponse(orderDetails.Id, ItemIDs, orderDetails.TenantId, false, ConString);
                                    }
                                }
                                else
                                {
                                    AddStoreResponse(orderDetails.Id, ItemIDs, orderDetails.TenantId, false, ConString);
                                }
                            }
                        }
                        catch (Exception Ex)
                        {
                            ExLogger(orderDetails.Id, orderDetails.order_id, orderDetails.order_date, Convert.ToString(orderDetails.StoreId), Ex.Message, Ex.StackTrace, ConString);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (con != null)
                {
                    con.Close();
                }
                GC.Collect();
            }
        }