public async Task <int?> AddUpdateDispositivoUsuario(Dispositivo dispositivo)
        {
            try
            {
                ICollection <Dispositivo> _dispositivos = null;
                Notificacao _notificacao = null;
                int?        _result      = 0;


                using (IUnitOfWork _unitOfWork = new TransactionScopeUnitOfWorkFactory(IsolationLevel.Serializable).Create())
                {
                    if (dispositivo.Notificacao != null)
                    {
                        var notificacaoId = dispositivo.Notificacao.Count > 0 ? dispositivo.Notificacao.FirstOrDefault().NotificacaoId : 0;

                        if (notificacaoId != 0)
                        {
                            _notificacao = await _notificacaoRepository.GetById(notificacaoId);
                        }
                    }

                    _dispositivos = await _dispositivoRepository.Search(p => p.Serial == dispositivo.Serial, x => x.Notificacao);


                    if (_dispositivos != null && _dispositivos.Count() > 0)
                    {
                        var dispositivoEncontrado = _dispositivos.FirstOrDefault();


                        if (dispositivoEncontrado != null && !dispositivoEncontrado.Notificacao.Contains(_notificacao))
                        {
                            dispositivoEncontrado.Notificacao.Add(_notificacao);
                        }
                        _dispositivoRepository.Update(dispositivoEncontrado);

                        _result = _dispositivoRepository.SaveChanges();
                    }
                    else
                    {
                        new List <Notificacao>().Add(_notificacao);

                        dispositivo.Notificacao.Add(_notificacao);
                        _dispositivoRepository.Add(dispositivo);

                        _result = _dispositivoRepository.SaveChanges();
                    }


                    _unitOfWork.Commit();
                }

                return(_result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemple #2
0
 public IActionResult Editar(Dispositivo dispositivo)
 {
     if (ModelState.IsValid)
     {
         _DISREP.Update(dispositivo);
         return(View("Index", _DISREP.List()));
     }
     else
     {
         return(View("Editar", dispositivo));
     }
 }
Exemple #3
0
 public void Put(int Id, [FromBody] Dispositivo dispositivo)
 {
     _DREP.Update(dispositivo);
 }