예제 #1
0
        public IActionResult New()
        {
            ModemModel model = new ModemModel
            {
                FormType      = Global.FormType.Create,
                UserHandler   = _userHandler,
                IsRecordOwner = true
            };

            return(View("Form", model));
        }
        public async Task <ModemReport> ParseStatus(ModemModel model)
        {
            switch (model)
            {
            case ModemModel.SB6183:
                var modelProcessor = new SB6183();
                return(await modelProcessor.Process(WebClient));

            default:
                throw new UnsupportedModelException(model);
            }
        }
예제 #3
0
 public UnsupportedModelException(ModemModel model) : base($"{Enum.GetName(typeof(ModemModel),model)} is not implemented")
 {
 }
예제 #4
0
        public async Task <IActionResult> New(ModemModel model)
        {
            model = await Transact(model);

            return(PartialView("_Form", model));
        }
예제 #5
0
        public async Task <IActionResult> ChangeStatus(ModemModel model)
        {
            model = await Transact(model, true);

            return(PartialView("_Form", model));
        }
예제 #6
0
        private async Task <ModemModel> Transact(ModemModel model, bool changeStatus = false)
        {
            model.FormBehavior = new FormBehavior();
            model.UserHandler  = _userHandler;
            try
            {
                var record = _mapper.Map <ModemModel, GSMModem>(model);
                if (model.FormType == Global.FormType.Create)
                {
                    if (ModelState.IsValid)
                    {
                        _context.GSMModem.Add(record);
                        await _context.SaveChangesAsync();

                        model.FormBehavior = new FormBehavior
                        {
                            PageRedirect = new PageRedirect
                            {
                                Reload = true,
                                URL    = Url.Action("Form", "Modem", new { @id = record.Id })
                            }
                        };
                    }
                    model.IsRecordOwner = true;
                }
                else if (model.FormType == Global.FormType.Update || model.FormType == Global.FormType.ReadOnly)
                {
                    var dbRecord = _context.GSMModem.Find(model.Id);

                    if (changeStatus)
                    {
                        ModelState.Clear();
                        var status = dbRecord.Status == Enums.Status.Active ?
                                     Enums.Status.Inactive : Enums.Status.Active;
                        dbRecord.Status = status;
                        _context.GSMModem.Update(dbRecord);
                        await _context.SaveChangesAsync();

                        model.FormBehavior = new FormBehavior
                        {
                            PageRedirect = new PageRedirect
                            {
                                Reload = true,
                                URL    = Url.Action("Form", "Modem", new { @id = model.Id })
                            }
                        };
                    }
                    else if (model.FormType == Global.FormType.Update)
                    {
                        if (ModelState.IsValid)
                        {
                            dbRecord.PortName     = model.PortName;
                            dbRecord.BaudRate     = model.BaudRate;
                            dbRecord.ReadTimeout  = model.ReadTimeout;
                            dbRecord.WriteTimeout = model.WriteTimeout;
                            dbRecord.GSMStatus    = model.GSMStatus;
                            _context.GSMModem.Update(dbRecord);
                            await _context.SaveChangesAsync();

                            model.FormBehavior.Notification = new Notification
                            {
                                IsError = false,
                                Message = "Changes successfuly saved.",
                                Title   = "Modem"
                            };
                        }
                    }

                    model.IsRecordOwner = dbRecord.CreatedBy == _userHandler.User.Id;
                }
            }
            catch (Exception ex)
            {
                model.FormBehavior.Notification = new Notification
                {
                    IsError = true,
                    Message = ex.Message,
                    Title   = "Modem"
                };
            }
            return(model);
        }