Пример #1
0
        public ReturnValue Run()
        {
            ReturnValue _result = new ReturnValue();

            #region get ship method list

            TShipMethod _tShipMethod = new TShipMethod();
            _result = _tShipMethod.getShipMethodList();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "getShipMethodList failed. \r\n " + _result.ErrMessage;

                Common.Log("getShipMethodList---ER \r\n" + _result.ErrMessage);

                return(_result);
            }
            ShipMethods = _result.ObjectList.ConvertAll(t => t as TShipMethod);

            #endregion

            #region get product list

            TProgram_Product _tProgram_Product = new TProgram_Product();
            _result = _tProgram_Product.getProgramProductList();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "getProgramProductList failed. \r\n " + _result.ErrMessage;

                Common.Log("getProgramProductList---ER \r\n" + _result.ErrMessage);

                return(_result);
            }
            Products = _result.ObjectList.ConvertAll(t => t as TProgram_Product);


            #endregion

            #region get country list

            TCountry _tCountry = new TCountry();
            _result = _tCountry.getCountryList();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "getCountryList failed. \r\n " + _result.ErrMessage;

                Common.Log("getCountryList---ER \r\n" + _result.ErrMessage);

                return(_result);
            }
            Countrys = _result.ObjectList.ConvertAll(t => t as TCountry);


            #endregion

            #region get state list

            TState _tState = new TState();
            _result = _tState.getStateList();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "getStateList failed. \r\n " + _result.ErrMessage;

                Common.Log("getStateList---ER \r\n" + _result.ErrMessage);

                return(_result);
            }
            States = _result.ObjectList.ConvertAll(t => t as TState);


            #endregion

            #region get type list

            TType _tType = new TType();
            _result = _tType.geTTypeList();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "geTTypeList failed. \r\n " + _result.ErrMessage;

                Common.Log("geTTypeList---ER \r\n" + _result.ErrMessage);

                return(_result);
            }
            Types = _result.ObjectList.ConvertAll(t => t as TType);


            #endregion

            #region PULLOrders

            _result = SS2.ShipStationAPI.PULLOrders();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "PULLOrders failed. \r\n " + _result.ErrMessage;

                Common.Log("PULLOrders---ER \r\n" + _result.ErrMessage);

                Common.SentAlterEmail(1, _result.ErrMessage);

                return(_result);
            }

            List <ShipStationResponseOrder> orderList = _result.ObjectValue as List <ShipStationResponseOrder>;

            #endregion

            foreach (ShipStationResponseOrder order in orderList)
            {
                #region check program ID

                if (string.IsNullOrWhiteSpace(order.advancedOptions.customField1) == true)
                {
                    continue;
                }

                var programId = order.advancedOptions.customField1;

                Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---Start");

                List <string> Programs = ConfigurationSettings.AppSettings["ProgramList"].Split(',').ToList();

                if (Programs.Exists(p => p.Equals(programId)) == false)
                {
                    _result.ErrMessage = "Program ID:" + programId + "  is valid";

                    errorNotes = errorNotes + order.orderId + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---ER \r\n" + _result.ErrMessage);

                    continue;
                }

                #endregion

                #region check order existed

                TShipStationOrders shipStationOrders = new TShipStationOrders();
                _result = shipStationOrders.getOrderBySOrderId(order.orderId);
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + order.orderId + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---ER \r\n" + _result.ErrMessage);

                    continue;
                }
                shipStationOrders = _result.Object as TShipStationOrders;

                if (shipStationOrders.ID != 0)
                {
                    continue;
                }

                #endregion

                #region create ZStore Order

                _result = createZOrder(order);
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + order.orderId + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---ER \r\n" + _result.ErrMessage);

                    continue;
                }

                TOrder _tOrder = _result.Object as TOrder;

                #endregion

                #region save Order

                _result = saveZOrder(_tOrder, order);
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + order.orderId + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---ER \r\n" + _result.ErrMessage);

                    continue;
                }

                #endregion

                Common.Log("ProgramID:" + programId + "  Order : " + order.orderId + "---OK");
            }


            Common.SentAlterEmail(failedRecord, errorNotes);

            _result.Success = true;

            return(_result);
        }
Пример #2
0
        private ReturnValue saveZOrder(TOrder zOrder, ShipStationResponseOrder sOrder)
        {
            ReturnValue _result = new ReturnValue();

            Transaction _tran = new Transaction();

            #region get Order ID

            int programID = int.Parse(sOrder.advancedOptions.customField1);

            var oID = new TOrderID_Generator();
            _result = oID.getOrderID_GeneratorByProgramId(programID);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }
            oID = _result.Object as TOrderID_Generator;

            if (oID.OrderID == 0)
            {
                _result.ErrMessage = string.Format("Can't generate Order ID for Program ({0}).", programID.ToString());
                _result.Success    = false;

                _tran.RollbackTransaction();
                return(_result);
            }
            zOrder.OrderId = oID.OrderID;

            #endregion

            #region save Zorder

            if (string.IsNullOrWhiteSpace(sOrder.shipTo.phone) == true)
            {
                sOrder.shipTo.phone = "xxx";
            }
            _result = (new TPhone {
                Number = sOrder.shipTo.phone
            }).Save(_tran);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }
            zOrder.Address.PhoneId = _result.IdentityId;

            _result = zOrder.Address.Save(_tran);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }
            zOrder.CustomerAddressId = _result.IdentityId;

            zOrder.Customer.UserGUID = System.Guid.NewGuid().ToString();
            _result = zOrder.Customer.Save(_tran);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }
            zOrder.CustomerId = _result.IdentityId;

            _result = zOrder.Save(_tran);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }

            foreach (TOrder_Line_Item item in zOrder.OrderLines)
            {
                item.ShipToAddressId  = zOrder.CustomerAddressId;
                item.ShipToCustomerId = zOrder.CustomerId;
                item.OrderId          = zOrder.OrderId;

                _result = item.Save(_tran);
                if (_result.Success == false)
                {
                    _tran.RollbackTransaction();
                    return(_result);
                }
            }



            #endregion

            #region save ShipStationOrders

            StringWriter   sw         = new StringWriter();
            JsonSerializer serializer = new JsonSerializer();

            TShipStationOrders shipStationOrders = new TShipStationOrders();

            shipStationOrders          = new TShipStationOrders();
            shipStationOrders.storeId  = sOrder.advancedOptions.storeId;
            shipStationOrders.SOrderId = sOrder.orderId.ToString();
            shipStationOrders.ZOrderId = zOrder.OrderId;
            serializer.Serialize(new JsonTextWriter(sw), sOrder);
            shipStationOrders.FullContent      = sw.ToString();
            shipStationOrders.OrderCreatedDate = DateTime.Now;
            shipStationOrders.PullDate         = DateTime.Now;
            shipStationOrders.PrevProcessDate  = DateTime.Now;

            _result = shipStationOrders.Save(_tran);
            if (_result.Success == false)
            {
                _tran.RollbackTransaction();
                return(_result);
            }

            #endregion


            _tran.CommitTransaction();

            return(_result);
        }
Пример #3
0
        public ReturnValue Run()
        {
            ReturnValue _result = new ReturnValue();

            #region get order list

            TShipStationOrders _tShipStationOrders = new TShipStationOrders();
            _result = _tShipStationOrders.getlOrderNeedMarked();
            if (_result.Success == false)
            {
                _result.Success    = false;
                _result.ErrMessage = "getlOrderNeedMarked failed. \r\n " + _result.ErrMessage;

                Common.Log("getlOrderNeedMarked---ER \r\n" + _result.ErrMessage);

                return(_result);
            }

            EntityList orderList = _result.ObjectList;

            #endregion

            foreach (TShipStationOrders item in orderList)
            {
                #region get order info

                TOrder _tOrder = new TOrder();
                _result = _tOrder.getOrderShipStation(item.ZOrderId);
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + item.SOrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("Order : " + item.SOrderId + "  getOrderShipStation---ER \r\n" + _result.ErrMessage);

                    continue;
                }
                _tOrder = _result.Object as TOrder;

                #endregion

                if (_tOrder.StatusCode != "SH")
                {
                    continue;
                }

                #region MarkAsShipped

                _result = ShipStationAPI.MarkAsShipped(_tOrder, item.SOrderId);
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + item.SOrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("Order : " + item.SOrderId + "  MarkAsShipped---ER \r\n" + _result.ErrMessage);

                    continue;
                }

                #endregion

                #region update ShipStationOrders when success

                item.Notes           = "";
                item.MarkedDate      = DateTime.Now;
                item.PrevProcessDate = DateTime.Now;
                _result = item.Update();
                if (_result.Success == false)
                {
                    errorNotes = errorNotes + item.SOrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n";
                    failedRecord++;

                    Common.Log("Order : " + item.SOrderId + "ShipStationOrders  Update---ER \r\n" + _result.ErrMessage);

                    continue;
                }

                #endregion

                Common.Log("Order : " + item.SOrderId + "---OK");
            }

            Common.SentAlterEmail(failedRecord, errorNotes);

            _result.Success = true;

            return(_result);
        }