示例#1
0
 public ActionResult Details(PortaleWebProfiloViewModel viewModel)
 {
     try
     {
         if (base.ModelState.IsValid)
         {
             using (DatabaseContext db = new DatabaseContext())
             {
                 // da modificare
                 PortaleWebViewModel viewModel2 = (Session["portaleweb"] as List <PortaleWebViewModel>).Where(p => p.Token == viewModel.Token).SingleOrDefault();
                 int      idPartner             = Convert.ToInt32(viewModel2.Id);
                 ATTIVITA model = db.ATTIVITA.Where(p => p.ID == idPartner).SingleOrDefault();
                 model.NOME    = viewModel.Nome;
                 model.DOMINIO = viewModel.Dominio;
                 ATTIVITA_EMAIL modelEmail = model.ATTIVITA_EMAIL.SingleOrDefault(item => item.TIPO == (int)TipoEmail.Registrazione);
                 modelEmail.EMAIL = viewModel.Email;
                 db.ATTIVITA_EMAIL.Attach(modelEmail);
                 ATTIVITA_TELEFONO modelTelefono = model.ATTIVITA_TELEFONO.SingleOrDefault(item => item.TIPO == (int)TipoTelefono.Privato);
                 modelTelefono.TELEFONO = viewModel.Telefono;
                 db.ATTIVITA_TELEFONO.Attach(modelTelefono);
                 model.DATA_MODIFICA = DateTime.Now;
                 db.Entry <ATTIVITA>(model).State = System.Data.Entity.EntityState.Modified;
                 if (db.SaveChanges() > 0)
                 {
                     // trovare portaleweb modificato e sostituirlo
                     //Session["portaleweb"] = model;
                     Session["portaleweb"] = (Session["utente"] as PersonaModel).Persona.PERSONA_ATTIVITA
                                             .Select(item => new PortaleWebViewModel(item,
                                                                                     item.ATTIVITA.ATTIVITA_EMAIL.Where(e => e.ID_ATTIVITA == item.ID_ATTIVITA).ToList(),
                                                                                     item.ATTIVITA.ATTIVITA_TELEFONO.Where(t => t.ID_ATTIVITA == item.ID_ATTIVITA).ToList()
                                                                                     )).ToList();
                     TempData["salvato"] = true;
                 }
             }
         }
     }
     catch (Exception exception)
     {
         //Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
         LoggatoreModel.Errore(exception);
     }
     return(View(viewModel));
 }
        public ActionResult Effettuate(int pagina = 1)
        {
            List <OffertaEffettuataViewModel> offerte = new List <OffertaEffettuataViewModel>();

            try
            {
                using (DatabaseContext db = new DatabaseContext())
                {
                    int utente = ((PersonaModel)Session["utente"]).Persona.ID;
                    // verifica stato offerta se attivo o non accettata, identità utente e stato di attivazione, presenza bene o servizio -- vechia
                    // verifica identità utente e stato di attivazione, presenza bene o servizio
                    var query          = db.OFFERTA.Where(item => item.PERSONA.ID == utente && item.PERSONA.STATO == (int)Stato.ATTIVO && (item.ANNUNCIO.ID_OGGETTO != null || item.ANNUNCIO.ID_SERVIZIO != null));
                    int numeroElementi = Convert.ToInt32(WebConfigurationManager.AppSettings["numeroElementi"]);
                    ViewData["TotalePagine"] = (int)Math.Ceiling((decimal)query.Count() / (decimal)numeroElementi);
                    ViewData["Pagina"]       = pagina;
                    pagina -= 1;
                    string         randomString = Utils.RandomString(3);
                    List <OFFERTA> lista        = query
                                                  .OrderByDescending(item => item.DATA_INSERIMENTO)
                                                  .Skip(pagina * numeroElementi)
                                                  .Take(numeroElementi).ToList();

                    foreach (OFFERTA item in lista)
                    {
                        OffertaEffettuataViewModel offertaEffettuata = new OffertaEffettuataViewModel();
                        offertaEffettuata.Id             = item.ID.ToString();
                        offertaEffettuata.Nome           = item.ANNUNCIO.NOME;
                        offertaEffettuata.Venditore      = (item.ANNUNCIO.ID_ATTIVITA != null) ? item.ANNUNCIO.ATTIVITA.NOME : item.ANNUNCIO.PERSONA.NOME + ' ' + item.ANNUNCIO.PERSONA.COGNOME;
                        offertaEffettuata.Email          = (item.ANNUNCIO.ID_ATTIVITA != null) ? item.ANNUNCIO.ATTIVITA.ATTIVITA_EMAIL.SingleOrDefault(e => e.TIPO == (int)TipoEmail.Registrazione).EMAIL : item.ANNUNCIO.PERSONA.PERSONA_EMAIL.SingleOrDefault(e => e.TIPO == (int)TipoEmail.Registrazione).EMAIL;
                        offertaEffettuata.VenditoreToken = item.ANNUNCIO.PERSONA.TOKEN;
                        if (item.ANNUNCIO.ID_ATTIVITA != null)
                        {
                            ATTIVITA_TELEFONO telefono = item.ANNUNCIO.ATTIVITA.ATTIVITA_TELEFONO.SingleOrDefault(t => t.TIPO == (int)TipoTelefono.Privato);
                            if (telefono != null)
                            {
                                offertaEffettuata.Telefono = telefono.TELEFONO;
                            }
                        }
                        else
                        {
                            PERSONA_TELEFONO telefono = item.ANNUNCIO.PERSONA.PERSONA_TELEFONO.SingleOrDefault(t => t.TIPO == (int)TipoTelefono.Privato);
                            if (telefono != null)
                            {
                                offertaEffettuata.Telefono = telefono.TELEFONO;
                            }
                        }
                        offertaEffettuata.Punti     = (int)item.PUNTI;
                        offertaEffettuata.Soldi     = (int)item.SOLDI;
                        offertaEffettuata.Categoria = item.ANNUNCIO.CATEGORIA.NOME;
                        offertaEffettuata.Foto      = db.ANNUNCIO_FOTO
                                                      .Where(f => f.ID_ANNUNCIO == item.ANNUNCIO.ID)
                                                      .Select(f =>
                                                              f.FOTO.FOTO1
                                                              ).ToList();
                        offertaEffettuata.Baratti = db.OFFERTA_BARATTO
                                                    .Where(b => b.ID_OFFERTA == item.ID && b.ANNUNCIO != null)
                                                    .Select(b =>
                                                            new VenditaViewModel()
                        {
                            Token        = randomString + b.ANNUNCIO.TOKEN.ToString() + randomString,
                            TipoAcquisto = b.ANNUNCIO.SERVIZIO != null ? TipoAcquisto.Servizio : TipoAcquisto.Oggetto,
                            Nome         = b.ANNUNCIO.NOME,
                            Punti        = b.ANNUNCIO.PUNTI,
                            Soldi        = b.ANNUNCIO.SOLDI,
                        }).ToList();
                        offertaEffettuata.Token           = item.ANNUNCIO.TOKEN.ToString();
                        offertaEffettuata.TipoOfferta     = (TipoOfferta)item.TIPO_OFFERTA;
                        offertaEffettuata.TipoTrattativa  = (TipoTrattativa)item.TIPO_TRATTATIVA;
                        offertaEffettuata.TipoPagamento   = (TipoPagamento)item.ANNUNCIO.TIPO_PAGAMENTO;
                        offertaEffettuata.StatoOfferta    = (StatoOfferta)item.STATO;
                        offertaEffettuata.StatoVendita    = (StatoVendita)item.ANNUNCIO.STATO;
                        offertaEffettuata.DataInserimento = (DateTime)item.DATA_INSERIMENTO;
                        offerte.Add(offertaEffettuata);
                    }
                    if (offerte.Count > 0)
                    {
                        RefreshPunteggioUtente(db);
                    }
                }
            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
            }
            return(View(offerte));
        }