public string saveTipoContratto(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory) { try { var message = string.Empty; TipoContratto item; if (elemento.Id > 0) item = daoFactory.GetTipoContrattoDao().Find(elemento.Id, false); else { item = new TipoContratto(elemento.Descrizione); daoFactory.GetTipoContrattoDao().SaveOrUpdate(item); } if (item != null) { if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update) { item.Descrizione = elemento.Descrizione; item.Azienda = azienda; } else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete) { var count = daoFactory.GetContrattoAppaltoDao().GetCountByTipoContratto(elemento.Id); if(count == 0) daoFactory.GetTipoContrattoDao().Delete(item); else message += $"Sono presenti {count} contratti del tipo '{item.Descrizione}'" + Environment.NewLine; } } return message; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del tipo contratto - {0} - id:{1}", ex, Utility.GetMethodDescription(), elemento.Id); throw; } }