예제 #1
0
        public void SendRequestThread(StockTakingModel item, int mode)
        {
            loading = new Loading();

            Thread t = new Thread(delegate()
            {
                if (DatabaseModule.Instance.QuerySelectHaveSendFlagData())
                {
                    List <StockTakingModel> stockList = new List <StockTakingModel>();
                    stockList.Add(item);
                    stockList.AddRange(DatabaseModule.Instance.QuerySelectAllStocktakingSendFlagData());
                    SendRequestList(stockList);
                    loading.DisposeLoading();
                }
                else
                {
                    SendRequest(item, mode);
                    loading.DisposeLoading();
                }
            });

            t.IsBackground = true;
            t.Start();
            loading.ShowDialog();
        }
예제 #2
0
        public void SendRequestThread(StockTakingModel item, decimal newQuantity, int newUnitCode, int mode)
        {
            loading = new Loading();

            Thread t = new Thread(delegate()
            {
                item.SendFlag = true;
                SendRequest(item, newQuantity, newUnitCode, mode);
                loading.DisposeLoading();
            });

            t.IsBackground = true;
            t.Start();
            loading.ShowDialog();
        }
예제 #3
0
        private bool SendRequest(StockTakingModel item, int mode)
        {
            bool returnValue = true;

            try
            {
                req             = (HttpWebRequest)WebRequest.Create(@"http://" + DatabaseModule.Instance.FtpServer + ":15267/api/stocktakings/InsertStocktaking");
                req.ContentType = "application/json";
                req.Method      = "POST";
                req.AllowWriteStreamBuffering = true;
                req.Proxy = null;

                Stocktaking s = new Stocktaking
                {
                    StocktakingID  = item.StocktakingID,
                    ScanMode       = item.ScanMode,
                    Barcode        = item.Barcode,
                    LocationCode   = item.LocationCode,
                    Quantity       = item.Quantity,
                    UnitCode       = item.UnitCode,
                    Flag           = item.Flag,
                    Description    = item.Description,
                    SKUCode        = item.SKUCode,
                    ExBarcode      = item.ExBarcode,
                    InBarcode      = item.InBarcode,
                    SKUMode        = item.SKUMode,
                    HHTName        = DatabaseModule.Instance.HHTName,
                    HHTID          = DatabaseModule.Instance.HHTID,
                    DepartmentCode = string.IsNullOrEmpty(item.DepartmentCode) ? DatabaseModule.Instance.currentDepartmentCode : item.DepartmentCode,
                    CreateBy       = DatabaseModule.Instance.currentUser,
                    UpdateBy       = DatabaseModule.Instance.currentUser
                };
                string pJson = JsonConvert.SerializeObject(s);
                //req.ContentLength = encoding.GetBytes(pJson).Length;
                writer = new StreamWriter(req.GetRequestStream());
                writer.Write(pJson);
                writer.Flush();
                writer.Close();

                res    = (HttpWebResponse)req.GetResponse();
                reader = new StreamReader(res.GetResponseStream());
                string responseMessage = reader.ReadToEnd();
                reader.Close();

                if ("F".Equals(responseMessage))
                {
                    throw new APIException("Server cant commit transfered-data to database, please check the server-side.");
                }

                item.SendFlag = true;
            }
            catch (APIException ex)
            {
                item.SendFlag = false;
                loading.ShowMessageLoading(ex.Message);
                returnValue = false;
            }
            catch (Exception ex)
            {
                item.SendFlag = false;
                loading.ShowMessageLoading("The process cant transfer realtime data to server.");
                returnValue = false;
            }

            DatabaseModule.Instance.QueryInsertFromScan(item, mode);
            return(returnValue);
        }