public string saveTipoPratica(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory) { try { string message = string.Empty; if (!string.IsNullOrEmpty(elemento.DescrizioneBreve)) { TipoPratica item; if (elemento.Id > 0) item = daoFactory.GetTipoPraticaDao().Find(elemento.Id, false); else { item = new TipoPratica(elemento.DescrizioneBreve, elemento.Descrizione); daoFactory.GetTipoPraticaDao().SaveOrUpdate(item); } if (item != null) { if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update) { var descrizioneBreve = elemento.DescrizioneBreve; if (!string.IsNullOrEmpty(descrizioneBreve) && descrizioneBreve.Length > 3) descrizioneBreve = descrizioneBreve.Substring(0, 3); item.Descrizione = elemento.Descrizione; item.Codice = descrizioneBreve; item.Azienda = azienda; } else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete) { var numeroPratiche = daoFactory.GetPraticaDao().GetCountByTipo(item.ID); if (numeroPratiche == 0) daoFactory.GetTipoPraticaDao().Delete(item); else return $"Non è possibile eliminare il tipo pratica perchè sono presenti {numeroPratiche} pratiche collegate"; } } } else message = "E' obbligatorio il codice pratica"; return message; } catch (Exception ex) { _log.Error("Errore nel salvataggio del tipo di pratica: " + Utility.GetMethodDescription() + " - id:" + elemento.Id, ex); throw; } }