public async Task SendNotification(UpdateEnteCommand command) { var SediDaNotificare = new List <string>(); if (command.Ente.Ricorsivo) { SediDaNotificare = _getGerarchiaToSend.Get(command.CodiceSede[0]); } else { SediDaNotificare.Add(command.CodiceSede[0]); } var count = _getRurbica.CountBylstCodiciSede(SediDaNotificare.ToArray()); var lstEnti = _getRurbica.Get(command.CodiceSede, null); var Ente = lstEnti.Find(c => c.Id == command.Ente.Id); foreach (var sede in SediDaNotificare) { await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyUpdateEnte", new { Pagination = new Paginazione() { TotalItems = count }, Data = Ente }); await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyChangeEnti", lstEnti); } }
public async Task <IActionResult> Update(EnteIntervenuto ente) { try { var command = new UpdateEnteCommand() { CodiceSede = Request.Headers["codicesede"].ToString().Split(','), idOperatore = Request.Headers["IdUtente"], Ente = ente }; _updateEnteHandler.Handle(command); return(Ok()); } catch (Exception ex) { if (ex.Message.Contains(Costanti.UtenteNonAutorizzato)) { return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato })); } else { return(BadRequest(ex)); } } }
public IEnumerable <AuthorizationResult> Authorize(UpdateEnteCommand command) { var username = _currentUser.Identity.Name; var user = _findUserByUsername.FindUserByUs(username); if (_currentUser.Identity.IsAuthenticated) { if (user == null) { yield return(new AuthorizationResult(Costanti.UtenteNonAutorizzato)); } else { Boolean abilitato = false; foreach (var ruolo in user.Ruoli) { if (_getAutorizzazioni.GetAutorizzazioniUtente(user.Ruoli, command.Ente.CodSede, Costanti.GestoreChiamate)) { abilitato = true; } if (_getAutorizzazioni.GetAutorizzazioniUtente(user.Ruoli, command.Ente.CodSede, Costanti.GestoreRichieste)) { abilitato = true; } } if (!abilitato) { yield return(new AuthorizationResult(Costanti.UtenteNonAutorizzato)); } } } else { yield return(new AuthorizationResult(Costanti.UtenteNonAutorizzato)); } }