public ActionResult Create(OfferModel offre)
        {
            if (offre != null)
                {

                    int? noLivre = TraiterLivre(offre.Livre);
                    int? id = null;

                    if (noLivre != null)
                    {
                        offre.Livre.NoLivre = (int)noLivre;

                        var connetionString = Properties.Settings.Default.dbConnectionString;
                        string sql = "INSERT INTO Offre(IdLivre, Remarques, Etat, CoursOblig, CoursRecom, userId, Prix) OUTPUT Inserted.ID " +
                                           "VALUES(@IdLivre, @Remarques, @Etat, @CoursOblig, @CoursRecom, @userId, @Prix) SET @id=SCOPE_IDENTITY()";

                        var cnn = new SqlConnection(connetionString);

                        try
                        {
                            cnn.Open();

                            var command = new SqlCommand(sql, cnn);

                            RemplirParametreOffre(command, offre);

                            command.ExecuteNonQuery();
                            id = (int?)command.Parameters["@id"].Value;
                            command.Dispose();
                            cnn.Close();

                            //publishToFacebook();

                            offre.Message = "L'offre " + id + " a été créée avec succès.";
                            offre.TypeMessage = TypeMessage.Succes;
                        }
                        catch (Exception ex)
                        {
                            offre.Message = "Un problème est survenu lors de la création de l'offre.";
                            offre.TypeMessage = TypeMessage.Erreur;
                        }
                    }
                    else
                    {
                        offre.Message = "Le code ISBN soumis n'est pas valide.";
                        offre.TypeMessage = TypeMessage.Warning;
                    }

                    offre.ListeOffresUtil = ObtenirListeOffresUtil();
                    offre.ListeOffresUtil.First(x => x.NoOffre == id).estNouv = true;
                    offre.Livre = new LivreModel {};
                }

                ViewBag.menuItemActive = "Offre";
                return View("ManageOffer", offre);
        }
        public ActionResult DesactiverOffre(OfferModel offerModel)
        {
            var noOffre = Convert.ToInt32(Request.Form["NoOffre"]);

            offerModel.NoOffre = noOffre;

            var message="";
            TypeMessage type;

            if (UpdateOffre(offerModel))
            {
                message = "L'offre a été fermée.";
                type = TypeMessage.Succes;
            }
            else
            {
                message = "L'offre n'a pu être fermée.";
                type = TypeMessage.Erreur;
            }

            var offre = new OfferModel
            {
                Livre = new LivreModel {},
                ListeOffresUtil = ObtenirListeOffresUtil(),
                Message = message,
                TypeMessage = type
            };
            ViewBag.menuItemActive = "Offre";
            return View("ManageOffer", offre);
        }
        public bool UpdateOffre(OfferModel offre, int indActif = 0)
        {
            var update = false;

            var connetionString = Properties.Settings.Default.dbConnectionString;
            var sql = "Update Offre Set IndActif = '" + indActif + "', Raison = '" + offre.SelectedRaison + "', DetailsRaison = '" + offre.DétailsFermeture + "' Where Id = " + offre.NoOffre;
            var cnn = new SqlConnection(connetionString);

            try
            {
                cnn.Open();
                var command = new SqlCommand(sql, cnn);
                command.ExecuteNonQuery();
                command.Dispose();
                cnn.Close();
                update = true;
            }
            catch (Exception ex)
            {

            }

            return update;
        }
        public void RemplirParametreOffre(SqlCommand command, OfferModel offre)
        {
            var paramIdLivre = new SqlParameter("@IdLivre", SqlDbType.NVarChar)
            {
                Value = offre.Livre.NoLivre
            };
            command.Parameters.Add(paramIdLivre);

            var paramRemarques = new SqlParameter("@Remarques", SqlDbType.NVarChar)
            {
                Value = offre.Remarques ?? ""
            };
            command.Parameters.Add(paramRemarques);

            var paramEtat = new SqlParameter("@Etat", SqlDbType.NChar)
            {
                Value = offre.SelectedEtat
            };
            command.Parameters.Add(paramEtat);

            var paramDateFin = new SqlParameter("@CoursOblig", SqlDbType.NVarChar)
            {
                Value = offre.CoursObligatoires??""
            };
            command.Parameters.Add(paramDateFin);

            var paramStatut = new SqlParameter("@CoursRecom", SqlDbType.NVarChar)
            {
                Value = offre.CoursReferences??""
            };
            command.Parameters.Add(paramStatut);

            var paramUserId = new SqlParameter("@userId", SqlDbType.NVarChar)
            {
                Value = User.Identity.GetUserId()
            };
            command.Parameters.Add(paramUserId);

            var paramPrix = new SqlParameter("@Prix", SqlDbType.Float)
            {
                Value = offre.Prix
            };
            command.Parameters.Add(paramPrix);

            command.Parameters.Add("@id", SqlDbType.Int).Direction = ParameterDirection.Output;
        }
 public ActionResult Index()
 {
     var offreModel = new OfferModel { Livre = new LivreModel { }, ListeOffresUtil = ObtenirListeOffresUtil() };
     ViewBag.menuItemActive = "Offre";
     return View("ManageOffer", offreModel);
 }
        public ActionResult Create(OfferModel offre)
        {
            if (offre != null)
                {

                    switch(offre.TypeArticle)
                    {
                        case 1:
                        {
                            int? noLivre = TraiterLivre(offre.Livre);
                            int? id = null;

                            if (noLivre != null)
                            {
                                offre.Livre.NoLivre = (int)noLivre;

                                var connetionString = Properties.Settings.Default.dbConnectionString;
                                string sql = "INSERT INTO Offre(IdArticle, Remarques, Etat, CoursOblig, CoursRecom, userId, Prix, DateCreation, IdTypeArticle) OUTPUT Inserted.ID " +
                                                   "VALUES(@IdLivre, @Remarques, @Etat, @CoursOblig, @CoursRecom, @userId, @Prix, GETDATE(),1) SET @id=SCOPE_IDENTITY()";

                                var cnn = new SqlConnection(connetionString);

                                try
                                {
                                    cnn.Open();

                                    var command = new SqlCommand(sql, cnn);

                                    RemplirParametreOffre(command, offre);

                                    command.ExecuteNonQuery();
                                    id = (int?)command.Parameters["@id"].Value;
                                    command.Dispose();
                                    cnn.Close();

                                    //publishToFacebook();

                                    offre.Message = "L'offre " + id + " a été créée avec succès.";
                                    offre.TypeMessage = TypeMessage.Succes;
                                }
                                catch (Exception ex)
                                {
                                    offre.Message = "Un problème est survenu lors de la création de l'offre.";
                                    offre.TypeMessage = TypeMessage.Erreur;
                                }
                            }
                            else
                            {
                                offre.Message = "Le code ISBN soumis n'est pas valide.";
                                offre.TypeMessage = TypeMessage.Warning;
                            }

                            offre.ListeOffresUtilCalculatrices = ObtenirListeOffresUtilCalculatrice();
                            offre.ListeOffresUtilNotesCours = ObtenirListeOffresUtilNotesCours();
                            offre.ListeOffresUtil = ObtenirListeOffresUtil();
                            offre.ListeOffresUtil.First(x => x.NoOffre == id).estNouv = true;
                            offre.Livre = new LivreModel {};
                        }
                        break;
                        case 2 :

                            int? noNotesDeCours = TraiterNotesDeCours(offre.NotesDeCours);
                            int? idOffreNotesCours = null;

                            if (noNotesDeCours != null)
                            {

                                offre.NotesDeCours.NoNotesDeCours = (int)noNotesDeCours;

                                var connetionString = Properties.Settings.Default.dbConnectionString;
                                string sql = "INSERT INTO Offre(IdArticle, Remarques, Etat, CoursOblig, CoursRecom, userId, Prix, DateCreation, IdTypeArticle) OUTPUT Inserted.ID " +
                                                   "VALUES(@IdNotes, @Remarques, @Etat, @CoursOblig, @CoursRecom, @userId, @Prix, GETDATE(),2) SET @id=SCOPE_IDENTITY()";

                                var cnn = new SqlConnection(connetionString);

                                try
                                {
                                    cnn.Open();

                                    var command = new SqlCommand(sql, cnn);

                                    RemplirParametreOffre(command, offre);

                                    command.ExecuteNonQuery();
                                    idOffreNotesCours = (int?)command.Parameters["@id"].Value;
                                    command.Dispose();
                                    cnn.Close();

                                    //publishToFacebook();

                                    offre.Message = "L'offre " + idOffreNotesCours + " a été créée avec succès.";
                                    offre.TypeMessage = TypeMessage.Succes;
                                }
                                catch (Exception ex)
                                {
                                    offre.Message = "Un problème est survenu lors de la création de l'offre.";
                                    offre.TypeMessage = TypeMessage.Erreur;
                                }
                            }
                            else
                            {
                                offre.Message = "Le code barre soumis n'est pas valide.";
                                offre.TypeMessage = TypeMessage.Warning;
                            }

                            offre.ListeOffresUtilCalculatrices = ObtenirListeOffresUtilCalculatrice();
                            offre.ListeOffresUtilNotesCours = ObtenirListeOffresUtilNotesCours();
                            offre.ListeOffresUtil = ObtenirListeOffresUtil();
                            offre.ListeOffresUtilNotesCours.First(x => x.NoOffre == idOffreNotesCours).estNouv = true;
                            offre.NotesDeCours = new NotesDeCoursModel {};
                        break;
                        case 3:

                        int? noCalculatrice = offre.Calculatrice.NoCalculatrice;
                        int? idOffreCalculatrice = null;

                        if (noCalculatrice != 0)
                        {
                            offre.Calculatrice.NoCalculatrice = (int)noCalculatrice;

                            var connetionString = Properties.Settings.Default.dbConnectionString;
                            string sql = "INSERT INTO Offre(IdArticle, Remarques, Etat, CoursOblig, CoursRecom, userId, Prix, DateCreation, IdTypeArticle) OUTPUT Inserted.ID " +
                                               "VALUES(@IdCalculatrice, @Remarques, @Etat, @CoursOblig, @CoursRecom, @userId, @Prix, GETDATE(),3) SET @id=SCOPE_IDENTITY()";

                            var cnn = new SqlConnection(connetionString);

                            try
                            {
                                cnn.Open();

                                var command = new SqlCommand(sql, cnn);

                                RemplirParametreOffre(command, offre);

                                command.ExecuteNonQuery();
                                idOffreCalculatrice = (int?)command.Parameters["@id"].Value;
                                command.Dispose();
                                cnn.Close();

                                //publishToFacebook();

                                offre.Message = "L'offre " + idOffreCalculatrice + " a été créée avec succès.";
                                offre.TypeMessage = TypeMessage.Succes;
                            }
                            catch (Exception ex)
                            {
                                offre.Message = "Un problème est survenu lors de la création de l'offre.";
                                offre.TypeMessage = TypeMessage.Erreur;
                            }
                        }
                        else
                        {
                            offre.Message = "Le modèle soumis n'est pas valide.";
                            offre.TypeMessage = TypeMessage.Warning;
                        }

                        offre.ListeOffresUtilCalculatrices = ObtenirListeOffresUtilCalculatrice();
                        offre.ListeOffresUtilNotesCours = ObtenirListeOffresUtilNotesCours();
                        offre.ListeOffresUtil = ObtenirListeOffresUtil();
                        offre.ListeOffresUtilCalculatrices.First(x => x.NoOffre == idOffreCalculatrice).estNouv = true;
                        offre.Calculatrice = new CalculatriceModel { };
                        break;
                    }
                }

                ViewBag.menuItemActive = "Offre";
                return View("ManageOffer", offre);
        }