Esempio n. 1
0
        public string saveTipoImpianto(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                var message = string.Empty;

                TipoImpianto item;
                if (elemento.Id > 0)
                    item = daoFactory.GetTipoImpiantoDao().Find(elemento.Id, false);
                else
                {
                    item = new TipoImpianto(elemento.Descrizione) { Ordine = elemento.Ordine };
                    daoFactory.GetTipoImpiantoDao().SaveOrUpdate(item);
                }

                if (item != null)
                {
                    if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update)
                    {
                        item.Nome = elemento.Descrizione;
                        item.IdAzienda = azienda.ID;
                        item.Ordine = elemento.Ordine;
                    }
                    else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                        daoFactory.GetTipoImpiantoDao().Delete(item);
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del tipo di impianto - {0} - id:{1}", ex, Utility.GetMethodDescription(), elemento.Id);
                throw;
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        public string saveGruppo(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                var message = string.Empty;

                Gruppo item;
                if (elemento.Id > 0)
                    item = daoFactory.GetGruppoDao().Find(elemento.Id, false);
                else
                {
                    item = new Gruppo(elemento.Descrizione) {Codice = elemento.AltriDati, DescrizioneBreve = elemento.DescrizioneBreve, Ordine = elemento.Ordine };
                    daoFactory.GetGruppoDao().SaveOrUpdate(item);
                }

                if (item != null)
                {
                    if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update)
                    {
                        var descrizioneBreve = elemento.DescrizioneBreve;
                        if (!string.IsNullOrEmpty(descrizioneBreve) && descrizioneBreve.Length > 20)
                            descrizioneBreve = descrizioneBreve.Substring(0, 20);

                        var codice = elemento.AltriDati;
                        if (!string.IsNullOrEmpty(codice) && codice.Length > 10)
                            codice = codice.Substring(0, 10);

                        item.Codice = codice;
                        item.Descrizione = elemento.Descrizione;
                        item.DescrizioneBreve = descrizioneBreve;
                        item.Ordine = elemento.Ordine;
                        item.Azienda = azienda;
                    }
                    else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                        daoFactory.GetGruppoDao().Delete(item);
                }

                return message;
            }
            catch (Exception ex)
            {
                
                _log.Error($"Errore nel salvataggio del gruppo - {Utility.GetMethodDescription()} - id:{elemento.Id}", ex);
                throw;
            }
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        public string saveTipoFornitore(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                string message = string.Empty;

                TipoFornitore item;
                if (elemento.Id > 0)
                    item = daoFactory.GetTipoFornitoreDao().Find(elemento.Id, false);
                else
                {
                    item = new TipoFornitore(elemento.Descrizione);
                    daoFactory.GetTipoFornitoreDao().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)
                        daoFactory.GetTipoFornitoreDao().Delete(item);
                }

                return message;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel salvataggio del tipo Fornitore: " + Utility.GetMethodDescription() + " - id:" + elemento.Id, ex);
                throw;
            }
        }
Esempio n. 6
0
        public IList<TestataTabellaSempliceDTO> GetAll(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var listaDto = new List<TestataTabellaSempliceDTO>(10);

                // Modalità di pagamento
                var tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.ModalitaPagamento, Descrizione = "Modalità di pagamento" };
                listaDto.Add(tab);
                var listaModPag = daoFactory.GetModalitaPagamentoDao().GetByAzienda(idAzienda);
                var listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaModPag.Count);
                listaElementiDto.AddRange(listaModPag.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione, 
                    DescrizioneBreve = item.DescrizioneBreve, AltriDati = string.Empty, 
                    Ordine = item.Ordine, 
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;
                
                // Tipo Fornitore
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoFornitore, Descrizione = "Tipo Fornitore" };
                listaDto.Add(tab);
                var listaTipoFornitore = daoFactory.GetTipoFornitoreDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoFornitore.Count);
                foreach (var item in listaTipoFornitore)
                {
                    var fornitori = daoFactory.GetFornitoreDao().GetByTipo(item.ID);
                    var dto = new DettaglioTabellaSempliceDTO
                        {
                            Id = item.ID,
                            Descrizione = item.Descrizione,
                            AltriDati = item.Appaltatore ? "Appalti" : string.Empty,
                            AllowUpdate = (item.Azienda != null),
                            AllowDelete = (item.Azienda != null && fornitori.Count == 0)
                        };
                    listaElementiDto.Add(dto);
                }
                tab.Elementi = listaElementiDto;

                // Gruppo
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.Gruppo, Descrizione = "Gruppo" };
                listaDto.Add(tab);
                var listaGruppo = daoFactory.GetGruppoDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaGruppo.Count);
                listaElementiDto.AddRange(listaGruppo.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID,
                    Descrizione = item.Descrizione,
                    DescrizioneBreve = item.DescrizioneBreve,
                    Ordine = item.Ordine,
                    AltriDati = item.Codice,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Contratto
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoContratto, Descrizione = "Tipo Contratto" };
                listaDto.Add(tab);
                var listaTipoContratto = daoFactory.GetTipoContrattoDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoContratto.Count);
                listaElementiDto.AddRange(listaTipoContratto.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Ordine Del Giorno
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoOrdineDelGiorno, Descrizione = "Tipo Ordine Del Giorno" };
                listaDto.Add(tab);
                var listaTipoOrdineDelGiorno = daoFactory.GetTipoOrdineDelGiornoDao().GetAll();
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoOrdineDelGiorno.Count);
                listaElementiDto.AddRange(listaTipoOrdineDelGiorno.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID,
                    Descrizione = item.Descrizione,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Frasi
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.ModelliFrasi, Descrizione = "Frasi" };
                listaDto.Add(tab);
                var listaModelliFrasi = daoFactory.GetModelloFraseDao().GetAll();
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaModelliFrasi.Count);
                listaElementiDto.AddRange(listaModelliFrasi.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID,
                    Descrizione = Conversione.RtfToString(item.Testo),
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Impianto
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoImpianto, Descrizione = "Tipo Impianto" };
                listaDto.Add(tab);
                var listaTipoImpianto = GetTipoImpiantoByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoImpianto.Count);
                listaElementiDto.AddRange(listaTipoImpianto.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID,
                    Descrizione = item.Nome,
                    Ordine = item.Ordine,
                    AllowUpdate = item.IsUpdateAllow,
                    AllowDelete = item.IsDeleteAllow
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Unità Immobiliare
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoUnitaImmobiliare, Descrizione = "Tipo Unità Immobiliare" };
                listaDto.Add(tab);
                var listaTipoUnitaImmobiliare = GetTipoUnitaImmobiliareByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoUnitaImmobiliare.Count);
                listaElementiDto.AddRange(listaTipoUnitaImmobiliare.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione, 
                    Ordine = item.Ordine, 
                    AllowUpdate = item.IsUpdateAllow,
                    AllowDelete = item.IsDeleteAllow
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Pratica
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoPratica, Descrizione = "Tipo Pratica" };
                listaDto.Add(tab);
                var listaTipoPratica = daoFactory.GetTipoPraticaDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoPratica.Count);
                listaElementiDto.AddRange(listaTipoPratica.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione, 
                    DescrizioneBreve = item.Codice,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Attività
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoAttivita, Descrizione = "Tipo Attività" };
                listaDto.Add(tab);
                var listaTipoAttivita = daoFactory.GetTipoAttivitaDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoAttivita.Count);
                listaElementiDto.AddRange(listaTipoAttivita.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione, 
                    DescrizioneBreve = item.Codice,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Tipo Alert
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.TipoAlert, Descrizione = "Tipo Alert" };
                listaDto.Add(tab);
                var listaTipoAlert = daoFactory.GetTipoAlertDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaTipoAlert.Count);
                listaElementiDto.AddRange(listaTipoAlert.Select(item => new DettaglioTabellaSempliceDTO
                {
                    Id = item.ID, Descrizione = item.Descrizione,
                    AllowUpdate = (item.Azienda != null),
                    AllowDelete = (item.Azienda != null)
                }));
                tab.Elementi = listaElementiDto;

                // Causali Contabili
                tab = new TestataTabellaSempliceDTO { Tipo = Gipasoft.Sfera.Enums.TipoTabellaSempliceEnum.CausaleContabile, Descrizione = "Causali Contabili" };
                listaDto.Add(tab);
                var listaCausaliContabili = daoFactory.GetCausaleContabileDao().GetByAzienda(idAzienda);
                listaElementiDto = new List<DettaglioTabellaSempliceDTO>(listaCausaliContabili.Count);
                foreach (var item in listaCausaliContabili)
                {
                    var dto = new DettaglioTabellaSempliceDTO
                    {
                        Id = item.ID,
                        Descrizione = item.Descrizione,
                        DescrizioneBreve = item.Codice,
                        Ordine = item.Ordine,
                        AllowUpdate = (item.Azienda != null),
                        AllowDelete = (item.Azienda != null)
                    };

                    var altriDati = string.Empty;
                    foreach (var causaleConto in item.Conti)
                    { 
                        var conto = daoFactory.GetPianoContiDao().GetByCodice(idAzienda, causaleConto.CodiceConto);
                        altriDati += conto.Descrizione + Environment.NewLine;
                    }
                    dto.AltriDati = altriDati;

                    listaElementiDto.Add(dto);
                }
                tab.Elementi = listaElementiDto;

                return listaDto;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel caricamento delle Casuali Contabili: " + Utility.GetMethodDescription() + " - azienda:" + idAzienda, ex);
                throw;
            }
        }
Esempio n. 7
0
        public string saveModalitaPagamento(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                var message = string.Empty;

                ModalitaPagamento item;
                if (elemento.Id > 0)
                    item = daoFactory.GetModalitaPagamentoDao().Find(elemento.Id, false);
                else
                {
                    item = new ModalitaPagamento(elemento.Descrizione, elemento.DescrizioneBreve) {Azienda = azienda};
                    daoFactory.GetModalitaPagamentoDao().SaveOrUpdate(item);
                }

                if (item != null)
                {
                    if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update)
                    {
                        item.Descrizione = elemento.Descrizione;
                        item.DescrizioneBreve = elemento.DescrizioneBreve;
                        item.Azienda = azienda;
                        item.Ordine = elemento.Ordine;
                    }
                    else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                    {
                        var numeroPagamenti = daoFactory.GetPagamentoDao().GetCountByModalitaPagamento(elemento.Id);
                        if (numeroPagamenti == 0)
                            daoFactory.GetModalitaPagamentoDao().Delete(item);
                        else
                            message += $"Sono presenti {numeroPagamenti} pagamenti con la modalità '{item.Descrizione}'";
                    }
                }

                return message;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel salvataggio della modalità di pagamento: " + Utility.GetMethodDescription() + " - id:" + elemento.Id, ex);
                throw;
            }
        }
Esempio n. 8
0
        public string saveCausaleContabile(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                string message = string.Empty;

                if (operation != Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                {
                    if (!string.IsNullOrEmpty(elemento.DescrizioneBreve))
                    {
                        if (elemento.DescrizioneBreve.Length > 2)
                            message = "Il codice della causale NON può essere più lungo di 2 caratteri:" + elemento.DescrizioneBreve;
                    }
                    else
                        message = "E' obbligatorio il codice della causale contabile";

                    var causali = daoFactory.GetCausaleContabileDao().GetByAzienda(_info.Azienda);
                    if (causali.Count(item => item.Codice == elemento.DescrizioneBreve && item.ID != elemento.Id) > 0)
                        message = $"E' già presente una causale col codice {elemento.DescrizioneBreve}";
                }

                if (string.IsNullOrEmpty(message))
                {
                    CausaleContabile item = null;
                    if (elemento.Id > 0)
                        item = daoFactory.GetCausaleContabileDao().Find(elemento.Id, false);
                    else if(operation != Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                    {
                        item = new CausaleContabile(elemento.DescrizioneBreve, elemento.Descrizione, true) {Ordine = elemento.Ordine};
                        daoFactory.GetCausaleContabileDao().SaveOrUpdate(item);
                    }

                    if (item != null)
                    {
                        switch (operation)
                        {
                            case Gipasoft.Sfera.Enums.CRUDOperation.Update:
                                item.Descrizione = elemento.Descrizione;
                                item.Codice = elemento.DescrizioneBreve;
                                item.Azienda = azienda;
                                item.Ordine = elemento.Ordine;
                                break;
                            case Gipasoft.Sfera.Enums.CRUDOperation.Delete:
                                daoFactory.GetCausaleContabileDao().Delete(item);
                                break;
                        }
                    }
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della causale contabile - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), elemento.Id, _info.Azienda);
                throw;
            }
        }
Esempio n. 9
0
        public string saveTipoAttivita(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                var message = string.Empty;

                if (!string.IsNullOrEmpty(elemento.DescrizioneBreve))
                {
                    TipoAttivita item;
                    if (elemento.Id > 0)
                        item = daoFactory.GetTipoAttivitaDao().Find(elemento.Id, false);
                    else
                    {
                        item = new TipoAttivita(elemento.DescrizioneBreve, elemento.Descrizione);
                        daoFactory.GetTipoAttivitaDao().SaveOrUpdate(item);
                    }

                    if (item != null)
                    {
                        if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update)
                        {
                            var descrizioneBreve = elemento.DescrizioneBreve;
                            if (!string.IsNullOrEmpty(descrizioneBreve) && descrizioneBreve.Length > 5)
                                descrizioneBreve = descrizioneBreve.Substring(0, 5);

                            var descrizione = elemento.Descrizione;
                            if (!string.IsNullOrEmpty(descrizione) && descrizione.Length > 50)
                                descrizione = descrizione.Substring(0, 50);

                            item.Descrizione = descrizione;
                            item.Codice = descrizioneBreve;
                            item.Azienda = azienda;
                        }
                        else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                            daoFactory.GetTipoAttivitaDao().Delete(item);
                    }
                }
                else
                    message = "E' obbligatorio il codice attività";
 
                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del tipo di attività - {0} - id:{1}", ex, Utility.GetMethodDescription(), elemento.Id);
                throw;
            }
        }
Esempio n. 10
0
        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;
            }
        }
Esempio n. 11
0
        public string saveModelloFrase(Azienda azienda, DettaglioTabellaSempliceDTO elemento, Gipasoft.Sfera.Enums.CRUDOperation operation, IDaoFactory daoFactory)
        {
            try
            {
                var message = string.Empty;

                ModelloFrase item;
                if (elemento.Id > 0)
                    item = daoFactory.GetModelloFraseDao() .Find(elemento.Id, false);
                else
                {
                    item = new ModelloFrase(elemento.DescrizioneBreve,  elemento.Descrizione);
                    daoFactory.GetModelloFraseDao().SaveOrUpdate(item);
                }

                if (item != null)
                {
                    if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Update)
                    {
                        item.Testo = elemento.Descrizione;
                        item.Azienda = azienda;
                    }
                    else if (operation == Gipasoft.Sfera.Enums.CRUDOperation.Delete)
                    {
                        daoFactory.GetModelloFraseDao().Delete(item);
                    }
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della frase - {0} - id:{1}", ex, Utility.GetMethodDescription(), elemento.Id);
                throw;
            }
        }