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); } }
public UnsupportedModelException(ModemModel model) : base($"{Enum.GetName(typeof(ModemModel),model)} is not implemented") { }
public async Task <IActionResult> New(ModemModel model) { model = await Transact(model); return(PartialView("_Form", model)); }
public async Task <IActionResult> ChangeStatus(ModemModel model) { model = await Transact(model, true); return(PartialView("_Form", model)); }
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); }