public async Task<ActionResult> AddDeviceCreate(string button, UnregisteredDeviceModel model) { bool isModelValid = ModelState.IsValid; bool onlyValidating = (button != null && button.ToLower().Trim() == "check"); if (object.ReferenceEquals(null, model) || (model.GetType() == typeof(object))) { model = new UnregisteredDeviceModel(); } //reset flag model.IsDeviceIdUnique = false; if (model.IsDeviceIdSystemGenerated) { //clear the model state of errors prior to modifying the model ModelState.Clear(); //assign a system generated device Id model.DeviceId = Guid.NewGuid().ToString(); //validate the model isModelValid = TryValidateModel(model); } if (isModelValid) { bool deviceExists = await GetDeviceExistsAsync(model.DeviceId); model.IsDeviceIdUnique = !deviceExists; if (model.IsDeviceIdUnique) { if (!onlyValidating) { return await Add(model); } } else { ModelState.AddModelError("DeviceId", Strings.DeviceIdInUse); } } return PartialView("_AddDeviceCreate", model); }
public async Task<ActionResult> AddDeviceCreate(string button, UnregisteredDeviceModel model) { bool isModelValid = ModelState.IsValid; bool onlyValidating = (button != null && button.ToLower().Trim() == "check"); if (ReferenceEquals(null, model) || (model.GetType() == typeof (object))) { model = new UnregisteredDeviceModel(); } if (_apiRegistrationRepository.IsApiRegisteredInAzure()) { try { List<DeviceModel> devices = await GetDevices(); ViewBag.AvailableIccids = _cellularExtensions.GetListOfAvailableIccids(devices); ViewBag.CanHaveIccid = true; } catch (CellularConnectivityException) { ViewBag.CanHaveIccid = false; } } else { ViewBag.CanHaveIccid = false; } //reset flag model.IsDeviceIdUnique = false; if (model.IsDeviceIdSystemGenerated) { //clear the model state of errors prior to modifying the model ModelState.Clear(); //assign a system generated device Id model.DeviceId = Guid.NewGuid().ToString(); //validate the model isModelValid = TryValidateModel(model); } if (isModelValid) { bool deviceExists = await GetDeviceExistsAsync(model.DeviceId); model.IsDeviceIdUnique = !deviceExists; if (model.IsDeviceIdUnique) { if (!onlyValidating) { return await Add(model); } } else { ModelState.AddModelError("DeviceId", Strings.DeviceIdInUse); } } return PartialView("_AddDeviceCreate", model); }