Exemplo n.º 1
0
        private void CaptureTemperatures(SmbFile file)
        {
            try
            {
                var temperatures = "";

                Console.WriteLine($"file?-> {file}");
                if (file != null)
                {
                    //Create reading buffer.
                    using (var memStream = new MemoryStream())
                    {
                        //Get readable stream.
                        using (var readStream = file.GetInputStream())
                        {
                            //Get bytes.
                            ((Stream)readStream).CopyTo(memStream);
                        }
                        temperatures = Encoding.UTF8.GetString(memStream.ToArray());
                        string[] stringSeparators = { "\r\n" };
                        string[] lines            = temperatures.Split(stringSeparators, StringSplitOptions.None);
                        var      lastTemperature  = lines.First(l => l != "");
                        lastTemperature      = lastTemperature.Split(",").Last();
                        this.LastTemperature = $"{Convert.ToDecimal(lastTemperature).ToString("0.##")}º C";
                        RunOnUiThread(() => this.infoText2.Text = $"{this.LastTemperature}");
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine($"errot gen data");
            }
        }
Exemplo n.º 2
0
        private Bitmap PegarImagensServidor(RegistroDeReforma registroDeReforma, int index)
        {
            Bitmap imagem = null;

            indexAtual = index;

            try
            {
                var firstLetterClient = registroDeReforma.NomeCliente.Substring(0, 1);
                var fullClientName    = registroDeReforma.NomeCliente.RemoveSpecialCaracters();
                var apelido           = registroDeReforma.NomeFantasia.RemoveSpecialCaracters();
                var cityName          = registroDeReforma.Cidade.RemoveSpecialCaracters();
                var dateRR            = DateTime.Now;
                var nf     = registroDeReforma.NotaFiscal;
                var rr     = registroDeReforma.DescricaoRR;
                var eqDesc = registroDeReforma.Equipamento.RemoveSpecialCaracters();

                var smbPath  = ConfigurationBase.Instance.SmbPath;
                var filePath = string.Format(ConfigurationBase.Instance.FilePath,
                                             firstLetterClient, fullClientName, apelido,
                                             cityName, dateRR.Year, nf, rr, eqDesc.TrimEnd());
                var auth2       = new NtlmPasswordAuthentication(ConfigurationBase.Instance.NetworkDomain, ConfigurationBase.Instance.NetworkUser, ConfigurationBase.Instance.NetworkPassword);
                var pathConfirm = new SmbFile(string.Format("{0}/{1}", smbPath, filePath), auth2);

                //Create file.
                if (pathConfirm.Exists())
                {
                    SmbFile file = pathConfirm.ListFiles().ToList()[index];

                    if (file.IsFile())
                    {
                        //Get readable stream.
                        var readStream = file.GetInputStream();

                        //Create reading buffer.
                        var memStream = new MemoryStream();

                        //Get bytes.
                        ((Stream)readStream).CopyTo(memStream);

                        //Dispose readable stream.
                        readStream.Dispose();

                        byte[] byteImage = memStream.ToArray();
                        imagem = BitmapFactory.DecodeByteArray(byteImage, 0, byteImage.Length);
                    }
                }

                else
                {
                    throw new Exception("Diretório não encontrado");
                }
            }
            catch (Exception ex)
            {
                Program.Main.ShowMessage(ex.Message, Android.Widget.ToastLength.Long, Base.Enums.ToastMessageType.Error);
            }

            return(imagem);
        }
Exemplo n.º 3
0
        private void tsbRead_Click(object sender, EventArgs e)
        {
            try
            {
                //Get target's SmbFile.
                var file = new SmbFile("smb://jing.luo:[email protected]/程序文件及体系证书/体系证书/新版体系证书/IATF16949:2016 证书  中英文版.pdf");

                //Get readable stream.
                var readStream = file.GetInputStream();

                //Create reading buffer.
                var memStream = new MemoryStream();

                FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + file.GetName(), FileMode.Create);

                //Get bytes.
                ((Stream)readStream).CopyTo(fs);

                //Dispose readable stream.
                readStream.Dispose();
                MessageBox.Show("文件下载成功");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.InnerException);
            }



            //Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray()));
        }
Exemplo n.º 4
0
        public override MemoryStream Read()
        {
            var readStream = file.GetInputStream();
            var memStream  = new MemoryStream();

            ((Stream)readStream).CopyTo(memStream);
            readStream.Dispose();
            memStream.Seek(0, SeekOrigin.Begin);
            return(memStream);
        }
Exemplo n.º 5
0
        async void ReadFile(object sender, EventArgs e)
        {
            bool f = ReadFiles();
            //Get the SmbFile specifying the file name to be created.
            var file = new SmbFile("smb://" + Globals.cIP + "/EIDH.TXT"); // "smb://*****:*****@192.168.1.5/backpel/New2FileName.txt");

            //Get target's SmbFile.
            // var file = new SmbFile("smb://*****:*****@ServerIP/ShareName/Folder/FileName.txt");

            try
            {
                //Get readable stream.
                var readStream = file.GetInputStream();

                //Create reading buffer.
                var memStream = new MemoryStream();

                //Get bytes.
                ((Stream)readStream).CopyTo(memStream);

                //Dispose readable stream.
                readStream.Dispose();

                Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray()));

                byte[] bytes = memStream.ToArray();


                await DisplayAlert("Error", Encoding.UTF8.GetString(bytes), "OK");

                String g = Encoding.UTF8.GetString(memStream.ToArray());

                string[] lines = g.Split('\n');
                //for (int i=0;0;lines.count )
                for (int k = 0; k <= lines.Length - 1; k++)
                {
                }



                Lab1.Text = lines[1] + "=" + lines[2] + "=" + lines[3];
                // ΤΟ ΔΕΙΧΝΕΙ ΣΕ MSGBOX :     await DisplayAlert("Error", Encoding.UTF8.GetString(memStream.ToArray()), "OK");
            }
            catch
            {
                await DisplayAlert("Error", "....", "OK");

                return;
            }
        }
Exemplo n.º 6
0
        public byte[] GetFile(string fileNameWithExtention)
        {
            var smbShareFile = new SmbFile(Path.Combine(DocumentStorePath, fileNameWithExtention), authenticationObject);

            if (!smbShareFile.Exists())
            {
                return(null);
            }
            using (var streamIn = smbShareFile.GetInputStream())
            {
                var memoryStream = new MemoryStream();
                ((Stream)streamIn).CopyTo(memoryStream);
                return(memoryStream.ToArray());
            }
        }
Exemplo n.º 7
0
        public void BigFileTranferTest()
        {
            var url = this.GetUriString("Others/Comic/KAKERU - 魔法少女プリティ☆ベル/[KAKERU] 魔法少女プリティ☆ベル 第04巻.zip");

            var startTime = DateTime.Now;

            Out($"Start");

            var smb    = new SmbFile(url);
            var stream = new MemoryStream();

            using (var smbStream = smb.GetInputStream())
            {
                ((Stream)smbStream).CopyTo(stream);
            }
            Out($"End: {(DateTime.Now - startTime).TotalMilliseconds} msec");

            var end = 1;
        }
Exemplo n.º 8
0
        private static void BigFileTranferTest()
        {
            var url = GetUriString("FreeArea/SharpCifsTest2/bigfile.zip");

            var startTime = DateTime.Now;

            Out($"Start");

            var smb    = new SmbFile(url);
            var stream = new MemoryStream();

            using (var smbStream = smb.GetInputStream())
            {
                ((Stream)smbStream).CopyTo(stream);
            }
            Out($"End: {(DateTime.Now - startTime).TotalMilliseconds} msec");

            var end = 1;
        }
Exemplo n.º 9
0
        static void GetFile(SmbFile item)
        {
            //Get target's SmbFile.
            var file = new SmbFile(fpath + item.GetName());

            //Get readable stream.
            var readStream = file.GetInputStream();

            //Create reading buffer.
            var memStream = new FileStream(targetf + item.GetName(), FileMode.Create);

            //Get bytes.
            ((Stream)readStream).CopyTo(memStream);

            //Dispose readable stream.
            readStream.Dispose();

            //  Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray()));
        }
Exemplo n.º 10
0
        public void StreamReadTest()
        {
            var file = new SmbFile(this.GetUriString("FreeArea/SharpCifsTest/test.txt"));

            Assert.IsTrue(file.Exists());

            var readStream = file.GetInputStream();

            Assert.AreNotEqual(null, readStream);
            var stream = (Stream)readStream;

            Assert.IsTrue(stream.CanRead);
            Assert.IsTrue(stream.CanSeek);
            Assert.AreEqual(0, stream.Position);

            var text = Encoding.UTF8.GetString(Xb.Byte.GetBytes(stream));

            this.Out(text);

            readStream.Dispose();
        }
Exemplo n.º 11
0
        public void CreateWriteDeleteTest()
        {
            var a = 1;

            var dir = new SmbFile(this.GetUriString("FreeArea/SharpCifsTest/"));

            Assert.IsTrue(dir.Exists());

            var file2 = new SmbFile(dir, "newFile.txt");

            Assert.IsFalse(file2.Exists());

            file2.CreateNewFile();

            Assert.IsTrue(file2.Exists());

            var writeStream = file2.GetOutputStream();

            Assert.AreNotEqual(null, writeStream);

            var textBytes = Encoding.UTF8.GetBytes("マルチバイト\r\n\r\n∀\r\n∀");

            writeStream.Write(textBytes);
            writeStream.Dispose();

            var readStream = file2.GetInputStream();

            Assert.AreNotEqual(null, readStream);

            var text = Encoding.UTF8.GetString(Xb.File.Util.GetBytes(readStream));

            this.Out(text);
            Assert.IsTrue(text.IndexOf("バイト") >= 0);
            readStream.Dispose();

            file2.Delete();
            Assert.IsFalse(file2.Exists());
        }
Exemplo n.º 12
0
        public void ZipStreamReadingTest()
        {
            SharpCifs.Config.SetProperty("jcifs.smb.client.username", this.UserName);
            SharpCifs.Config.SetProperty("jcifs.smb.client.password", this.Password);
            var uriString = $"smb://{this.ServerName}/Apps/Others/[BinaryEditor] Stirling.zip";

            var zipFile = new SmbFile(uriString);

            Assert.IsTrue(zipFile.Exists());

            var readStream = zipFile.GetInputStream();


            var xbZip = new Xb.File.Zip(readStream);

            //xbZip.Entries
            foreach (var entry in xbZip.Entries)
            {
                this.Out($"{entry.Name}");
                var bytes = xbZip.GetBytes(entry);
                this.Out($"bytes.Length: {bytes.Length}");
            }
        }
Exemplo n.º 13
0
        public Stream CreateReadStream()
        {
            var stream = _file.GetInputStream();

            return(stream);
        }
Exemplo n.º 14
0
        async void ImportEID(object sender, EventArgs e)
        {
            await DisplayAlert("Εναρξη μεταφοράς ειδών 3-5λεπτά", "Είδη  ", "OK");

            //   CrossToastPopUp.Current.ShowToastMessage("loading ειδη");
            //  int count = Imp_EIDH();
            //   await DisplayAlert("ok ", "Είδη  "+count.ToString(), "OK");



            /*  Task<int> task = new Task<int>(Imp_EIDH);
             * IMPORTEID.Text = "*** ΠΑΡΑΚΑΛΩ ΠΕΡΙΜΕΝΕΤΕ 3λεπτά*****";
             * task.Start();
             * int count = await task;
             *
             * IMPORTEID.Text = count.ToString();
             * await DisplayAlert("--Εναρξη μεταφοράς ειδών", "Είδη που περάσ "+count.ToString (), "OK");
             */

            //  }


            //  int  Imp_EIDH() {

            BindingContext = null;
            Monkeys        = new List <Monkey>();
            IMPORTEID.Text = "*** ΠΑΡΑΚΑΛΩ ΠΕΡΙΜΕΝΕΤΕ 3λεπτά*****";
            // Task.Delay(1000).Wait();
            Thread.Sleep(500);
            int n = 0;

            var file = new SmbFile("smb://" + Globals.cIP + "/EID.txt");

            //Get target's SmbFile.
            // var file = new SmbFile("smb://*****:*****@ServerIP/ShareName/Folder/FileName.txt");
            // ΧΩΡΙς ΚΩΔΙΚΟ :   var file = new SmbFile("smb://192.168.1.4/backpel/EID.txt");
            try
            {
                int n22 = MainPage.ExecuteSqlite("delete from EID;");
                Thread.Sleep(1500);
                // Κωδικός0;       Περιγραφή1;                        ΕΝΑΛ.ΚΩΔΙΚΟΣ2; Χονδρικής3; Υπολ.1-4; Δεσμευμένα5; Αναμενόμενα6; Barcode 7
                //  12 - 01 - 30; ΛΑΜΠΑΔΑ ΚΕΡΙΝΗ KOKKINΗ ΚΑΛΛΑΣ/ ΤΡΙΑΝ; 12 - 01 - 30; 2,7000; ; 3; ; 5200001201306
                //  12 - 01 - 31; ΛΑΜΠΑΔΑ ΚΕΡΙΝΗ ΚΙΤΡΙΝΗ ΚΑΛΛΑΣ/ ΤΡΙΑΝ; 12 - 01 - 31; 2,7000; ; 3; ; 5200001201313

                /*   string c = "CREATE TABLE IF NOT EXISTS EID( ID  INTEGER PRIMARY KEY,KOD [nvarchar](25)," +
                 *    "[ONO] [nvarchar](255) ," +
                 *     "[ENAL] [nvarchar](25) ," +
                 *      "[YPOL] [real] ," +
                 *       "[XONDR] [real] ," +
                 *         "[DESM] [real] ," +
                 *         "[ANAM] [real] ," +
                 *       "[BARCODE] [nvarchar](15)  )  ";   */



                //Get readable stream.
                var readStream = file.GetInputStream();
                //Create reading buffer.
                var memStream = new MemoryStream();
                //Get bytes.
                ((Stream)readStream).CopyTo(memStream);
                //Dispose readable stream.
                readStream.Dispose();
                //  Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray()));
                byte[] bytes = memStream.ToArray();
                //   await DisplayAlert("Error", Encoding.UTF8.GetString(bytes), "OK");
                String   g     = Encoding.UTF8.GetString(memStream.ToArray());
                string[] lines = g.Split('\n');
                // IMPORTEID.Text=  lines[1] + "=" + lines[2] + "=" + lines[3];


                //  await DisplayAlert("Error", Encoding.UTF8.GetString(memStream.ToArray()), "OK");
                int n2;// = MainPage.ExecuteSqlite("dd");



                // ξεκιναει απο 1 για να αποφυγει την επικεφαλιδα

                for (n = 1; n < lines.Length - 1; n++)



                {
                    try
                    {
                        string[] lines2 = lines[n].Split(';');
                        string   cc     = lines2[1];
                        cc = cc.Replace("'", "`");

                        string enal = lines2[2];
                        if (enal.Length == 0)
                        {
                            enal = "0";
                        }
                        ;
                        enal = enal.Replace("'", "`");

                        string ypol = lines2[4];
                        if (ypol.Length == 0)
                        {
                            ypol = "0";
                        }
                        ;
                        ypol = ypol.Replace(",", ".");

                        string xondr = lines2[3];
                        if (xondr.Length == 0)
                        {
                            xondr = "0";
                        }
                        ;
                        xondr = xondr.Replace(",", ".");

                        string desm = lines2[5];
                        if (desm.Length == 0)
                        {
                            desm = "0";
                        }
                        ;
                        desm = desm.Replace(",", ".");

                        string anam = lines2[6];
                        if (anam.Length == 0)
                        {
                            anam = "0";
                        }
                        ;
                        anam = anam.Replace(",", ".");

                        if (n < 1000)
                        {
                            Monkeys.Add(new Monkey
                            {
                                Name = lines2[0],

                                Location = cc,
                                ImageUrl = ypol,
                                idPEL    = xondr
                            });
                        }



                        // Κωδικός0;Περιγραφή1;ΕΝΑΛ.ΚΩΔΙΚΟΣ2;Χονδρικής3;Υπολ.1-4; Δεσμευμένα5; Αναμενόμενα6; Barcode 7
                        n2 = MainPage.ExecuteSqlite("insert into EID (KOD,ONO,BARCODE) VALUES ('" + lines2[0] + "','" + lines2[1] + "','" + lines2[0] + "');");
                        //    IMPORTEID.Text = lines[n] ;
                    }
                    catch
                    {
                        // BindingContext = this;
                        //  await DisplayAlert("ΔΕΝ ΔΙΑΒΑΖΕΙ ΤΟ ΑΡΧΕΙΟ EID.txt", "....", "OK");
                        // return n;
                    }

                    // do something every 60 seconds
                    // IMPORTEID.Text = lines[n];
                    //  IMPORTEID.Text = lines[n];
                    //  Device.BeginInvokeOnMainThread(() =>
                    //  {
                    // interact with UI elements
                    // IMPORTEID.Text = lines[n];
                    //     IMPORTEID.Text = lines[n];
                    //  });
                    //   return true; // runs again, or false to stop



                    if (n == 1000)
                    {
                        //    int c1 = 0;
                        // PROG.ProgressColor = Color.Blue ;
                        // await PROG.ProgressTo(1, 255500, Easing.Linear);
                    }
                }  // for


                Thread.Sleep(3500);
                //  BindingContext = this;

                //  return true; // runs again, or false to stop
                // });

                await DisplayAlert("τελος μεταφοράς", "Είδη που περάστηκαν " + (lines.Length - 1).ToString(), "OK");;

                //    return lines.Length;
            }
            catch
            {
                //  BindingContext = this;
                //  await DisplayAlert("ΔΕΝ ΔΙΑΒΑΖΕΙ ΤΟ ΑΡΧΕΙΟ EID.txt", "....", "OK");
                //  return n;
            }



            // το αποθηκευω στο mysql
            //  int n = MainPage.ExecuteSqlite("dd");
        }
Exemplo n.º 15
0
        async void ImportPEL(object sender, EventArgs e)
        {
            await DisplayAlert("Εναρξη μεταφοράς πελατών 3-5λεπτά", "Πελάτες  ", "OK");

            BindingContext = null;
            Monkeys        = new List <Monkey>();
            // await Navigation.PushAsync(new param1());

            // διαβαζω το αρχείο των ειδων
            // διαβαζω το αρχείο των ειδων
            //Get the SmbFile specifying the file name to be created.
            CrossToastPopUp.Current.ShowToastMessage("loading...");

            // var file = new SmbFile("smb://DESKTOP-MPGU8SB/backpel/PEL.txt");
            var file = new SmbFile("smb://" + Globals.cIP + "/PEL.txt");


            //Get target's SmbFile.
            // var file = new SmbFile("smb://*****:*****@ServerIP/ShareName/Folder/FileName.txt");
            // ΧΩΡΙς ΚΩΔΙΚΟ :   var file = new SmbFile("smb://192.168.1.4/backpel/EID.txt");
            try
            {
                test22.IsVisible = true;

                int n22 = MainPage.ExecuteSqlite("delete from PEL;");


                //Get readable stream.
                var readStream = file.GetInputStream();
                //Create reading buffer.
                var memStream = new MemoryStream();
                //Get bytes.
                ((Stream)readStream).CopyTo(memStream);
                //Dispose readable stream.
                readStream.Dispose();
                //  Console.WriteLine(Encoding.UTF8.GetString(memStream.ToArray()));
                byte[] bytes = memStream.ToArray();
                //   await DisplayAlert("Error", Encoding.UTF8.GetString(bytes), "OK");
                String   g     = Encoding.UTF8.GetString(memStream.ToArray());
                string[] lines = g.Split('\n');
                IMPORTEID.Text = lines[1] + "=" + lines[2] + "=" + lines[3];
                //  await DisplayAlert("Error", Encoding.UTF8.GetString(memStream.ToArray()), "OK");
                int n2;// = MainPage.ExecuteSqlite("dd");
                for (int n = 1; n < lines.Length - 1; n++)
                {
                    string[] lines2 = lines[n].Split(';');
                    string   cc     = lines2[2];
                    cc = cc.Replace("'", "`");

                    if (n < 1000)
                    {
                        Monkeys.Add(new Monkey
                        {
                            Name = lines2[0],

                            Location = cc,
                            ImageUrl = lines2[1],
                            idPEL    = ""
                        });
                    }



                    n2             = MainPage.ExecuteSqlite("insert into PEL (KOD,EPO,AFM) VALUES ('" + lines2[0] + "','" + cc + "','" + lines2[1] + "');");
                    IMPORTEID.Text = lines[n];
                }
                BindingContext = this;
                await DisplayAlert("τελος μεταφοράς", "ΠΕΛΑΤΕΣ που περάστηκαν " + (lines.Length - 1).ToString(), "OK");;
            }
            catch
            {
                BindingContext = this;
                await DisplayAlert("ΔΕΝ ΔΙΑΒΑΖΕΙ ΤΟ ΑΡΧΕΙΟ EID.txt", "....", "OK");

                return;
            }
        }
Exemplo n.º 16
0
        private async Task GetData()
        {
            try
            {
                Trace.WriteLine(Invariant($"Connecting to {DeviceIP}"));
                ClearSmbState();

                DateTime localTime = DateTime.Now.ToLocalTime();
                string   path      = Invariant($"smb://{DeviceIP}/airvisual/{localTime.Year}{localTime.Month:00}_AirVisual_values.txt");

                var    auth       = new NtlmPasswordAuthentication(null, credentials.UserName, credentials.Password);
                string lastString = null;
                var    smbFile    = new SmbFile(path, auth, SmbFile.FileShareRead | SmbFile.FileShareWrite);
                smbFile.Connect();

                using (Stream fileStream = smbFile.GetInputStream())
                {
                    var length = fileStream.Length;
                    Trace.WriteLine(Invariant($"Reading from {path} with size {length} Bytes"));

                    int bufferSize = 512;
                    fileStream.Seek(-Math.Min(bufferSize, length), SeekOrigin.End);

                    var pos = fileStream.Position;

                    using (var reader = new StreamReader(fileStream, Encoding.ASCII, false, bufferSize))
                    {
                        string lastData = await reader.ReadToEndAsync().ConfigureAwait(false);

                        foreach (var reading in lastData.Split('\n'))
                        {
                            if (!string.IsNullOrWhiteSpace(reading))
                            {
                                lastString = reading;
                            }
                        }
                    }
                }

                if (string.IsNullOrWhiteSpace(lastString))
                {
                    throw new IOException("Last String Read From file is empty");
                }

                Trace.WriteLine(Invariant($"Found data {lastString} from {path}"));

                var tokens = lastString.Split(';');

                SensorData sensorData = new SensorData
                {
                    //Date;Time;Timestamp;PM2_5(ug/m3);AQI(US);AQI(CN);PM10(ug/m3);Outdoor AQI(US);Outdoor AQI(CN);Temperature(C);Temperature(F);Humidity(%RH);CO2(ppm);VOC(ppb)
                    updateTime = new DateTime(DateTimeOffset.FromUnixTimeSeconds(ParseLong(tokens, 2)).Ticks)
                };

                if (lastUpdate != sensorData.updateTime)
                {
                    sensorData.PM25             = ParseValue(tokens, 3);
                    sensorData.PM25AQI          = ParseValue(tokens, 4);
                    sensorData.PM25AQICN        = ParseValue(tokens, 5);
                    sensorData.PM10             = ParseValue(tokens, 6);
                    sensorData.OutsidePM25AQI   = ParseValue(tokens, 7);
                    sensorData.OutsidePM25AQICN = ParseValue(tokens, 8);
                    sensorData.TemperatureC     = ParseValue(tokens, 9);
                    sensorData.TemperatureF     = ParseValue(tokens, 10);
                    sensorData.Humidity         = ParseValue(tokens, 11);
                    sensorData.CO2 = ParseValue(tokens, 12);

                    UpdateDelta(sensorData);
                    lastUpdate = sensorData.updateTime;
                    Trace.TraceInformation(Invariant($"Updated data for device {DeviceIP} for time {sensorData.updateTime}"));
                }
            }
            catch (Exception ex)
            {
                if (ex.IsCancelException())
                {
                    throw;
                }

                Trace.TraceError(Invariant($"Failed to get data from {DeviceIP}. {ex.GetFullMessage()}."));
            }
        }
Exemplo n.º 17
0
 /// <summary>
 /// Get input stream async
 /// </summary>
 /// <param name="smbFile"></param>
 /// <returns></returns>
 public static Task <InputStream> GetInputStreamAsync(this SmbFile smbFile)
 {
     return(SharpCifs.Std.TaskEx.TaskRun(() => smbFile.GetInputStream()));
 }
Exemplo n.º 18
0
        private async Task GenerateData(SmbFile file)
        {
            try
            {
                locationManager.RequestLocationUpdates(locationProvider, 0, 0, this);
                if (currentLocation == null)
                {
                    RunOnUiThread(() => this.infoText.Text = "Location is null");
                    return;
                }
                Console.WriteLine($"return? -> {currentLocation}");

                var coordinates = "";

                Console.WriteLine($"file?-> {file}");
                if (file != null)
                {
                    //Create reading buffer.
                    using (var memStream = new MemoryStream())
                    {
                        //Get readable stream.
                        using (var readStream = file.GetInputStream())
                        {
                            //Get bytes.
                            ((Stream)readStream).CopyTo(memStream);
                        }
                        coordinates = Encoding.UTF8.GetString(memStream.ToArray());
                    }

                    coordinates = $"{coordinates}{System.Environment.NewLine}{DateTime.Now:yyyy/MM/dd HH:mm},{currentLocation.Latitude.ToString()},{currentLocation.Longitude.ToString()}";
                    // Console.WriteLine($"coordinates?-> {coordinates}");
                    //Get writable stream.
                    using (var writeStream = file.GetOutputStream())
                    {
                        //Write bytes.
                        writeStream.Write(Encoding.UTF8.GetBytes(coordinates));
                    }

                    this.LastUpdate   = DateTime.Now;
                    this.LastLocation = $"Lat: {Math.Round(currentLocation.Latitude, 2)}{System.Environment.NewLine}Long: {Math.Round(currentLocation.Longitude, 2)}";

                    var totalDistance = 0.0;

                    var coordinatesList = coordinates.Split(
                        new[] { System.Environment.NewLine },
                        StringSplitOptions.None);

                    for (var i = 1; i < coordinatesList.Length; i++)
                    {
                        try
                        {
                            var thisLat  = Convert.ToDouble(coordinatesList[i].Split(',')[1]);
                            var thisLong = Convert.ToDouble(coordinatesList[i].Split(',')[2]);
                            var prevLat  = Convert.ToDouble(coordinatesList[i - 1].Split(',')[1]);
                            var prevLong = Convert.ToDouble(coordinatesList[i - 1].Split(',')[2]);
                            var distance = new Coordinates(thisLat, thisLong)
                                           .DistanceTo(new Coordinates(prevLat, prevLong), UnitOfLength.Kilometers);

                            totalDistance = totalDistance + distance;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                        }
                    }

                    this.totalDistanceInKm = totalDistance;

                    RunOnUiThread(() =>
                    {
                        try
                        {
                            this.infoText4.Text = $"{Math.Round(this.totalDistanceInKm, 1)}km";
                        }
                        catch (Exception)
                        {
                            Console.WriteLine($"errot gen data");
                        }
                    });

                    try
                    {
                        var mapquestUrl = $"http://www.mapquestapi.com/geocoding/v1/reverse?key={key}&location={currentLocation.Latitude},{currentLocation.Longitude}&includeRoadMetadata=false&includeNearestIntersection=false&thumbmaps=true";
                        using (var client = new HttpClient())
                        {
                            var result = await client.GetStringAsync(mapquestUrl);

                            dynamic data = JObject.Parse(result);
                            Console.WriteLine($"{result}");
                            string city = data.results[0].locations[0].adminArea5;
                            if (city == "")
                            {
                                city = data.results[0].locations[0].adminArea4;
                            }
                            if (city == "")
                            {
                                city = data.results[0].locations[0].adminArea3;
                            }
                            if (city == "")
                            {
                                city = data.results[0].locations[0].adminArea2;
                            }
                            string thumbUrl = data.results[0].locations[0].mapUrl;
                            RunOnUiThread(() => this.infoText3.Text = city);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }

                    try
                    {
                        var forecastUrl = $"https://api.openweathermap.org/data/2.5/forecast?lat={currentLocation.Latitude}&lon={currentLocation.Longitude}&units=metric&cnt=1&APPID={weatherApiKey}";
                        using (var client = new HttpClient())
                        {
                            var result = await client.GetStringAsync(forecastUrl);

                            dynamic data = JObject.Parse(result);
                            Console.WriteLine($"{result}");
                            decimal min     = data.list[0].main.temp_min;
                            decimal max     = data.list[0].main.temp_max;
                            string  weather = data.list[0].weather[0].main;
                            RunOnUiThread(() => this.infoText5.Text = $"{weather}{System.Environment.NewLine}{min}º C / {max}º C");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine($"errot gen data");
            }
        }
Exemplo n.º 19
0
        public void ShareAccessFlagTest()
        {
            var sameUrl = this.GetUriString("FreeArea/SharpCifsTest/test.txt");

            //for recover
            var file = new SmbFile(sameUrl, null, SmbFile.FileShareDelete);

            Assert.IsTrue(file.Exists());
            var fileReadStream = file.GetInputStream();
            var bytes          = Xb.Byte.GetBytes((Stream)fileReadStream);

            fileReadStream.Dispose();
            this.Out($"base: {Encoding.UTF8.GetString(bytes)}");
            fileReadStream.Close();


            var tmpFile = default(SmbFile);
            var reader  = default(InputStream);
            var writer  = default(OutputStream);

            //1)ShareAccess = FileNoShare
            var shareAccessWriteFile = new SmbFile(sameUrl, null, SmbFile.FileNoShare);

            Assert.IsTrue(shareAccessWriteFile.Exists());
            reader = file.GetInputStream();

            try
            {
                //multiple read same file
                tmpFile = new SmbFile(sameUrl);
                var tmpReader = tmpFile.GetInputStream();

                Assert.Fail();
            }
            catch (SmbException ex)
            {
                this.Out(ex); // <- OK.
            }
            catch (Exception ex)
            {
                this.Out(ex);
                reader.Dispose();
                Assert.Fail();
            }
            reader.Dispose();


            //2)ShareAccess = FileShareDelete (default)
            var shareAccessDeleteFile = new SmbFile(sameUrl, null, SmbFile.FileShareDelete);

            Assert.IsTrue(shareAccessDeleteFile.Exists());
            reader = file.GetInputStream();

            try
            {
                //multiple read same file
                tmpFile = new SmbFile(sameUrl);
                var tmpReader = tmpFile.GetInputStream();
                tmpReader.Dispose();
            }
            catch (SmbException ex)
            {
                this.Out(ex); // <- WHY HERE?

                reader.Dispose();

                //recover
                writer = file.GetOutputStream();
                writer.Write(bytes);
                writer.Dispose();

                Assert.Fail();
            }
            catch (Exception ex)
            {
                this.Out(ex);
                Assert.Fail();
            }
            reader.Dispose();


            //recover
            writer = file.GetOutputStream();
            writer.Write(bytes);
            writer.Dispose();
        }
Exemplo n.º 20
0
 /// <summary>
 /// Get input stream async
 /// </summary>
 /// <param name="smbFile"></param>
 /// <returns></returns>
 public static Task <InputStream> GetInputStreamAsync(this SmbFile smbFile)
 {
     return(Task.Run(() => smbFile.GetInputStream()));
 }