Esempio n. 1
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;
            }
        }