Beispiel #1
0
 public static void AnnullaOfferteEffettuate(DatabaseContext db, int vendita)
 {
     // annullo offerte di baratto effettuate
     foreach (OFFERTA_BARATTO b in db.OFFERTA_BARATTO.Where(b => b.ID_ANNUNCIO == vendita).ToList())
     {
         b.OFFERTA.DATA_MODIFICA = DateTime.Now;
         b.OFFERTA.STATO         = (int)StatoOfferta.ANNULLATA;
         OffertaContoCorrenteMoneta offertaMoneta = new OffertaContoCorrenteMoneta();
         offertaMoneta.RemoveCrediti(db, b.ID_OFFERTA, new PersonaModel(b.OFFERTA.PERSONA));
         b.OFFERTA.PERSONA.DATA_MODIFICA = DateTime.Now;
         db.SaveChanges();
     }
 }
Beispiel #2
0
 public static void AnnullaOfferteRicevute(DatabaseContext db, int vendita)
 {
     // anullo le altre offerte ricevute
     foreach (OFFERTA o in db.OFFERTA.Where(o => (o.STATO == (int)StatoOfferta.ACCETTATA || o.STATO == (int)StatoOfferta.ATTIVA) && o.ID_ANNUNCIO == vendita).ToList())
     {
         o.DATA_MODIFICA         = DateTime.Now;
         o.STATO                 = (int)StatoOfferta.ANNULLATA;
         o.PERSONA.DATA_MODIFICA = DateTime.Now;
         db.SaveChanges();
         // restituzione crediti sospesi
         OffertaContoCorrenteMoneta offertaMoneta = new OffertaContoCorrenteMoneta();
         offertaMoneta.RemoveCrediti(db, o.ID, new PersonaModel(o.PERSONA));
     }
 }
 public static void AnnullaOfferteRicevute(DatabaseContext db, int vendita, int offerta = 0)
 {
     // anullo le altre offerte ricevute
     foreach (OFFERTA o in db.OFFERTA.Where(o => (offerta == 0 || o.ID != offerta) &&
                                            (o.STATO != (int)StatoOfferta.ACCETTATA && o.STATO != (int)StatoOfferta.ANNULLATA) &&
                                            o.ID_ANNUNCIO == vendita).ToList())
     {
         o.DATA_MODIFICA           = DateTime.Now;
         o.STATO                   = (int)StatoOfferta.ANNULLATA;
         o.PERSONA.DATA_MODIFICA   = DateTime.Now;
         db.Entry(o.PERSONA).State = System.Data.Entity.EntityState.Modified;
         db.Entry(o).State         = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
         // restituzione crediti sospesi
         OffertaContoCorrenteMoneta offertaMoneta = new OffertaContoCorrenteMoneta();
         offertaMoneta.RemoveCrediti(db, o.ID, (int)o.PUNTI, new PersonaModel(o.PERSONA));
     }
 }
        public bool Rifiuta()
        {
            //using (DatabaseContext db = new DatabaseContext())
            //{
            DatabaseContext db = new DatabaseContext();

            try {
                db.Database.Connection.Open();
                using (var transazione = db.Database.BeginTransaction())
                {
                    OFFERTA offerta = db.OFFERTA.Where(o => o.ID == this.ID && o.ANNUNCIO.ID_PERSONA == this.ANNUNCIO.ID_PERSONA && o.STATO == (int)StatoOfferta.ATTIVA).SingleOrDefault();
                    offerta.DATA_MODIFICA = DateTime.Now;
                    offerta.STATO         = (int)StatoOfferta.ANNULLATA;
                    OffertaContoCorrenteMoneta offertaMoneta = new OffertaContoCorrenteMoneta();
                    offertaMoneta.RemoveCrediti(db, offerta.ID, (int)offerta.PUNTI, new PersonaModel(offerta.PERSONA));
                    offerta.PERSONA.DATA_MODIFICA = DateTime.Now;
                    db.Entry(offerta).State       = System.Data.Entity.EntityState.Modified;
                    if (db.SaveChanges() > 1)
                    {
                        transazione.Commit();
                        return(true);
                    }
                    transazione.Rollback();
                }
            }
            catch (Exception eccezione)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione);
            }
            finally
            {
                if (db.Database.Connection.State != System.Data.ConnectionState.Closed)
                {
                    db.Database.Connection.Close();
                    db.Database.Connection.Dispose();
                }
            }
            //}
            return(false);
        }