public IEnumerable <object> GetIngredienti(string id)
        {
            List <Vetrina> dataVetrina = EmpDetails.Vetrina.ToList();
            List <Dolce>   dataDolce   = EmpDetails.Dolce.ToList();
            Vetrina        objVetrina  = new Vetrina();

            Int64.TryParse(id, out Int64 pk_vetrina);
            var lstVetr = from vetrina in dataVetrina
                          join dolce in dataDolce
                          on vetrina.fk_Dolce equals dolce.Pk_Dolce
                          where vetrina.pk_Vetrina == pk_vetrina
                          select new
            {
                pk_Vetrina  = vetrina.pk_Vetrina,
                fk_Dolce    = vetrina.fk_Dolce,
                Descrizione = dolce.Descrizione,
                Stato       = CalcolaStato(vetrina).ToString(),
                Prezzo      = CalcolaSconto(vetrina, dolce.Prezzo),
                Nome        = dolce.Nome,
                Data        = vetrina.Data
            }
            ;

            lstVetr = lstVetr.Where(x => x.Stato == Vetrina.StatoDolce.InVendita.ToString()).OrderByDescending(x => x.Data)
                      .ToList();;
            return(lstVetr);
        }
Example #2
0
        public IEnumerable <object> GetIngredienti(string id)
        {
            List <Ricetta>     dataRicetta     = EmpDetails.Ricetta.ToList();
            List <Ingrediente> dataIngredienti = EmpDetails.Ingrediente.ToList();
            List <Misura>      dataMisura      = EmpDetails.Misura.ToList();
            List <Dolce>       dataDolce       = EmpDetails.Dolce.ToList();

            Vetrina objVetrina = new Vetrina();

            Int64.TryParse(id, out Int64 pk_Dolce);
            var lstRicetta = from ricetta in dataRicetta
                             join ingrediente in dataIngredienti
                             on ricetta.Fk_Ingrediente equals ingrediente.Pk_ingrediente
                             join misura in dataMisura
                             on ricetta.FK_Misura equals misura.PK_Misura
                             join dolce in dataDolce
                             on ricetta.Fk_Dolce equals dolce.Pk_Dolce
                             where ricetta.Fk_Dolce == pk_Dolce

                             select new Ricettas
            {
                Quntita         = ricetta.Quantita,
                NomeIngrediente = ingrediente.Nome,
                Descrizione     = misura.Descrizione,
                NomeDolce       = dolce.Nome
            }
            ;

            return(lstRicetta);
        }
        public WebApiResult inserisciDolceVetrina(string dolce)
        {
            WebApiResult objResult = new WebApiResult();

            if (dolce == "undefined")
            {
                objResult.message = "Errore Selezionare un dolce dal menù a tendina!";
                objResult.status  = WebApiResult.state.KO.ToString();
                return(objResult);               // BadRequest("Selezionare un dolce dal menù a tendina!");
            }
            Dolce         objDolce   = new Dolce();
            List <string> parseValue = dolce.Split('-').ToList <string>();

            int.TryParse(parseValue[1].ToString(), out int id);
            objDolce = (from a in EmpDetails.Dolce where a.Pk_Dolce == id select a).FirstOrDefault();
            Vetrina objVetrina = new Vetrina();

            objVetrina.Data     = DateTime.Now;
            objVetrina.Stato    = Vetrina.StatoDolce.InVendita.ToString();
            objVetrina.fk_Dolce = id;
            objVetrina.Prezzo   = objDolce.Prezzo;
            var data = EmpDetails.Vetrina.Add(objVetrina);

            EmpDetails.SaveChanges();
            objResult.message = $"Dolce  {objDolce.Nome} Prezzo {objDolce.Prezzo} messo in vendita appare nella vetrina con data odierna!";
            objResult.status  = WebApiResult.state.OK.ToString();
            return(objResult);
        }
        /// <summary>
        /// Il metodo calcola lo sconto primo giorno prezzo pieno , secondo 80% terzo 20%. Stato non commestibile al  4 giorno
        /// </summary>
        /// <param name="objVetr">data messa in vendita del dolce in vetrina</param>
        /// <param name="PrezzoDolce">prezzo del dolce alla data attuale</param>
        /// <returns></returns>
        public decimal CalcolaSconto(Vetrina objVetr, decimal PrezzoDolce)
        {
            decimal prezzo = PrezzoDolce;
            Int32   result = CountDay(objVetr.Data);

            //Se il dolce è stato messo in vetrina da 1 giorni non aggiorno il prezzo
            if (result >= 24 && result < 48)
            {
                objVetr.Prezzo = PrezzoDolce;
                AggiornaVetrina(objVetr);
                return(objVetr.Prezzo);
            }
            //Se il dolce è stato messo in vetrina da 2 giorni aggiorno il prezzo
            else if (result >= 48 && result < 72)
            {
                objVetr.Prezzo = PrezzoDolce * 80 / 100;
                AggiornaVetrina(objVetr);
                return(objVetr.Prezzo);
            }
            //Se il dolce è stato messo in vetrina da 3 giorni aggiorno il prezzo
            else if (result >= 72 && result < 96)
            {
                objVetr.Prezzo = PrezzoDolce * 20 / 100;
                AggiornaVetrina(objVetr);
                return(objVetr.Prezzo);
            }
            //Se il dolce è stato messo in vetrina da + di 3 giorni aggiorno il prezzo
            else if (result >= 96)
            {
                objVetr.Prezzo = 0;
                AggiornaVetrina(objVetr);
                return(objVetr.Prezzo);
            }
            return(prezzo);
        }
        public void AggiornaVetrina(Vetrina objVet)
        {
            Vetrina f = (from s in EmpDetails.Vetrina where s.pk_Vetrina == objVet.pk_Vetrina select s).SingleOrDefault();

            EmpDetails.Entry(f).State = EntityState.Detached;
            EmpDetails.Vetrina.Attach(objVet);
            EmpDetails.Entry(objVet).State = EntityState.Modified;
            EmpDetails.SaveChanges();
        }
        public string CalcolaStato(Vetrina objVetr)
        {
            double result = CountDay(objVetr.Data);

            if (result >= 96)
            {
                objVetr.Stato = StatoDolce.NonCommestibile.ToString();
                AggiornaVetrina(objVetr);
                return(objVetr.Stato);
            }
            objVetr.Stato = StatoDolce.InVendita.ToString();
            AggiornaVetrina(objVetr);
            return(objVetr.Stato);
        }
        public IEnumerable <Ingrediente> Get(string day, string pkvetrina)
        {
            VetrinaController objVetrina = new VetrinaController(EmpDetails);
            Vetrina           objVetr    = new Vetrina();
            List <Vetrina>    lstVetr    = EmpDetails.Vetrina.ToList();

            objVetr = lstVetr[Convert.ToInt32(pkvetrina)];
            DateTime dat = DateTime.Now;
            DateTime d   = dat.AddDays(-Convert.ToInt32(day));

            objVetr.Data = d;
            //decimal prezzo = objVetrina.CalcolaSconto(objVetr, 1000);
            //string stato = objVetrina.CalcolaStato(objVetr).ToString();
            List <Ingrediente> lstIngr = new List <Ingrediente>();

            return(lstIngr);
        }