Ejemplo n.º 1
0
        public TResponseResult <bool> Send(List <ArmDataPackage> packets)
        {
            RequestResultType requestResult = RequestResultType.ConnectionUnavailable;
            var isSended = false;
            //  пытаемся отправить серверу, если нет - то сохраняем сообщения в папке для отправки
            var req = new NetRequests();

            req.updateUrls();
            foreach (var packet in packets)
            {
                var result          = req.SendPackage(packet);
                var jsonFileContent = Newtonsoft.Json.JsonConvert.SerializeObject(packet);
                requestResult = result.RequestResult;
                logger.Info("Sendind paket result: ({0}){1}{2}Paket Content: {3}", (int)result.RequestResult, result.RequestResult, Environment.NewLine, jsonFileContent);
                if (result.RequestResult != RequestResultType.Successful)
                {
                    //  save in folder
                    logger.Error("Sendind paket exception: ({0}){1}{2}Paket Content: {3}", (int)result.RequestResult, result.RequestResult, Environment.NewLine, jsonFileContent);
                    var jsonFileName = string.Format(fileNameTemplate, packet.Timestamp.ToString(fileDateTemplate), packet.WFMId, packet.IIN, packet.Type);

                    using (var writer = new System.IO.StreamWriter(Path.Combine(configuration.GetUploadPath(), jsonFileName)))
                    {
                        writer.Write(jsonFileContent);
                    }
                }
                else
                {
                    isSended = true;
                }
            }
            return(new TResponseResult <bool>(isSended, requestResult));
        }