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)); }