public void Handle(MessaInLavorazioneCommand command) { RichiestaAssistenza richiesta = _getRichiestaById.Get(command.IdRichiesta); Utente utente = _getUtenteById.GetUtenteById(command.IdUtente); AttivitaUtente attivita = new AttivitaUtente(); attivita.IdUtente = utente.Id; attivita.Nominativo = utente.Nome + " " + utente.Cognome; attivita.DataInizioAttivita = DateTime.UtcNow; if (richiesta.ListaUtentiInLavorazione != null) { richiesta.ListaUtentiInLavorazione.Add(attivita); } else { richiesta.ListaUtentiInLavorazione = new List <AttivitaUtente>(); richiesta.ListaUtentiInLavorazione.Add(attivita); } if (command.Chiamata.ListaUtentiInLavorazione != null) { command.Chiamata.ListaUtentiInLavorazione.Add(attivita); } else { command.Chiamata.ListaUtentiInLavorazione = new List <AttivitaUtente>(); command.Chiamata.ListaUtentiInLavorazione.Add(attivita); } richiesta.Id = richiesta.Codice; this._upDateRichiestaAssistenza.UpDate(richiesta); }
private List <AttivitaUtente> MapUtenteAttivita(RichiestaAssistenza richiesta, string Tipo) { List <AttivitaUtente> ListaAttivita = new List <AttivitaUtente>(); if (Tipo.Equals("P")) { foreach (var presaInCarico in richiesta.UtPresaInCarico) { AttivitaUtente attivita = new AttivitaUtente() { Nominativo = presaInCarico.Replace(".", " ") }; ListaAttivita.Add(attivita); } ; } else { foreach (var lavorazione in richiesta.UtInLavorazione) { AttivitaUtente attivita = new AttivitaUtente() { Nominativo = lavorazione.Replace(".", " ") }; ListaAttivita.Add(attivita); } ; } return(ListaAttivita); }
private List <AttivitaUtente> MapUtenteAttivita(RichiestaAssistenza richiesta, string Tipo) { List <AttivitaUtente> ListaAttivita = new List <AttivitaUtente>(); if (Tipo.Equals("P")) { foreach (var evento in richiesta.Eventi) { if (!(evento is Telefonata) && !(evento is AssegnazionePriorita)) { var utente = _getUtenteById.GetUtenteByCodice(evento.CodiceFonte); AttivitaUtente attivita = new AttivitaUtente() { Nominativo = utente.Nome + " " + utente.Cognome, DataInizioAttivita = evento.Istante, IdUtente = evento.CodiceFonte }; if (evento is AnnullamentoPresaInCarico) { var attivitaToDelete = ListaAttivita.Where(x => x.Nominativo.Equals(attivita.Nominativo)).ToList(); if (attivitaToDelete.Count > 0) { ListaAttivita.Remove(attivitaToDelete[0]); } } else if (ListaAttivita.Where(x => x.Nominativo.Equals(attivita.Nominativo) && x.DataInizioAttivita <= attivita.DataInizioAttivita).ToList().Count > 0) { var attivitaToDelete = ListaAttivita.Where(x => x.Nominativo.Equals(attivita.Nominativo) && x.DataInizioAttivita <= attivita.DataInizioAttivita).ToList(); ListaAttivita.Remove(attivitaToDelete[0]); ListaAttivita.Add(attivita); } else { ListaAttivita.Add(attivita); } } } } else { foreach (var lavorazione in richiesta.UtInLavorazione) { AttivitaUtente attivita = new AttivitaUtente() { Nominativo = lavorazione.Replace(".", " ") }; ListaAttivita.Add(attivita); } ; } return(ListaAttivita); }
public void Handle(RimozioneInLavorazioneCommand command) { var richiesta = _getRichiestaById.GetById(command.IdRichiesta); var utente = _getUtenteById.GetUtenteByCodice(command.IdUtente); var attivita = new AttivitaUtente(); var nominativo = utente.Nome + "." + utente.Cognome; richiesta.UtInLavorazione.RemoveAll(x => x == nominativo); _updateRichiestaAssistenza.UpDate(richiesta); }
public void Handle(RimozioneInLavorazioneCommand command) { var richiesta = _getRichiestaById.GetById(command.IdRichiesta); var attivita = new AttivitaUtente(); richiesta.UtInLavorazione.RemoveAll(x => x == command.IdUtente); //if (command.Chiamata.ListaUtentiInLavorazione != null) // command.Chiamata.ListaUtentiInLavorazione = richiesta.UtInLavorazione; //else //{ // if (richiesta.UtInLavorazione.Count > 0) // { // command.Chiamata.ListaUtentiInLavorazione = new List<AttivitaUtente>(); // command.Chiamata.ListaUtentiInLavorazione = richiesta.UtInLavorazione; // } //} _updateRichiestaAssistenza.UpDate(richiesta); }
public void Handle(PresaInCaricoCommand command) { var richiesta = _getRichiestaById.Get(command.IdRichiesta); var utente = _getUtenteById.GetUtenteById(command.IdUtente); var attivita = new AttivitaUtente { IdUtente = utente.Id, Nominativo = utente.Nome + " " + utente.Cognome, DataInizioAttivita = DateTime.UtcNow }; richiesta.Id = richiesta.Codice; if (richiesta.ListaUtentiPresaInCarico != null) { new InizioPresaInCarico(richiesta, DateTime.UtcNow, richiesta.Operatore.Id); richiesta.ListaUtentiPresaInCarico.Add(attivita); } else { richiesta.ListaUtentiPresaInCarico = new List <AttivitaUtente> { attivita }; } if (command.Chiamata.ListaUtentiPresaInCarico != null) { command.Chiamata.ListaUtentiPresaInCarico.Add(attivita); } else { richiesta.ListaUtentiPresaInCarico = new List <AttivitaUtente>(); command.Chiamata.ListaUtentiPresaInCarico.Add(attivita); } _updateRichiestaAssistenza.UpDate(richiesta); }
public void Handle(RimozioneInLavorazioneCommand command) { var richiesta = _getRichiestaById.Get(command.IdRichiesta); var attivita = new AttivitaUtente(); richiesta.ListaUtentiInLavorazione.RemoveAll(x => x.IdUtente == command.IdUtente); richiesta.Id = richiesta.Codice; if (command.Chiamata.ListaUtentiInLavorazione != null) { command.Chiamata.ListaUtentiInLavorazione = richiesta.ListaUtentiInLavorazione; } else { if (richiesta.ListaUtentiInLavorazione.Count > 0) { command.Chiamata.ListaUtentiInLavorazione = new List <AttivitaUtente>(); command.Chiamata.ListaUtentiInLavorazione = richiesta.ListaUtentiInLavorazione; } } _updateRichiestaAssistenza.UpDate(richiesta); }
/// <summary> /// Query che estrae i valori dei Box presenti in Home Page /// </summary> /// <param name="command">Filtri utilizzati per l'estrazione</param> /// <returns>Elenco dei mezzi disponibili</returns> public void Handle(ConfermaPartenzeCommand command) { /// preparazione del DTO var stato_mezzo = _getStatoMezzi.Get(new string[] { command.ConfermaPartenze.CodiceSede }); foreach (var partenza in command.ConfermaPartenze.Partenze) { var listaMezzi = _getStatoMezzi.Get(new string[] { command.ConfermaPartenze.CodiceSede }, partenza.Mezzo.Codice); if (listaMezzi.Count > 0) { if (listaMezzi[0].IdOpPrenotazione != null && !listaMezzi[0].IdOpPrenotazione.Equals(command.ConfermaPartenze.IdOperatore)) { throw new Exception(Costanti.MezzoErroreGiaOccupato); } } } var attivita = new AttivitaUtente(); var idComposizioneDaSganciare = 0; var StatoInViaggio = 0; var StatoSulPosto = 0; bool PartenzaEsistente = false; foreach (var partenza in command.ConfermaPartenze.Partenze) { PartenzaEsistente = command.Richiesta.Partenze.Select(x => x.Partenza.Mezzo.Codice.Equals(partenza.Mezzo.Codice) && !x.Partenza.Terminata && !x.Partenza.PartenzaAnnullata && !x.Partenza.Sganciata).FirstOrDefault(); if (PartenzaEsistente) { throw new Exception(Costanti.PartenzaGiaPresente); } } #region SGANCIAMENTO if (command.ConfermaPartenze.IdRichiestaDaSganciare != null) { command.RichiestaDaSganciare = _getRichiestaById.GetByCodice(command.ConfermaPartenze.IdRichiestaDaSganciare); foreach (var composizione in command.RichiestaDaSganciare.Eventi.Where(x => x is ComposizionePartenze).ToList()) { var CompPartenza = ((ComposizionePartenze)composizione).Partenza; if (!CompPartenza.PartenzaAnnullata && !CompPartenza.Terminata && !CompPartenza.Sganciata && !CompPartenza.Mezzo.Stato.Equals(Costanti.MezzoInRientro)) { if (CompPartenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { CompPartenza.Sganciata = true; } if (CompPartenza.Mezzo.Stato == Costanti.MezzoInViaggio && !CompPartenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { StatoInViaggio++; } if (CompPartenza.Mezzo.Stato == Costanti.MezzoSulPosto && !CompPartenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { StatoSulPosto++; } idComposizioneDaSganciare++; } } foreach (var composizione in command.RichiestaDaSganciare.Partenze) { if (composizione.Partenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { composizione.Partenza.Sganciata = true; } } if (idComposizioneDaSganciare == 1) { command.RichiestaDaSganciare.SincronizzaStatoRichiesta(Costanti.RichiestaSospesa, command.RichiestaDaSganciare.StatoRichiesta, command.RichiestaDaSganciare.CodOperatore, "", DateTime.UtcNow); } else { if (StatoSulPosto > 0) { command.RichiestaDaSganciare.SincronizzaStatoRichiesta(Costanti.RichiestaPresidiata, command.RichiestaDaSganciare.StatoRichiesta, command.RichiestaDaSganciare.CodOperatore, "", DateTime.UtcNow); } else if (StatoInViaggio > 0) { command.RichiestaDaSganciare.SincronizzaStatoRichiesta(Costanti.RichiestaAssegnata, command.RichiestaDaSganciare.StatoRichiesta, command.RichiestaDaSganciare.CodOperatore, "", DateTime.UtcNow); } } //new RevocaPerRiassegnazione(richiesta, richiestaDaSganciare, command.ConfermaPartenze.IdMezzoDaSganciare, DateTime.UtcNow, richiesta.CodOperatore); _updateRichiestaAssistenza.UpDate(command.RichiestaDaSganciare); } #endregion SGANCIAMENTO if (command.Richiesta.Eventi.Where(x => x is InizioPresaInCarico).ToList().Count == 0) { new InizioPresaInCarico(command.Richiesta, DateTime.UtcNow, command.Utente.Id); } foreach (var partenza in command.ConfermaPartenze.Partenze) { partenza.Sganciata = false; new ComposizionePartenze(command.Richiesta, DateTime.UtcNow, command.Utente.Id, false) { Partenza = partenza }; } command.Richiesta.SincronizzaStatoRichiesta(Costanti.RichiestaAssegnata, command.Richiesta.StatoRichiesta, command.Utente.Id, "", DateTime.UtcNow); command.ConfermaPartenze.richiesta = command.Richiesta; var sedeRichiesta = command.Richiesta.CodSOCompetente; if (command.Richiesta.CodRichiesta == null) { command.Richiesta.CodRichiesta = _generaCodiceRichiesta.Genera(sedeRichiesta, DateTime.UtcNow.Year); } foreach (var partenza in command.ConfermaPartenze.Partenze) { partenza.Mezzo.IdRichiesta = command.Richiesta.Id; } var nominativo = command.Utente.Nome + "." + command.Utente.Cognome; if (command.Richiesta.UtPresaInCarico != null) { command.Richiesta.UtPresaInCarico.Add(nominativo); } else { command.Richiesta.UtPresaInCarico = new List <String> { nominativo }; } foreach (var partenza in command.ConfermaPartenze.Partenze) { foreach (var squadra in partenza.Squadre) { squadra.Stato = MappaStatoSquadraDaStatoMezzo.MappaStato(partenza.Mezzo.Stato); } } int ContatorePartenze = 1; foreach (var partenza in command.Richiesta.Partenze) { if (partenza.Partenza.Codice == 0) { partenza.Partenza.Codice = ContatorePartenze; } ContatorePartenze++; } command.ConfermaPartenze.IdRichiesta = command.Richiesta.Id; var confermaPartenze = _updateConfermaPartenze.Update(command); command.ConfermaPartenze.CodiceSede = confermaPartenze.CodiceSede; }
/// <summary> /// Query che estrae i valori dei Box presenti in Home Page /// </summary> /// <param name="query">Filtri utilizzati per l'estrazione</param> /// <returns>Elenco dei mezzi disponibili</returns> public void Handle(ConfermaPartenzeCommand command) { /// preparazione del DTO var richiesta = _getRichiestaById.Get(command.ConfermaPartenze.IdRichiesta); var richiestaDaSganciare = new RichiestaAssistenza(); var attivita = new AttivitaUtente(); var idComposizioneDaSganciare = 0; ///Gestione Sganciamento if (command.ConfermaPartenze.IdRichiestaDaSganciare != null) { richiestaDaSganciare = _getRichiestaById.Get(command.ConfermaPartenze.IdRichiestaDaSganciare); foreach (var composizione in richiestaDaSganciare.Eventi.Where(x => x is ComposizionePartenze).ToList()) { if (((ComposizionePartenze)composizione).Partenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { ((ComposizionePartenze)composizione).Partenza.Sganciata = true; } idComposizioneDaSganciare++; } foreach (var composizione in richiestaDaSganciare.Partenze) { if (composizione.Partenza.Mezzo.Codice.Equals(command.ConfermaPartenze.IdMezzoDaSganciare)) { composizione.Partenza.Sganciata = true; } } if (idComposizioneDaSganciare == 1) { richiestaDaSganciare.SincronizzaStatoRichiesta(Costanti.RichiestaSospesa, richiestaDaSganciare.StatoRichiesta, richiestaDaSganciare.Operatore.Id, ""); } //new RevocaPerRiassegnazione(richiesta, richiestaDaSganciare, command.ConfermaPartenze.IdMezzoDaSganciare, DateTime.UtcNow, richiesta.Operatore.Id); _updateRichiestaAssistenza.UpDate(richiestaDaSganciare); } if (richiesta.Eventi.Where(x => x is InizioPresaInCarico).ToList().Count == 0) { new InizioPresaInCarico(richiesta, DateTime.UtcNow, richiesta.Operatore.Id); } foreach (var partenza in command.ConfermaPartenze.Partenze) { new ComposizionePartenze(richiesta, DateTime.UtcNow, richiesta.Operatore.Id, false) { Partenza = partenza }; } richiesta.SincronizzaStatoRichiesta(Costanti.RichiestaAssegnata, richiesta.StatoRichiesta, richiesta.Operatore.Id, ""); richiesta.Id = command.ConfermaPartenze.IdRichiesta; command.ConfermaPartenze.richiesta = richiesta; var sedeRichiesta = command.ConfermaPartenze.richiesta.Operatore.Sede.Codice; richiesta.CodiceRichiesta = _generaCodiceRichiesta.Genera(sedeRichiesta, DateTime.UtcNow.Year); foreach (var partenza in command.ConfermaPartenze.Partenze) { partenza.Mezzo.IdRichiesta = richiesta.CodiceRichiesta; } attivita.IdUtente = command.ConfermaPartenze.richiesta.Operatore.Id; attivita.Nominativo = command.ConfermaPartenze.richiesta.Operatore.Nome + " " + command.ConfermaPartenze.richiesta.Operatore.Cognome; attivita.DataInizioAttivita = DateTime.UtcNow; if (richiesta.ListaUtentiPresaInCarico != null) { richiesta.ListaUtentiPresaInCarico.Add(attivita); } else { richiesta.ListaUtentiPresaInCarico = new List <AttivitaUtente> { attivita }; } foreach (var partenze in command.ConfermaPartenze.Partenze) { foreach (var squadra in partenze.Squadre) { squadra.Stato = MappaStatoSquadraDaStatoMezzo.MappaStato(partenze.Mezzo.Stato); } } var confermaPartenze = _updateConfermaPartenze.Update(command); command.ConfermaPartenze.CodiceSede = confermaPartenze.CodiceSede; }