private bool insert(AssembleaDTO dto, out Assemblea item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { var esercizio = daoFactory.GetEsercizioDao().GetById(dto.IdEsercizio, false); item = new Assemblea(esercizio, dto.Tipo) { DataPrimaConvocazione = dto.DataPrimaConvocazione, DataSecondaConvocazione = dto.DataSecondaConvocazione, Descrizione = dto.Descrizione, Esercizio = daoFactory.GetEsercizioDao().GetById(dto.IdEsercizio, false), LuogoPrimaConvocazione = dto.LuogoPrimaConvocazione, LuogoSecondaConvocazione = dto.LuogoSecondaConvocazione, NoteConvocazione = dto.NoteConvocazione, NoteInterne = dto.NoteInterne, LetteraConvocazione=dto.LetteraConvocazione, VerbalePrimaConvocazione = dto.VerbalePrimaConvocazione, VerbaleSecondaConvocazione = dto.VerbaleSecondaConvocazione, OffLine = dto.OffLine, OffLinePassword = dto.OffLinePassword }; // -------------------------------------------------------- // Ordine del Giorno // -------------------------------------------------------- var rep = new AssembleaOrdineGiornoRepository(_info, _windsorRepository); item.PuntoOrdineGiorno.Clear(); foreach (var puntoOrdineDto in dto.OrdineGiorno) { puntoOrdineDto.IdAssemblea = item.ID; int? idOrdineGiorno = puntoOrdineDto.ID; if ((puntoOrdineDto.Stato == "U") || (puntoOrdineDto.Stato == "I")) idOrdineGiorno = rep.ManageDomainEntity(puntoOrdineDto); var ordineGiorno = daoFactory.GetOrdineGiornoAssembleaDao().GetById(idOrdineGiorno.GetValueOrDefault(), false); item.PuntoOrdineGiorno.Add(ordineGiorno); ordineGiorno.Assemblea = item; } daoFactory.GetAssembleaDao().SaveOrUpdate(item); } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento della assemblea - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return true; }
private bool update(AssembleaDTO dto, out Assemblea item) { bool result; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetAssembleaDao().GetById(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia if (dto.Version == item.Version) { item.Tipo = dto.Tipo; item.DataPrimaConvocazione = dto.DataPrimaConvocazione; item.DataSecondaConvocazione = dto.DataSecondaConvocazione; item.Descrizione = dto.Descrizione; item.Esercizio = daoFactory.GetEsercizioDao().GetById(dto.IdEsercizio, false); item.LuogoPrimaConvocazione = dto.LuogoPrimaConvocazione; item.LuogoSecondaConvocazione = dto.LuogoSecondaConvocazione; item.NoteConvocazione = dto.NoteConvocazione; item.NoteInterne = dto.NoteInterne; item.LetteraConvocazione = dto.LetteraConvocazione; item.VerbalePrimaConvocazione = dto.VerbalePrimaConvocazione; item.VerbaleSecondaConvocazione = dto.VerbaleSecondaConvocazione; item.OffLine = dto.OffLine; item.OffLinePassword = dto.OffLinePassword; // -------------------------------------------------------- // Ordine del Giorno // -------------------------------------------------------- var rep = new AssembleaOrdineGiornoRepository(_info, _windsorRepository); item.PuntoOrdineGiorno.Clear(); foreach (var puntoOrdineDto in dto.OrdineGiorno) { puntoOrdineDto.IdAssemblea = item.ID; int? idOrdineGiorno = puntoOrdineDto.ID; if ((puntoOrdineDto.Stato == "U") || (puntoOrdineDto.Stato == "I")) idOrdineGiorno = rep.ManageDomainEntity(puntoOrdineDto); var ordineGiorno = daoFactory.GetOrdineGiornoAssembleaDao().GetById(idOrdineGiorno.GetValueOrDefault(), false); item.PuntoOrdineGiorno.Add(ordineGiorno); ordineGiorno.Assemblea = item; } result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.ErrorFormat("Errore nel salvataggio della assemblea - DATO PIU' RECENTE - {0} - id:{1}", Utility.GetMethodDescription(), dto.ID); _log.Error("Errore nel salvataggio della assemblea: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"); result = false; } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio della assemblea - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }