Esempio n. 1
0
        public IActionResult Edit(SocketEditViewModel model)
        {
            bool isDeviceIdExist = _socketRepository.Sockets.Any(s => s.DeviceId == model.DeviceId &&
                                                                 s.SocketId != model.SocketId);

            if (isDeviceIdExist)
            {
                ModelState.AddModelError("", "This device id is already asigned!");
                return(View(model));
            }

            result = new Dictionary <string, bool?>
            {
                { model.DeviceId, null }
            };

            _mqttAppClient.SubscribeToMany(new string[] { "sockets/" + model.DeviceId });
            _mqttAppClient.Client.MqttMsgPublishReceived += AckReceived;
            _mqttAppClient.Publish(model.DeviceId, "Check");

            System.Threading.Thread.Sleep(1000);

            if (result[model.DeviceId] == null)
            {
                ModelState.AddModelError("", "Failed connection attempt, make shure that socket is connected!");
                return(View(model));
            }

            Socket socket = _mapper.Map <Socket>(model);

            _socketRepository.EditSocket(socket);
            _socketRepository.Savechanges();

            return(RedirectToAction("Index", "Socket"));
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(int id)
        {
            Socket socket = _socketRepository.GetSocketById(id);

            if (socket == null)
            {
                return(new NotFoundResult());
            }

            AuthorizationResult authorizationResult = await _authorizationService
                                                      .AuthorizeAsync(User, socket, Operations.Update);

            if (!authorizationResult.Succeeded)
            {
                return(new ForbidResult());
            }

            SocketEditViewModel socketViewModel = _mapper.Map <SocketEditViewModel>(socket);

            socketViewModel.Rooms = GetRoomsSelectList();

            return(View(socketViewModel));
        }