public int AddCredito(DatabaseContext db, string nomeTransazione, TipoTransazione tipo, int punti) { using (DbContextTransaction transazione = db.Database.BeginTransaction()) { TRANSAZIONE model = new TRANSAZIONE(); //model.ID_COMPRATORE = this.CONTO_CORRENTE.; >>> mettere conto corrente model.TIPO = (int)tipo; model.NOME = nomeTransazione; model.PUNTI = punti; model.DATA_INSERIMENTO = DateTime.Now; model.STATO = (int)StatoPagamento.ACCETTATO; db.TRANSAZIONE.Add(model); db.SaveChanges(); CONTO_CORRENTE_MONETA moneta = new CONTO_CORRENTE_MONETA(); moneta.ID_CONTO_CORRENTE = this.ID_CONTO_CORRENTE; for (int i = 0; i < punti; i++) { try { moneta.ID_MONETA = db.MONETA.FirstOrDefault(m => m.CONTO_CORRENTE_MONETA.Count(item => item.ID_MONETA == m.ID) <= 0).ID; moneta.DATA_INSERIMENTO = DateTime.Now; moneta.STATO = (int)StatoMoneta.ATTIVA; db.CONTO_CORRENTE_MONETA.Add(moneta); db.SaveChanges(); } catch (Exception eccezione) { i -= 1; Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione); } } transazione.Commit(); return(db.CONTO_CORRENTE_MONETA.Count(item => item.ID_CONTO_CORRENTE == this.ID_CONTO_CORRENTE)); } }
public void RemoveCrediti(DatabaseContext db, int idOfferta, PersonaModel persona) { foreach (OFFERTA_CONTO_CORRENTE_MONETA item in db.OFFERTA_CONTO_CORRENTE_MONETA.Where(item => item.ID_OFFERTA == idOfferta).ToList()) { CONTO_CORRENTE_MONETA conto = item.CONTO_CORRENTE_MONETA; conto.STATO = (int)StatoMoneta.ASSEGNATA; db.CONTO_CORRENTE_MONETA.Attach(conto); var entry = db.Entry(conto); entry.Property(e => e.STATO).IsModified = true; if (db.SaveChanges() > 0) { db.OFFERTA_CONTO_CORRENTE_MONETA.Remove(item); db.SaveChanges(); } else { throw new Exception(App_GlobalResources.Language.ErrorRecoveryPoints); } } }