示例#1
0
        private ParkingOut SendDataToServer(string webcamCapturedImage, string liveCameraSnapshotImage, string paymentMethod, int totalFare)
        {
            string vehicle     = tipe_kendaraan.SelectedItem.ToString();
            string username    = Properties.Settings.Default.Username;
            string datetimeOut = TKHelper.ConvertDatetimeToDefaultFormat(waktu_keluar.Text.ToString());
            string plateNumber = nomor_plat.Text.ToString();
            string ipAddress   = TKHelper.GetLocalIPAddress();

            LostTicketRequest lostTicketRequest = new LostTicketRequest(vehicle, username, datetimeOut, totalFare, plateNumber, ipAddress, paymentMethod, webcamCapturedImage, liveCameraSnapshotImage);
            var payload = JsonConvert.SerializeObject(lostTicketRequest);

            string lostTicketApiUrl = Properties.Resources.LostTicketAPIURL;

            DataResponseObject response = (DataResponseObject)restApi.post(ipAddressServer, lostTicketApiUrl, true, payload);

            if (response != null)
            {
                if (response.Status == 206)
                {
                    return(JsonConvert.DeserializeObject <ParkingOut>(response.Data.ToString()));
                }
                else
                {
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
                return(null);
            }
        }
示例#2
0
        private ParkingOut SendDataToServer(string base64Image, string base64LiveCameraSnapshotImage)
        {
            string dataBarcode     = barcode.Text.ToString();
            string uid             = supervisorCard.Text.ToString();
            string uidType         = TKHelper.GetUidType(dataBarcode);
            string vehicle         = vehicleType.Text.ToString();
            string datetimeOut     = TKHelper.ConvertDatetimeToDefaultFormat(timeOut.Text.ToString());
            string username        = Properties.Settings.Default.Username;
            string dataPlateNumber = plateNumber.Text.ToString();
            string ipAddressLocal  = TKHelper.GetLocalIPAddress();
            ParkingOutFreePassRequest freePassRequest = new ParkingOutFreePassRequest(vehicle, uidType, dataBarcode, username, datetimeOut, dataPlateNumber, ipAddressLocal, uid, base64Image, base64LiveCameraSnapshotImage);
            var sent_param = JsonConvert.SerializeObject(freePassRequest);

            DataResponseObject response = (DataResponseObject)restApi.post(ip_address_server, Properties.Resources.SaveDataFreePassAPIURL, true, sent_param);

            if (response != null)
            {
                switch (response.Status)
                {
                case 206:
                    return(JsonConvert.DeserializeObject <ParkingOut>(response.Data.ToString()));

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
                return(null);
            }
        }
示例#3
0
        private PassKadeDeparture SendDataToServer(string base64WebcamImage, string base64IpCameraImage, string paymentMethod, string bankCode = "")
        {
            int    vehicleFare = TKHelper.IDRToNominal(txtPassKadeFare.Text.ToString());
            string uid         = ticket.Text.ToString();
            string uidType     = TKHelper.GetUidType(uid);
            string vehicleType = tipe_kendaraan.Text.ToString();
            string departure   = TKHelper.ConvertDatetimeToDefaultFormat(departureDatetime.Text.ToString());
            string username    = Properties.Settings.Default.Username;
            string plateNumber = nomor_plat.Text.ToString();
            string IpAddress   = TKHelper.GetLocalIPAddress();
            string cargoType   = TKHelper.DictionaryGetValueByKey(outloadTypeDict, tarifMuatan.Text.ToString());
            PassKadeDepartureRequest passKadeDepartureRequest = new PassKadeDepartureRequest(uidType, uid, vehicleType, departure, username, plateNumber, vehicleFare, CargoFare, cargoType, IpAddress, paymentMethod, bankCode, base64WebcamImage, base64IpCameraImage);
            var sentParam = JsonConvert.SerializeObject(passKadeDepartureRequest);

            string             passKadeDepartureRequestApiUrl = Properties.Resources.SaveDataPassKadeDepartureApiUrl;
            DataResponseObject response = (DataResponseObject)restApi.post(IpAddressServer, passKadeDepartureRequestApiUrl, true, sentParam);

            if (response != null)
            {
                if (response.Status == 206)
                {
                    return(JsonConvert.DeserializeObject <PassKadeDeparture>(response.Data.ToString()));
                }
                else
                {
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
                return(null);
            }
        }
示例#4
0
        private DataPedestrianCargoResponse SendDataToServer(string paymentMethod, string bankCode = "")
        {
            List <DataPedestrianTypeQuantity> dataPedestrianTypeQuantities = GetDataPedestrianTypeQuantities();
            string IpAddress  = TKHelper.GetLocalIPAddress();
            string DatetimeIn = TKHelper.ConvertDatetimeToDefaultFormat(datetimeIn.Text.ToString());
            string Username   = Properties.Settings.Default.Username;
            string CargoType  = TKHelper.DictionaryGetValueByKey(CargoTypes, tarifMuatan.Text.ToString());

            PedestrianRequest pedestrianRequest = new PedestrianRequest(dataPedestrianTypeQuantities, IpAddress, DatetimeIn, Username, CargoFare, CargoType, paymentMethod, bankCode);
            var sentParam = JsonConvert.SerializeObject(pedestrianRequest);

            DataResponseObject response = (DataResponseObject)restApi.post(Properties.Settings.Default.IPAddressServer, Properties.Resources.SaveDataPedestrianApiUrl, true, sentParam);

            if (response != null)
            {
                switch (response.Status)
                {
                case 206:
                    return(JsonConvert.DeserializeObject <DataPedestrianCargoResponse>(response.Data.ToString()));

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
                return(null);
            }
        }
示例#5
0
        private PassKadeOutResponse SendDataToServer(int totalFare, string base64Image, string base64LiveCameraImage, string paymentMethod, string bankCode = "")
        {
            string             vehicle            = tipe_kendaraan.Text.ToString();
            string             username           = Properties.Settings.Default.Username;
            string             plateNumber        = nomor_plat.Text.ToString();
            string             ipAddressLocal     = TKHelper.GetLocalIPAddress();
            string             noteValue          = note.Text.ToString();
            PassKadeOutRequest passKadeOutRequest = new PassKadeOutRequest(vehicle, datetimeOut, username, plateNumber, totalFare, noteValue, ipAddressLocal, paymentMethod, bankCode, base64Image, base64LiveCameraImage);
            var sent_param = JsonConvert.SerializeObject(passKadeOutRequest);

            DataResponseObject response = (DataResponseObject)restApi.post(IpAddressServer, Properties.Resources.SaveDataPassKadeOutApiUrl, true, sent_param);

            if (response != null)
            {
                switch (response.Status)
                {
                case 206:
                    return(JsonConvert.DeserializeObject <PassKadeOutResponse>(response.Data.ToString()));

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Error);
                return(null);
            }
        }
示例#6
0
        private ParkingOut SendDataToServer(int totalFare, string base64Image, string base64LiveCameraImage, string paymentMethod, string bankCode = "")
        {
            string            uid               = textBox1.Text.ToString();
            string            uidType           = TKHelper.GetUidType(uid);
            string            vehicle           = comboBox1.Text.ToString();
            string            datetimeOut       = TKHelper.ConvertDatetimeToDefaultFormat(textBox4.Text.ToString());
            string            username          = Properties.Settings.Default.Username;
            string            plateNumber       = textBox2.Text.ToString();
            string            ipAddressLocal    = TKHelper.GetLocalIPAddress();
            ParkingOutRequest parkingOutRequest = new ParkingOutRequest(uidType, uid, vehicle, datetimeOut, username, plateNumber, totalFare, ipAddressLocal, paymentMethod, bankCode, base64Image, base64LiveCameraImage);
            var sent_param = JsonConvert.SerializeObject(parkingOutRequest);

            DataResponseObject response = (DataResponseObject)restApi.post(ip_address_server, Properties.Resources.SaveDataParkingAPIURL, true, sent_param);

            if (response != null)
            {
                switch (response.Status)
                {
                case 206:
                    return(JsonConvert.DeserializeObject <ParkingOut>(response.Data.ToString()));

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", response.Message, ToolTipIcon.Warning);
                    return(null);
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", Constant.ERROR_MESSAGE_INVALID_RESPONSE_FROM_SERVER, ToolTipIcon.Warning);
                return(null);
            }
        }
示例#7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            string feedback = this.ValidateFields();

            if (feedback == Constant.MESSAGE_OK)
            {
                // check the payment method whether it's cash or non-cash
                int    totalFare     = TKHelper.IDRToNominal(txtGrandTotal.Text.ToString());
                string paymentMethod = nonCash.Checked ? "NCSH" : "CASH";

                if (paymentMethod == "NCSH")
                {
                    string bankCode      = "BNI";
                    string ipv4          = TKHelper.GetLocalIPAddress();
                    string TIDSettlement = Properties.Settings.Default.TID;
                    string operator_name = Properties.Settings.Default.Username;

                    // need to disconnect SCard from WinsCard.dll beforehand in order to execute further actions to avoid 'Outstanding Connection' Exception.
                    mifareCard.disconnect();

                    DataDeduct responseDeduct = bni.DeductBalance(bankCode, ipv4, TIDSettlement, operator_name);
                    if (!responseDeduct.IsError)
                    {
                        string base64WebcamImage        = CameraHelper.CaptureWebcamImage(camera, webcamImage);
                        string base64LiveCameraSnapshot = CameraHelper.SnapshotLiveCamera();
                        if (!string.IsNullOrEmpty(base64LiveCameraSnapshot))
                        {
                            PassKadeDeparture passKadeDeparture = SendDataToServer(base64WebcamImage, base64LiveCameraSnapshot, paymentMethod, bankCode);
                            StoreDataToDatabase(responseDeduct, passKadeDeparture);
                            notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                            Clear();
                        }
                    }
                    else
                    {
                        notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", responseDeduct.Message, ToolTipIcon.Error);
                    }
                }
                else
                {
                    string base64WebcamImage       = CameraHelper.CaptureWebcamImage(camera, webcamImage);
                    string base4LiveCameraSnapshot = CameraHelper.SnapshotLiveCamera();
                    if (!string.IsNullOrEmpty(base4LiveCameraSnapshot))
                    {
                        PassKadeDeparture passKadeDeparture = SendDataToServer(base64WebcamImage, base4LiveCameraSnapshot, paymentMethod);
                        if (passKadeDeparture != null)
                        {
                            notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                            Clear();
                        }
                    }
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", feedback, ToolTipIcon.Warning);
            }
        }
示例#8
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            string feedback = this.ValidateFields();

            if (feedback == "ok")
            {
                int totalFare = this.helper.IDRToNominal(txtGrandTotal.Text.ToString());

                // encoded base64 Image from Webcam
                if (webcamImage.Image == null)
                {
                    MessageBox.Show("Snapshoot Webcam Bermasalah.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                Bitmap bmp         = new Bitmap(webcamImage.Image, Properties.Settings.Default.WebcamWidth, Properties.Settings.Default.WebcamHeight);
                string base64Image = bmp.ToBase64String(ImageFormat.Png);

                // check the payment method whether it's cash or non-cash
                string type = nonCash.Checked ? "noncash" : "cash";
                if (type == "noncash")
                {
                    string paymentMethod = "NCSH";
                    string bankCode      = "BNI";
                    // deduct balance of card
                    string ipv4           = helper.GetLocalIPAddress();
                    string TIDSettlement  = Properties.Settings.Default.TID;
                    string operator_name  = Properties.Settings.Default.Username;
                    string responseDeduct = bni.DeductBalance(bankCode, ipv4, TIDSettlement, operator_name);
                    if (responseDeduct == "OK")
                    {
                        // API POST Data to server
                        this.SendDataToServer(totalFare, base64Image, paymentMethod, bankCode);
                    }
                    else
                    {
                        MessageBox.Show(responseDeduct, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
                else
                {
                    string paymentMethod = "CASH";
                    this.SendDataToServer(totalFare, base64Image, paymentMethod);
                }
            }
            else
            {
                MessageBox.Show(feedback, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }
示例#9
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            string feedback = ValidateFields();

            if (feedback == Constant.MESSAGE_OK)
            {
                // check the payment method whether it's cash or non-cash
                string paymentMethod = nonCash.Checked ? "NCSH" : "CASH";

                if (paymentMethod == "NCSH")
                {
                    string bankCode      = "BNI";
                    string ipv4          = TKHelper.GetLocalIPAddress();
                    string TIDSettlement = Properties.Settings.Default.TID;
                    string operator_name = Properties.Settings.Default.Username;

                    // need to disconnect SCard from WinsCard.dll beforehand in order to execute further actions to avoid 'Outstanding Connection' Exception.
                    mifareCard.disconnect();

                    DataDeduct responseDeduct = bni.DeductBalance(bankCode, ipv4, TIDSettlement, operator_name);
                    if (!responseDeduct.IsError)
                    {
                        DataPedestrianCargoResponse pedestrianCargoResponse = SendDataToServer(paymentMethod, bankCode);
                        if (pedestrianCargoResponse != null)
                        {
                            StoreDataToDatabase(responseDeduct, pedestrianCargoResponse);
                            notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                            Clear();
                        }
                    }
                    else
                    {
                        notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", responseDeduct.Message, ToolTipIcon.Error);
                    }
                }
                else
                {
                    DataPedestrianCargoResponse pedestrianCargoResponse = SendDataToServer(paymentMethod);
                    if (pedestrianCargoResponse != null)
                    {
                        notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                        Clear();
                    }
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Warning", feedback, ToolTipIcon.Warning);
            }
        }
示例#10
0
        private void SaveDataLostTicket()
        {
            int    totalFare     = TKHelper.IDRToNominal(txtGrandTotal.Text.ToString());
            string paymentMethod = cash.Checked ? "CASH" : "NCSH";

            if (paymentMethod == "NCSH")
            {
                string bankCode      = "BNI";
                string ipv4          = TKHelper.GetLocalIPAddress();
                string TIDSettlement = Properties.Settings.Default.TID;
                string operator_name = Properties.Settings.Default.Username;

                DataDeduct responseDeduct = bni.DeductBalance(bankCode, ipv4, TIDSettlement, operator_name);
                if (!responseDeduct.IsError)
                {
                    string base64WebcamImage             = CameraHelper.CaptureWebcamImage(camera, webcamImage);
                    string base64LiveCameraSnapshotImage = CameraHelper.SnapshotLiveCamera();
                    if (!string.IsNullOrEmpty(base64LiveCameraSnapshotImage))
                    {
                        ParkingOut parkingOut = SendDataToServer(base64WebcamImage, base64LiveCameraSnapshotImage, paymentMethod, totalFare);
                        StoreDataToDatabase(responseDeduct, parkingOut);
                        notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                        Clear();
                    }
                }
                else
                {
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", responseDeduct.Message, ToolTipIcon.Error);
                }
            }
            else
            {
                string base64WebcamImage             = CameraHelper.CaptureWebcamImage(camera, webcamImage);
                string base64LiveCameraSnapshotImage = CameraHelper.SnapshotLiveCamera();
                if (!string.IsNullOrEmpty(base64LiveCameraSnapshotImage))
                {
                    SendDataToServer(base64WebcamImage, base64LiveCameraSnapshotImage, paymentMethod, totalFare);
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Success", Constant.TRANSACTION_SUCCESS, ToolTipIcon.Info);
                    Clear();
                }
            }
        }