public string saveTipoUnitaImmobiliare(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory) { try { var message = string.Empty; TipoUnitaImmobiliare item; if (elemento.Id > 0) item = daoFactory.GetTipoUnitaImmobiliareDao().Find(elemento.Id, false); else { item = new TipoUnitaImmobiliare(elemento.Descrizione) {Ordine = elemento.Ordine}; daoFactory.GetTipoUnitaImmobiliareDao().SaveOrUpdate(item); } if (item != null) { if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update) { item.Descrizione = elemento.Descrizione; item.CodiceAzienda = azienda.ID; item.Ordine = elemento.Ordine; } else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete) { if (!isAllowDeleteTipoUnita(daoFactory, item.ID)) return "Non è possibile eliminare il tipo di unità immobiliare perchè sono presenti unità immobiliari associate."; daoFactory.GetTipoUnitaImmobiliareDao().Delete(item); } } return message; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del tipo di Unità Immobiliare - {0} - id:{1}", ex, Utility.GetMethodDescription(), elemento.Id); throw; } }
private bool isAllowDeleteTipoUnita(IDaoFactory daoFactory, int id) { return daoFactory.GetTipoUnitaImmobiliareDao().GetCountByTipoUnita(id) == 0; }