Beispiel #1
0
        public VirtualFileResult GetVirtualFileResultDemo(string filename)
        {
            string path        = "attachment/" + filename;
            string contentType = SPClass.GetContenttype(filename);

            return(new VirtualFileResult(path, contentType));
        }
Beispiel #2
0
        public FileResult GetFileResultDemo(string filename)
        {
            string path        = "/attachment/" + filename;
            string contentType = SPClass.GetContenttype(filename);

            return(File(path, contentType));
        }
        private void SendMessageToWorker(SPClass serialPortClassWhichMessageHasBeenSentTo, string message)
        {
            if (serialPortWorkers.TryGetValue(serialPortClassWhichMessageHasBeenSentTo, out SerialPortWorker worker))
            {
                SerialPortWorkerState currentWorkerState = worker.CurrentState;

                Helper.NLogger.Debug($"Próba wysłania wiadomości: {message} do workera: {worker} ({worker})");
                Helper.NLogger.Debug($"Worker jest w trybie: {currentWorkerState}");

                if (currentWorkerState == SerialPortWorkerState.STARTED)
                {
                    Helper.NLogger.Trace("Usuwanie nadmiaru spacji...");
                    message = Regex.Replace(message, @"\s+", " ");
                    Helper.NLogger.Trace("Do workera zostanie wysłana wiadomosć do przetworzenia.");
                    worker.WorkOnReceivedMessage(message);
                }
                else if (currentWorkerState == SerialPortWorkerState.STOPPED)
                {
                    Helper.NLogger.Trace("Worker zostanie usunięty (bez wysyłania wiadmości!).");
                    RemoveWorkerFromCollection(serialPortClassWhichMessageHasBeenSentTo);
                }
                else     //SerialPortWorkerState.PAUSED
                {
                }
            }
            else
            {
                Helper.NLogger.Warn($"Wokrer o klasie: {serialPortClassWhichMessageHasBeenSentTo} nie istnieje. Wiadomość: >>{message}<< nie może zostać wysłana");
            }
        }
        private void Worker_ChangedState(object sender, ChangedStateEventArgs e)
        {
            SerialPortWorkerState workerState = e.WorkerState;

            Helper.NLogger.Debug($"Sender: {sender}, has sent state {workerState}");

            SerialPortWorker worker = sender as SerialPortWorker;

            if (worker != null)
            {
                SPClass workerClass = worker.SP_CLASS_TYPE;
                switch (workerState)
                {
                case SerialPortWorkerState.STARTED:
                    break;

                case SerialPortWorkerState.PAUSED:
                    break;

                case SerialPortWorkerState.STOPPED:
                    RemoveWorkerFromCollection(workerClass);
                    break;

                default:
                    break;
                }
            }
        }
Beispiel #5
0
        public PhysicalFileResult GetPhysicalFileResultDemo(string filename)
        {
            string path        = "/wwwroot/attachment/" + filename;
            string contentType = SPClass.GetContenttype(filename);

            return(new PhysicalFileResult(_hostingEnvironment.ContentRootPath
                                          + path, contentType));
        }
Beispiel #6
0
        public FileContentResult GetFileContentResultDemo(string filename)
        {
            string path = "wwwroot/attachment/" + filename;

            byte[] fileContent = System.IO.File.ReadAllBytes(path);
            string contentType = SPClass.GetContenttype(filename);

            return(new FileContentResult(fileContent, contentType));
        }
Beispiel #7
0
        public async Task <FileContentResult> GetFileContentResultDemoAsync(string filename)
        {
            string path = "wwwroot/attachment/" + filename;

            byte[] data = await System.IO.File.ReadAllBytesAsync(path);

            string contentType = SPClass.GetContenttype(filename);

            return(new FileContentResult(data, contentType));
        }
Beispiel #8
0
        public FileStreamResult GetFileStreamResultDemo(string filename) //download file
        {
            string path        = "wwwroot/attachment/" + filename;
            var    stream      = new MemoryStream(System.IO.File.ReadAllBytes(path));
            string contentType = SPClass.GetContenttype(filename);

            return(new FileStreamResult(stream, new MediaTypeHeaderValue(contentType))
            {
                FileDownloadName = filename
            });
        }
Beispiel #9
0
        public ActionResult GetAttachment(int ID)
        {
            byte[] fileContent;
            string fileName = string.Empty;

            Attachment attachment = new Attachment();

            attachment = _appContext.attachments.Select(m => m).Where(m => m.id == ID).FirstOrDefault();

            string contentType = SPClass.GetContenttype(attachment.FileName);

            fileContent = (byte[])attachment.attachment;


            return(new FileContentResult(fileContent, contentType));
        }
Beispiel #10
0
        public IActionResult Index(AttachmentViewModel model)
        {
            if (model.attachment != null)
            {
                var uniqueFileName = SPClass.CreateUniqueFileExtension(model.attachment.FileName);
                var uploads        = Path.Combine(_hostingEnvironment.WebRootPath, "attachment");
                var filePath       = Path.Combine(uploads, uniqueFileName);
                model.attachment.CopyTo(new FileStream(filePath, FileMode.Create));


                Attachment attachment = new Attachment();
                attachment.FileName    = uniqueFileName;
                attachment.Description = model.Description;
                attachment.attachment  = SPClass.GetByteArrayFromImage(model.attachment);

                _appContext.attachments.Add(attachment);
                _appContext.SaveChanges();
            }
            return(RedirectToAction("index"));
        }
        public void StartMonitoringLoop()
        {
            try
            {
                if (CToken.IsCancellationRequested)
                {
                    CTokenSource = new CancellationTokenSource();
                }

                using (SerialPort serial = new SerialPort(this.SerialPortName, this.SerialPortBaudrate))
                {
                    serial.Open();

                    StartAllWorkers();

                    while (!CToken.IsCancellationRequested)
                    {
                        string newLine = serial.ReadLine();

                        string message = ReadMessage(newLine);

                        SPClass serialPortClassWhichMessageHasBeenSentTo = ReadPrefixAndChooseClass(newLine);

                        SendMessageToWorker(serialPortClassWhichMessageHasBeenSentTo, message);

                        Thread.Sleep(100);

                        Helper.NLogger.Debug("\n\n");
                    }
                }
            }
            catch (Exception ex)
            {
                Helper.NLogger.Error($"\n{ex.Message} \n{ex.InnerException}\n{ex.StackTrace}\n");
                ExceptionOccurred?.Invoke(this, new EventArgs());
            }
        }
 private void RemoveWorkerFromCollection(SPClass workerClass)
 {
     serialPortWorkers.Remove(workerClass);
 }