示例#1
0
        public OffertaViewModel(DatabaseContext db, OFFERTA model)
        {
            SetDefault();
            BarattiToken       = new List <string>();
            Id                 = model.ID;
            Token              = Utility.Encode(model.ID);
            Annuncio           = new AnnuncioViewModel(db, model.ANNUNCIO);
            Punti              = Convert.ToDecimal(model.PUNTI).ToHappyCoin();
            Soldi              = Convert.ToDecimal(model.SOLDI).ToString("C");
            Annuncio.Categoria = model.ANNUNCIO.CATEGORIA.NOME;
            Annuncio.Foto      = model.ANNUNCIO.ANNUNCIO_FOTO.Select(f => new AnnuncioFoto()
            {
                ID_ANNUNCIO      = f.ID_ANNUNCIO,
                ALLEGATO         = f.ALLEGATO,
                DATA_INSERIMENTO = f.DATA_INSERIMENTO,
                DATA_MODIFICA    = f.DATA_MODIFICA
            }).ToList();
            Baratti = model.OFFERTA_BARATTO
                      .Where(b => b.ID_OFFERTA == model.ID && b.ANNUNCIO != null)
                      .Select(b =>
                              new AnnuncioViewModel()
            {
                Token        = b.ANNUNCIO.TOKEN.ToString(),
                TipoAcquisto = b.ANNUNCIO.SERVIZIO != null ? TipoAcquisto.Servizio : TipoAcquisto.Oggetto,
                Nome         = b.ANNUNCIO.NOME,
                Punti        = b.ANNUNCIO.PUNTI.ToHappyCoin(),
                Soldi        = Convert.ToDecimal(b.ANNUNCIO.SOLDI).ToString("C"),
            }).ToList();
            BarattiToken    = Baratti.Select(m => m.Token.ToString()).ToList();
            Compratore      = new UtenteVenditaViewModel(model.PERSONA);
            TipoOfferta     = (TipoPagamento)model.TIPO_OFFERTA;
            TipoPagamento   = (TipoPagamento)model.ANNUNCIO.TIPO_PAGAMENTO;
            StatoOfferta    = (StatoOfferta)model.STATO;
            DataInserimento = (DateTime)model.DATA_INSERIMENTO;
            OFFERTA_SPEDIZIONE offertaSpedizione = model.OFFERTA_SPEDIZIONE.FirstOrDefault();

            TipoScambio = TipoScambio.AMano;
            if (offertaSpedizione != null)
            {
                TipoScambio = TipoScambio.Spedizione;
                INDIRIZZO indirizzo = offertaSpedizione.INDIRIZZO;
                CapDestinatario        = indirizzo.COMUNE.CAP;
                IndirizzoDestinatario  = indirizzo.INDIRIZZO1;
                CivicoDestinatario     = indirizzo.CIVICO;
                NominativoDestinatario = offertaSpedizione.NOMINATIVO_DESTINATARIO;
                TelefonoDestinatario   = offertaSpedizione.TELEFONO_DESTINATARIO;
                SoldiSpedizione        = offertaSpedizione.SOLDI.ToString("C");
                ANNUNCIO_TIPO_SCAMBIO tipoScambio = model.ANNUNCIO.ANNUNCIO_TIPO_SCAMBIO.FirstOrDefault(m => m.TIPO_SCAMBIO == (int)TipoScambio.Spedizione);
                if (tipoScambio != null)
                {
                    NomeCorriere = tipoScambio.ANNUNCIO_TIPO_SCAMBIO_SPEDIZIONE.FirstOrDefault()
                                   .CORRIERE_SERVIZIO_SPEDIZIONE.CORRIERE_SERVIZIO.CORRIERE.NOME;
                }
            }
        }
示例#2
0
        public AnnuncioViewModel(DatabaseContext db, ANNUNCIO model)
        {
            this.SetProprietaIniziali();
            Id = model.ID;
            if (model.ID_ATTIVITA != null)
            {
                Venditore = new UtenteVenditaViewModel(model.ATTIVITA, model.PERSONA);
                SetFeedbackVenditore(model, TipoVenditore.Attivita);
            }
            else
            {
                Venditore = new UtenteVenditaViewModel(model.PERSONA);
                SetFeedbackVenditore(model, TipoVenditore.Persona);
            }
            Token         = model.TOKEN.ToString();
            Nome          = model.NOME;
            TipoPagamento = (TipoPagamento)model.TIPO_PAGAMENTO;
            if (model.ID_SERVIZIO != null)
            {
                TipoAcquisto = TipoAcquisto.Servizio;
            }
            //Punti = model.PUNTI.ToHappyCoin();
            Punti           = model.PUNTI.ToString();
            Soldi           = Convert.ToDecimal(model.SOLDI).ToString("C");
            DataInserimento = (DateTime)model.DATA_INSERIMENTO;
            CategoriaID     = model.ID_CATEGORIA;
            Categoria       = model.CATEGORIA.NOME;
            //TipoSpedizione = (Spedizione)model.TIPO_SPEDIZIONE;
            int venditaId = model.ID;

            Foto = model.ANNUNCIO_FOTO.Select(f => new AnnuncioFoto()
            {
                ID_ANNUNCIO      = f.ID_ANNUNCIO,
                ALLEGATO         = f.ALLEGATO,
                DATA_INSERIMENTO = f.DATA_INSERIMENTO,
                DATA_MODIFICA    = f.DATA_MODIFICA
            }).ToList();
            StatoVendita = (StatoVendita)model.STATO;
            Notificato   = (model.ANNUNCIO_NOTIFICA.Count > 0) ? true : false;
            var listaInteressati = model.ANNUNCIO_DESIDERATO.Where(f => f.ID_ANNUNCIO == model.ID);

            NumeroInteressati = listaInteressati.Count();
            PersonaModel utente = (HttpContext.Current.Session["utente"] as PersonaModel);

            if (utente != null)
            {
                int idUtente = utente.Persona.ID;
                Desidero = listaInteressati.FirstOrDefault(m => m.ID_PERSONA == idUtente) != null;
                // controllo se l'utente ha già proposto lo stesso annuncio
                int?     idAnnuncioOriginale = model.ID_ORIGINE;
                ANNUNCIO copiaAnnuncio       = db.ANNUNCIO.SingleOrDefault(m => m.ID_PERSONA == idUtente &&
                                                                           (m.STATO == (int)StatoVendita.ATTIVO || m.STATO == (int)StatoVendita.INATTIVO) &&
                                                                           ((m.ID_ORIGINE == idAnnuncioOriginale && idAnnuncioOriginale != null) ||
                                                                            m.ID_ORIGINE == model.ID));
                if (copiaAnnuncio != null)
                {
                    TokenAnnuncioCopiato = Utility.RandomString(3) + copiaAnnuncio.TOKEN + Utility.RandomString(3);
                }
            }
            CondivisioneFacebookG4G    = (StatoPubblicaAnnuncioFacebook?)model.CONDIVISIONE_FACEBOOK_G4G;
            CondivisioneFacebookUtente = (StatoPubblicaAnnuncioFacebook?)model.CONDIVISIONE_FACEBOOK_UTENTE;
            DataPubblicazioneFacebook  = model.DATA_PUBBLICAZIONE_FACEBOOK;
        }