Веб-клиент C # Api отправляет дублирующиеся данные вместо 1Data - PullRequest
0 голосов
/ 31 января 2019

Итак, я сделал Windows Service API для Php из биометрии. Каждый раз, когда я отправляю данные через веб-клиент, он отправляет дублирующиеся данные, а не только отправляет 1 данные, например:

Веб-служба -> Отправляет -> 1.CardoDalisay 01/01/2018 1:01:10 PM -> 1.Cardo Dalisay 01/01/2018 13:01:10 PM

            //Get Data from biometric
            ICollection<MachineInfo> lstmachineInfo = manipulator.GetLogData(objZkeeper, int.Parse(MachineNo));


            //if its not null
            if (lstmachineInfo != null && lstmachineInfo.Count > 0)
            {
               //new list for new updated data
               List<MachineInfo.Datasend>zkteco = new List<MachineInfo.Datasend>();
               const string encryptionkey = @"ZREpfb7s2q0+Jq598jTlGTSHovHMJ1ok";
               //lambda which fetch only new data 
               var result = lstmachineInfo.ToList().Where(a => a.datetime >= DateTime.Now.AddMinutes(-1)).ToList();
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                //webclient is here
                using (var webclient = new WebClient())
                {
                   //fetch the newly data
                    foreach (var data in result)
                    {
                       //store then to new list
                        zkteco.Add(new MachineInfo.Datasend
                        {
                            _machineNumber = data.MachineNumber,
                            _subscription = Subscription,
                            _branchid = BranchID,
                            _userid = data.UserID,
                            _DateTimeRecord = data.DateTimeRecord,
                            _Checktype = data.InOut,
                            _Accesstoken = AccessToken
                        });
                        string JsonResponse = JsonConvert.SerializeObject(zkteco);


                    }
                    //fetch the newly stored data
                    foreach (var zktecolist in zkteco)
                    {
                        //namevaluecollection for webclient
                        var values = new NameValueCollection();
                        values["machineid"] = zktecolist._machineNumber.ToString();
                        values["subscription"] = zktecolist._subscription.ToString();
                        values["branchid"] = zktecolist._branchid.ToString();
                        values["userid"] = zktecolist._userid.ToString();
                        values["datetime"] = zktecolist._DateTimeRecord;
                        values["checktype"] = zktecolist._Checktype.ToString();
                        values["accesstoken"] = zktecolist._Accesstoken.ToString();

// Запрос следует // ниже - запрос веб-клиента

                        var request = webclient.UploadValues("http://192.168.1.119/api/biometric_activity?data", values);

                        var response = Encoding.UTF8.GetString(request);
                        var apiResponse = JsonConvert.DeserializeObject<ApiResponse>(response);


                        if (apiResponse.status == "Ok")
                        {
                            WriteToFile("test" + apiResponse.description + " -> " + apiResponse.message + "status -> " + apiResponse.status);
                        }
                        else if (apiResponse.status != "Ok")
                        {
                            WriteToFile("No Data has been fetch");
                        }

                    }
                }
            }
            else
            {
                objZkeeper = new ZkemClient(RaiseDeviceEvent);
                isDeviceConnected = objZkeeper.Connect_Net(IPAddress, Port);
                WriteToFile("failed in connecting with device, reconnecting ....");

            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...