public void SetDocumentoPS(ref DocumentiModel dm, decimal idTrasfProvScolastiche, ModelDBISE db, decimal idTipoDocumento) { try { MemoryStream ms = new MemoryStream(); DOCUMENTI d = new DOCUMENTI(); ATTIVAZIONIPROVSCOLASTICHE atep = new ATTIVAZIONIPROVSCOLASTICHE(); dm.file.InputStream.CopyTo(ms); var tep = db.PROVVIDENZESCOLASTICHE.Find(idTrasfProvScolastiche); var latep = tep.ATTIVAZIONIPROVSCOLASTICHE.Where( a => a.ANNULLATO == false && a.NOTIFICARICHIESTA == false && a.ATTIVARICHIESTA == false) .OrderByDescending(a => a.IDPROVSCOLASTICHE).ToList(); if (latep?.Any() ?? false) { atep = latep.First(); } else { atep = this.CreaAttivitaPS(idTrasfProvScolastiche, db); } d.NOMEDOCUMENTO = dm.nomeDocumento; d.ESTENSIONE = dm.estensione; d.IDTIPODOCUMENTO = idTipoDocumento; d.DATAINSERIMENTO = dm.dataInserimento; d.FILEDOCUMENTO = ms.ToArray(); d.MODIFICATO = false; d.FK_IDDOCUMENTO = null; d.IDSTATORECORD = (decimal)EnumStatoRecord.In_Lavorazione; atep.DOCUMENTI.Add(d); if (db.SaveChanges() > 0) { dm.idDocumenti = d.IDDOCUMENTO; Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuovo documento (provvidenze scolastiche).", "Documenti", db, tep.IDTRASFPROVSCOLASTICHE, dm.idDocumenti); } else { throw new Exception("Errore nella fase di inserimento del documento (provvidenze scolastiche)."); } } catch (Exception ex) { throw ex; } }
public void AnnullaRichiestaProvvidenzeScolastiche(decimal idAttivitaProvvidenzeScolastiche, string msg) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var atep_Old = db.ATTIVAZIONIPROVSCOLASTICHE.Find(idAttivitaProvvidenzeScolastiche); if (atep_Old?.IDPROVSCOLASTICHE > 0) { if (atep_Old.NOTIFICARICHIESTA == true && atep_Old.ATTIVARICHIESTA == false && atep_Old.ANNULLATO == false) { atep_Old.ANNULLATO = true; atep_Old.DATAAGGIORNAMENTO = DateTime.Now; int i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore - Impossibile annullare la notifica della richiesta provvidenze scolastiche."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Annullamento della riga per il ciclo di attivazione delle provvidenze scolastiche", "PROVVIDENZESCOLASTICHE", db, atep_Old.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, atep_Old.IDPROVSCOLASTICHE); var idTrasferimento = atep_Old.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO; ATTIVAZIONIPROVSCOLASTICHE atep_New = new ATTIVAZIONIPROVSCOLASTICHE() { IDTRASFPROVSCOLASTICHE = atep_Old.IDTRASFPROVSCOLASTICHE, NOTIFICARICHIESTA = false, ATTIVARICHIESTA = false, DATAAGGIORNAMENTO = DateTime.Now, ANNULLATO = false }; db.ATTIVAZIONIPROVSCOLASTICHE.Add(atep_New); int j = db.SaveChanges(); if (j <= 0) { throw new Exception("Errore - Impossibile creare il nuovo ciclo di attivazione per le provvidenze scolastiche."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per il ciclo di attivazione relativo alle provvidenze scolastiche.", "PROVVIDENZESCOLASTICHE", db, atep_New.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, atep_New.IDTRASFPROVSCOLASTICHE); #region ricrea rinunciaTE //var rtep_old = this.GetRinunciaTEPartenza(atep_Old.IDATEPARTENZA, db); //RINUNCIA_TE_P rtep_new = new RINUNCIA_TE_P() //{ // IDATEPARTENZA = atep_New.IDATEPARTENZA, // RINUNCIATE = rtep_old.rinunciaTE, // DATAAGGIORNAMENTO = DateTime.Now, //}; //db.RINUNCIA_TE_P.Add(rtep_new); //if (db.SaveChanges() <= 0) //{ // throw new Exception(string.Format("Non è stato possibile creare una nuova rinuncia trasporto effetti partenza durante il ciclo di annullamento.")); //} //else //{ // Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova rinuncia trasporto effetti partenza.", "RINUNCIA_TE_P", db, rtep_new.ATTIVITATEPARTENZA.TEPARTENZA.TRASFERIMENTO.IDTRASFERIMENTO, rtep_new.IDATEPARTENZA); //} #endregion #region documenti var ldoc_Old = atep_Old.DOCUMENTI.Where( a => a.MODIFICATO == false) .OrderBy(a => a.DATAINSERIMENTO); if (ldoc_Old?.Any() ?? false) { foreach (var doc_Old in ldoc_Old) { DOCUMENTI doc_New = new DOCUMENTI() { IDTIPODOCUMENTO = doc_Old.IDTIPODOCUMENTO, NOMEDOCUMENTO = doc_Old.NOMEDOCUMENTO, ESTENSIONE = doc_Old.ESTENSIONE, FILEDOCUMENTO = doc_Old.FILEDOCUMENTO, DATAINSERIMENTO = doc_Old.DATAINSERIMENTO, MODIFICATO = doc_Old.MODIFICATO, FK_IDDOCUMENTO = doc_Old.FK_IDDOCUMENTO, IDSTATORECORD = (decimal)EnumStatoRecord.In_Lavorazione }; atep_New.DOCUMENTI.Add(doc_New); doc_Old.IDSTATORECORD = (decimal)EnumStatoRecord.Annullato; int y = db.SaveChanges(); if (y <= 0) { throw new Exception("Errore - Impossibile associare il documento per le provvidenze scolastiche. (" + doc_New.NOMEDOCUMENTO + ")"); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per il documento relativo alle provvidenze scolastiche.", "DOCUMENTI", db, atep_New.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, doc_New.IDDOCUMENTO); } } } #endregion EmailTrasferimento.EmailAnnulla(idTrasferimento, Resources.msgEmail.OggettoAnnullaRichiestaProvvidenzeScolastiche, msg, db); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { dtce.AnnullaMessaggioEvento(idTrasferimento, EnumFunzioniEventi.RichiestaProvvidenzeScolastiche, db); } } } } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }