public async Task <IActionResult> Create([Bind("PlcModelID,Name,IsEnable,CpuType,Ip,Rack,Slot")] PlcModel plcModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(plcModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(plcModel));
        }
예제 #2
0
        public async Task <IActionResult> Create([Bind("Id,Data,PlcName,IndexValue,GazValue")] IndexModel indexModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(indexModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(indexModel));
        }
        public async Task <IActionResult> Create([Bind("UserId,UserName,Password,Nume,Prenume,Rol,IsEnable")] TrackingUser trackingUser)
        {
            if (ModelState.IsValid)
            {
                _context.Add(trackingUser);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(trackingUser));
        }
        public async Task <IActionResult> Create([Bind("DefectID,PlcModelID,TimpStartDefect,TimpStopDefect,IntervalStationare,MotivStationare,DefectFinalizat")] Defect defect)
        {
            if (ModelState.IsValid)
            {
                _context.Add(defect);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["PlcModelID"] = new SelectList(_context.Plcs, "PlcModelID", "Name", defect.PlcModelID);
            return(View(defect));
        }
        public async Task <IActionResult> Create([Bind("TagID,Name,Value,Adress,DataType,PlcModelID")] TagModel tagModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(tagModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["PlcModelID"] = new SelectList(_context.Plcs, "PlcModelID", "Name", tagModel.PlcModelID);
            return(View(tagModel));
        }
예제 #6
0
        public async Task <IActionResult> Create([Bind("ProbaModelId,DataPrelevare,SiglaFurnizor,Sarja,Diametru,Calitate,NumarCuptor,TipTratamentTermic,TipCapBara,Tipproba,UserName,ObservatiiOperator,DataPreluare,DataRaspunsCalitate,NumeUtilizatorCalitate,RezultatProba,KV1,KV2,KV3,Temperatura,DuritateHB,ObservatiiCalitate")] ProbaModel probaModel)
        {
            // Salvez in ViewBag userName si Rol pentru a folosi in View
            ViewBag.UserName = HttpContext.Session.GetString("UserName");
            ViewBag.Rol      = HttpContext.Session.GetString("Rol");
            // Daca nu e logat redirectionez la Pagina de Login
            if (ViewBag.UserName == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (ModelState.IsValid)
            {
                probaModel.DataPrelevare = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");
                _context.Add(probaModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(probaModel));
        }
        private void DoWork(object sender, ElapsedEventArgs e)
        {
            _timer.Stop();
            _timer.Interval = ReadingTimeInterval;
            // logic
            IsRunnungBackgroundService = true;
            LastTimeRunBackgroundWork  = DateTime.Now;
            try
            {
                // Foreach Plc Refresh tag values and write them to DbContext
                foreach (PlcModel plc in _plcService.ListPlcs)
                {
                    // Remake enable plc at every minute
                    _plcService.RemakeEnablePlc(plc);
                    // Return if plc is not enable
                    if (plc.IsEnable)
                    {
                        // Add defect Service logic
                        if (_defectService.IsAvailableDefectService)                                    // if it is enable defectService
                        {
                            _defectService.LogicBrackDowns(_context, plc, _plcService, _reportService); // Add defect to Sql list
                        }
                        var _cancelTasks = new CancellationTokenSource();
                        var task         = Task.Run(() =>
                        {
                            if (_plcService.IsConnectedPlc(plc))   // IsConnected also try to reconnect plc if it is available, and disable plc if it has pingrequestsfail grater than a nr
                            {
                                _plcService.RefreshTagValues(plc); // Refresh value from Plc
                                // _plcService.UpdateDbContextTagsValue(_context, plc.TagsList); // Write to DbContext Tag Values
                            }
                        }, _cancelTasks.Token);
                        if (!task.Wait(TimeSpan.FromSeconds(0.25)))
                        {
                            _cancelTasks.Cancel();                                         // Daca nu mai raspunde in timp util se opreste Task
                        }
                    }
                }
                // Write Async to DbContext
                var _cancelTasks2 = new CancellationTokenSource();
                var task2         = Task.Run(async() =>
                {
                    // Save changes to DbContext
                    await _context.SaveChangesAsync();
                }, _cancelTasks2.Token);
                if (!task2.Wait(TimeSpan.FromSeconds(0.2)))
                {
                    _cancelTasks2.Cancel();                                         // Daca nu mai raspunde in timp util se opreste Task
                }
            }
            catch (InvalidOperationException exCollection)
            {
                // log
                _logger.LogInformation("{data}<=>{Messege}<=>{error}", DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"), "Log error InvalidOperation din DoWork din TimedService: ", exCollection.Message);
            }
            catch (AggregateException exAgreg)
            {
                // log
                _logger.LogInformation("{data}<=>{Messege}<=>{error}", DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"), "Log error Agregate din DoWork din TimedService: ", exAgreg.Message);
            }
            catch (Exception ex)
            {
                // log
                _logger.LogInformation("{data}<=>{Messege}<=>{error}", DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"), "Log error din DoWork din TimedService: ", ex.Message);
            }

            // log
            _logger.LogInformation("{data}<=>{Messege}", DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"), "Doing din while, din DoWork Async TimedService");
            try
            {
                _timer.Start();
            }
            catch (ObjectDisposedException ex)
            {
                _logger.LogInformation("{data}<=>{Messege}<=>{error}", DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss"), "Log error ObjectDisposedException din DoWork din TimedService Timer disposed: ", ex.Message);
            }
        }