Ejemplo n.º 1
0
        public List <ServizioViewModel> Get()
        {
            FormattableString query   = $"SELECT * FROM Servizio";
            DataSet           dataSet = _db.Query(query);

            var dataTable  = dataSet.Tables[0];
            var eleServizi = new List <ServizioViewModel>();

            foreach (DataRow row in dataTable.Rows)
            {
                FormattableString query2   = $"Select AVG(f.rating) as RatingMedio FROM feedback f INNER JOIN servizio s ON f.servizio = s.id WHERE s.id = {(int)row["Id"]}";
                DataSet           dataSet2 = _db.Query(query2);
                var dataTable2             = dataSet2.Tables[0];
                var dataRow2 = dataTable2.Rows[0];
                ServizioViewModel servizio;
                if (dataRow2.ItemArray[0] == DBNull.Value)
                {
                    servizio = new ServizioViewModel((int)row["Id"], (string)row["Titolo"], (string)row["Descrizione"], 0);
                }
                else
                {
                    servizio = new ServizioViewModel((int)row["Id"], (string)row["Titolo"], (string)row["Descrizione"], (decimal)dataRow2["RatingMedio"]);
                }
                eleServizi.Add(servizio);
            }
            return(eleServizi);
        }
Ejemplo n.º 2
0
        public ServizioViewModel Get(int id)
        {
            FormattableString query   = $"SELECT * FROM Servizio WHERE Id = {id}";
            DataSet           dataSet = _db.Query(query);
            ServizioViewModel servizio;
            var dataTable = dataSet.Tables[0];

            foreach (DataRow row in dataTable.Rows)
            {
                FormattableString query2   = $"Select AVG(f.rating) as RatingMedio FROM feedback f INNER JOIN servizio s ON f.servizio = s.id WHERE s.id = {id}";
                DataSet           dataSet2 = _db.Query(query2);
                var dataTable2             = dataSet2.Tables[0];
                var dataRow2 = dataTable2.Rows[0];

                if (dataRow2.ItemArray[0] == DBNull.Value)
                {
                    return(servizio = new ServizioViewModel((int)row["Id"], (string)row["Titolo"], (string)row["Descrizione"], 0));
                }
                else
                {
                    return(servizio = new ServizioViewModel((int)row["Id"], (string)row["Titolo"], (string)row["Descrizione"], (decimal)dataRow2["RatingMedio"]));
                }
            }
            return(null);
        }
Ejemplo n.º 3
0
        private void SetFeedbackVenditoreServizio(DatabaseContext db, ServizioViewModel viewModel)
        {
            try
            {
                List <int> voti = db.ANNUNCIO_FEEDBACK
                                  .Where(item => (viewModel.PartnerId <= 0 && item.ANNUNCIO.ID_PERSONA == viewModel.VenditoreID) ||
                                         (viewModel.PartnerId > 0 && item.ANNUNCIO.ID_ATTIVITA == viewModel.PartnerId)).Select(item => item.VOTO).ToList();

                int votoMassimo = voti.Count * 10;
                if (voti.Count <= 0)
                {
                    viewModel.VenditoreFeedback = -1;
                }
                else
                {
                    int x = voti.Sum() / votoMassimo;
                    viewModel.VenditoreFeedback = x * 100;
                }
            }
            catch (Exception eccezione)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione);
                viewModel.VenditoreFeedback = -1;
            }
        }
Ejemplo n.º 4
0
 // praticamente non usata
 private ServizioViewModel SetServizioViewModel(DatabaseContext db, ServizioViewModel servizio)
 {
     // gestito cosi, perchè nel caso faccio macroricerche, recupero lo stesso i dati personalizzati
     // sulla specifica sottocategoria.
     switch (servizio.CategoriaID)
     {
     default:
         break;
     }
     return(servizio);
 }
Ejemplo n.º 5
0
 public void OnGet(int id)
 {
     ServizioViewModel = _apiServices.GetServizio(id);
     eleFeedback       = _apiServices.GetServizioFeedbacks(id);
 }
Ejemplo n.º 6
0
        public ActionResult Acquista(ServizioViewModel model)
        {
            if (model == null || string.IsNullOrWhiteSpace(model.Token))
            {
                return(Redirect("/Servizi/Tutti"));
            }

            if (model.Offerta.TipoOfferta == TipoOfferta.Baratto && model.Offerta.ServiziBarattati != null && model.Offerta.ServiziBarattati.Length > 4)
            {
                ModelState.AddModelError("ErroreOfferta", ErroreOfferta.PrezzoErrato.ToString());
            }

            if (CheckUtenteAttivo(1))
            {
                return(RedirectToAction("Impostazioni", "Utente"));
            }

            string nomeView = "Index";

            try
            {
                using (DatabaseContext db = new DatabaseContext())
                {
                    string tokenDecodificato = Server.UrlDecode(model.Token);
                    string tokenPulito       = tokenDecodificato.Substring(3).Substring(0, tokenDecodificato.Length - 6);
                    Guid   tokenGuid         = Guid.Parse(tokenPulito);

                    if (ModelState.IsValid)
                    {
                        ObjectParameter errore = new ObjectParameter("Errore", typeof(int));
                        errore.Value = 0;
                        string baratti = "";
                        if (model.Offerta.TipoOfferta == TipoOfferta.Baratto)
                        {
                            XElement xml = new XElement("Root",
                                                        model.Offerta.ServiziBarattati.Select((i, index)
                                                                                              => new XElement("Guid", i)
                                                                                              )
                                                        );
                            baratti = xml.ToString();
                        }

                        int?idOfferta = db.BENE_SAVE_OFFERTA_SERVIZIO(tokenGuid, ((PersonaModel)Session["utente"]).Persona.ID_CONTO_CORRENTE, 1, (int)model.Offerta.TipoOfferta, model.Offerta.PuntiOfferti, Utils.cambioValuta(model.Offerta.PuntiOfferti), baratti, errore);

                        if (idOfferta != null && Convert.ToInt32(errore.Value) == 0)
                        {
                            // impostare invio email offerta effettuata
                            EmailModel email = new EmailModel(ControllerContext);
                            email.To.Add(new System.Net.Mail.MailAddress(model.VenditoreToken.ToString(), App_GlobalResources.Email.BidOf + " " + model.VenditoreNominativo + " - " + System.Web.Configuration.WebConfigurationManager.AppSettings["nomeSito"]));
                            email.Subject   = App_GlobalResources.Email.BidSubject + " " + model.Nome;
                            email.Body      = "Offerta";
                            email.DatiEmail = model;
                            new EmailController().SendEmail(email);

                            return(RedirectToAction("OffertaInviata", "Servizio", new { idOfferta = idOfferta }));
                        }

                        // ERRORE
                        ModelState.AddModelError("ErroreOfferta", ((ErroreOfferta)errore.Value).GetDisplayName());
                    }
                    else
                    {
                        ModelState.AddModelError("ErroreOfferta", App_GlobalResources.Language.ErrorGenericBid);
                    }
                    int idUtente = (Session["utente"] as PersonaModel).Persona.ID;
                    // recupero le informazioni sul servizio
                    ANNUNCIO vendita = db.ANNUNCIO.Where(v => v.TOKEN == tokenGuid && v.SERVIZIO != null && v.ID_PERSONA != idUtente && (v.STATO == (int)StatoVendita.ATTIVO || v.STATO == (int)StatoVendita.BARATTOINCORSO)).FirstOrDefault();
                    // reindirizza alla lista generale di servizi
                    if (vendita == null)
                    {
                        return(RedirectToAction("Tutti", "Servizi"));
                    }
                    nomeView                  = vendita.CATEGORIA.DESCRIZIONE;
                    model.Id                  = (int)vendita.ID_SERVIZIO;
                    model.CategoriaID         = vendita.ID_CATEGORIA;
                    model.Categoria           = vendita.CATEGORIA.NOME;
                    model.Token               = Utils.RandomString(3) + vendita.TOKEN.ToString() + Utils.RandomString(3);
                    model.Citta               = vendita.OGGETTO.COMUNE.NOME;
                    model.DataInserimento     = vendita.DATA_INSERIMENTO;
                    model.VenditoreToken      = vendita.PERSONA.TOKEN;
                    model.Foto                = vendita.ANNUNCIO_FOTO.Select(f => f.FOTO.FOTO1).ToList();
                    model.Nome                = vendita.NOME;
                    model.Punti               = vendita.PUNTI;
                    model.Soldi               = vendita.SOLDI;
                    model.Lunedi              = (bool)vendita.SERVIZIO.LUNEDI;
                    model.Martedi             = (bool)vendita.SERVIZIO.MARTEDI;
                    model.Mercoledi           = (bool)vendita.SERVIZIO.MERCOLEDI;
                    model.Giovedi             = (bool)vendita.SERVIZIO.GIOVEDI;
                    model.Venerdi             = (bool)vendita.SERVIZIO.VENERDI;
                    model.Sabato              = (bool)vendita.SERVIZIO.SABATO;
                    model.Domenica            = (bool)vendita.SERVIZIO.DOMENICA;
                    model.Tutti               = (bool)vendita.SERVIZIO.TUTTI;
                    model.OraInizio           = (TimeSpan)vendita.SERVIZIO.ORA_INIZIO_FERIALI;
                    model.OraFine             = (TimeSpan)vendita.SERVIZIO.ORA_FINE_FERIALI;
                    model.OraInizio           = (TimeSpan)vendita.SERVIZIO.ORA_INIZIO_FESTIVI;
                    model.OraFine             = (TimeSpan)vendita.SERVIZIO.ORA_FINE_FESTIVI;
                    model.TipoPagamento       = (TipoPagamento)vendita.TIPO_PAGAMENTO;
                    model.VenditoreID         = vendita.ID_PERSONA;
                    model.VenditoreNominativo = vendita.PERSONA.NOME + ' ' + vendita.PERSONA.COGNOME;
                    model.Tariffa             = (Tariffa)vendita.SERVIZIO.TARIFFA;
                    model.StatoVendita        = (StatoVendita)vendita.STATO;
                    model = SetServizioViewModel(db, model);
                    SetFeedbackVenditoreServizio(db, model);
                }
            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
            }

            return(View(nomeView, model));
        }
Ejemplo n.º 7
0
        public ActionResult Acquista(string nome, string token)
        {
            ServizioViewModel servizio = new ServizioViewModel();
            string            nomeView = "Index";

            try
            {
                TempData["azione"] = "Buy";

                string tokenDecodificato = Server.UrlDecode(token);
                string tokenPulito       = tokenDecodificato.Substring(3).Substring(0, tokenDecodificato.Length - 6);
                Guid   tokenGuid         = Guid.Parse(tokenPulito);

                // recuperare oggetto e visualizzare vista corretta
                using (DatabaseContext db = new DatabaseContext())
                {
                    ANNUNCIO vendita = db.ANNUNCIO.Where(v => v.TOKEN == tokenGuid && v.NOME == nome && v.SERVIZIO != null).FirstOrDefault();
                    // reindirizza alla lista generale di oggetti
                    if (vendita == null)
                    {
                        return(RedirectToAction("Tutti", "Servizi"));
                    }
                    else if (vendita.STATO == (int)StatoVendita.BARATTATO || vendita.STATO == (int)StatoVendita.BARATTOINCORSO)
                    {
                        return(RedirectToAction("Barattato", "Servizio", new { nome = nome, token = token }));
                    }

                    nomeView                 = vendita.CATEGORIA.DESCRIZIONE;
                    servizio.Id              = (int)vendita.ID_SERVIZIO;
                    servizio.CategoriaID     = vendita.ID_CATEGORIA;
                    servizio.Categoria       = vendita.CATEGORIA.NOME;
                    servizio.Token           = Utils.RandomString(3) + Utils.Encode(vendita.TOKEN.ToString()) + Utils.RandomString(3);
                    servizio.Citta           = vendita.SERVIZIO.COMUNE.NOME;
                    servizio.DataInserimento = vendita.DATA_INSERIMENTO;
                    servizio.VenditoreToken  = vendita.PERSONA.TOKEN;
                    servizio.Foto            = vendita.ANNUNCIO_FOTO.Select(f => f.FOTO.FOTO1).ToList();
                    servizio.Nome            = vendita.NOME;
                    servizio.Punti           = vendita.PUNTI;
                    servizio.Soldi           = vendita.SOLDI;
                    servizio.Lunedi          = (bool)vendita.SERVIZIO.LUNEDI;
                    servizio.Martedi         = (bool)vendita.SERVIZIO.MARTEDI;
                    servizio.Mercoledi       = (bool)vendita.SERVIZIO.MERCOLEDI;
                    servizio.Giovedi         = (bool)vendita.SERVIZIO.GIOVEDI;
                    servizio.Venerdi         = (bool)vendita.SERVIZIO.VENERDI;
                    servizio.Sabato          = (bool)vendita.SERVIZIO.SABATO;
                    servizio.Domenica        = (bool)vendita.SERVIZIO.DOMENICA;
                    if (vendita.SERVIZIO.TUTTI != null)
                    {
                        servizio.Tutti = (bool)vendita.SERVIZIO.TUTTI;
                    }
                    servizio.OraInizio = (TimeSpan)vendita.SERVIZIO.ORA_INIZIO_FERIALI;
                    servizio.OraFine   = (TimeSpan)vendita.SERVIZIO.ORA_FINE_FERIALI;
                    if (vendita.SERVIZIO.ORA_INIZIO_FESTIVI != null)
                    {
                        servizio.OraInizioFestivita = (TimeSpan)vendita.SERVIZIO.ORA_INIZIO_FESTIVI;
                    }
                    if (vendita.SERVIZIO.ORA_FINE_FESTIVI != null)
                    {
                        servizio.OraFineFestivita = (TimeSpan)vendita.SERVIZIO.ORA_FINE_FESTIVI;
                    }
                    servizio.RisultatiFinali     = vendita.SERVIZIO.RISULTATI_FINALI;
                    servizio.ServiziOfferti      = vendita.SERVIZIO.SERVIZI_OFFERTI;
                    servizio.TipoPagamento       = (TipoPagamento)vendita.TIPO_PAGAMENTO;
                    servizio.VenditoreID         = vendita.ID_PERSONA;
                    servizio.VenditoreNominativo = vendita.PERSONA.NOME + ' ' + vendita.PERSONA.COGNOME;
                    servizio.Tariffa             = (Tariffa)vendita.SERVIZIO.TARIFFA;
                    servizio.StatoVendita        = (StatoVendita)vendita.STATO;
                    servizio = SetServizioViewModel(db, servizio);
                    SetFeedbackVenditoreServizio(db, servizio);
                    // verifico che non stia provando ad accedere il venditore stesso
                    if (servizio.VenditoreID == (Session["utente"] as PersonaModel).Persona.ID)
                    {
                        TempData["azione"] = "View";
                    }
                }
            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
            }
            ViewBag.Title       = string.Format(App_GlobalResources.MetaTag.TitleService, servizio.Nome, servizio.Categoria);
            ViewBag.Description = string.Format(App_GlobalResources.MetaTag.DescriptionService, servizio.Nome, servizio.Categoria, servizio.Citta, servizio.Punti);
            ViewBag.Keywords    = string.Format(App_GlobalResources.MetaTag.KeywordsService, servizio.Nome, servizio.Categoria, servizio.Citta, servizio.Punti);
            return(View(nomeView, servizio));
        }