コード例 #1
0
        protected Dictionary <string, Object> getJson(InsAbonne item)
        {
            var json = new Dictionary <string, Object>();

            if (item == null)
            {
                return(null);
            }
            json.Add("id", item.id);
            json.Add("Ins_id", item.Ins_id);
            json.Add("Abo_id", item.Abo_id);
            json.Add("libelle", item.libelle);
            json.Add("name", item.libelle);
            json.Add("dateDebut", item.dateDebut);
            json.Add("dateDebut_format", Utils.dateFullMonth(item.dateDebut));
            json.Add("dateFin", item.dateFin);
            json.Add("dateFin_format", Utils.dateFullMonth(item.dateFin));
            json.Add("etat", item.etat);
            json.Add("status", item.status);
            json.Add("created", item.created.HasValue ? item.created.Value.ToString("dd/MM/yyyy HH:mm") : null);
            json.Add("created_format", item.created.HasValue ? Utils.dateFullMonth(item.created.Value) : null);
            json.Add("nbrePost", item.nbrePost);
            json.Add("type", getJson(item.Abonnement));
            return(json);
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "id,libelle,dateDebut,dateFin")] InsAbonne insAbonne)
 {
     try
     {
         InsAbonne item = db.InsAbonne.SingleOrDefault(m => m.id == insAbonne.id);
         //InsAbonne insAbonne = db.InsAbonne.Find(id);
         if (item == null)
         {
             return(HttpNotFound());
         }
         item.libelle         = insAbonne.libelle;
         item.dateDebut       = insAbonne.dateDebut;
         item.dateFin         = insAbonne.dateFin;
         db.Entry(item).State = EntityState.Modified;
         db.SaveChanges();
         TempData["result_code"] = 1;
         TempData["message"]     = "Modifications effectué avec succès.";
         TempData.Keep();
         return(RedirectToAction("Index"));
     }
     catch (Exception e)
     {
         throw;
         TempData["result_code"] = -1;
         TempData["message"]     = "Données non valide.";
         TempData.Keep();
         return(View(insAbonne));
     }
 }
コード例 #3
0
        public async Task <JsonResult> PreparePayment(decimal id)
        {
            if (_me == null)
            {
                return(Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet));
            }
            if (_me.type != "client")
            {
                return(Json(new { result_code = -10, message = "Not autorized for this action" }, JsonRequestBehavior.AllowGet));
            }
            Abonnement abonnement = db.Abonnement.Find(id);

            if (abonnement == null)
            {
                return(Json(new { result_code = -1, message = "Data not found" }, JsonRequestBehavior.AllowGet));
            }

            if (hasIllimitedAbonnement(lastAsbonnement) && lastAsbonnement.status == 1)
            {
                return(Json(new { result_code = -1, message = "You don't need abonnement." }, JsonRequestBehavior.AllowGet));
            }

            if (hasFreeAbonnement(lastAsbonnement))
            {
                Json(new { result_code = -1, message = "Your free abonnement is not complete." }, JsonRequestBehavior.AllowGet);
            }

            if (isFreeAbonnement(abonnement))

            {
                InsAbonne insAbonne = new InsAbonne();
                insAbonne.Abo_id    = abonnement.id;
                insAbonne.Ins_id    = _me.id;
                insAbonne.libelle   = "Abonnement " + abonnement.titre;
                insAbonne.status    = 1;
                insAbonne.archived  = 1;
                insAbonne.etat      = abonnement.nbrePost;
                insAbonne.created   = DateTime.Now;
                insAbonne.dateDebut = DateTime.Now.ToString();
                insAbonne.dateFin   = DateTime.Now.AddMonths(1).ToString();
                db.InsAbonne.Add(insAbonne);
                if (this.lastAsbonnement != null)
                {
                    lastAsbonnement.status          = 0;
                    db.Entry(lastAsbonnement).State = EntityState.Modified;
                }
                db.SaveChanges();

                //TODO retraviller le mail avec du HTML
                MsMail mail = new MsMail();
                await mail.Send(_me.email, "Abonnement " + abonnement.titre, "Votre abonnement a bien été pris en compte. Bénéficiez du meilleur de nos service.", null, null, null);

                return(Json(new { result_code = 1, data = getJson(insAbonne) }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { result_code = 2, abonnement = getJson(abonnement) }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #4
0
 public ActionResult Create([Bind(Include = "Ins_id,Abo_id,id,libelle,dateDebut,dateFin,etat,archived,status,created")] InsAbonne insAbonne)
 {
     if (ModelState.IsValid)
     {
         db.InsAbonne.Add(insAbonne);
         db.SaveChanges();
         TempData["result_code"] = 1;
         TempData["message"]     = "Ajout effectué avec succès.";
         TempData.Keep();
         return(RedirectToAction("Index"));
     }
     TempData["result_code"] = -1;
     TempData["message"]     = "Données non valide.";
     TempData.Keep();
     return(View(insAbonne));
 }
コード例 #5
0
        public ActionResult DeleteConfirmed(decimal id)
        {
            try
            {
                InsAbonne insAbonne = db.InsAbonne.SingleOrDefault(m => m.id == id);

                //InsAbonne insAbonne = db.InsAbonne.Find(id);
                insAbonne.archived        = 0;
                db.Entry(insAbonne).State = EntityState.Modified;
                db.SaveChanges();
                TempData["result_code"] = 1;
                TempData["message"]     = "Abonnement supprimé avec succès.";
                TempData.Keep();
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                return(HttpNotFound());
            }
        }
コード例 #6
0
 // GET: InsAbonnes/Details/5
 public ActionResult Details(decimal id)
 {
     if (id == null)
     {
         return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
     }
     try
     {
         InsAbonne insAbonne = db.InsAbonne.SingleOrDefault(m => m.id == id);
         //InsAbonne insAbonne = db.InsAbonne.Find(id);
         if (insAbonne == null)
         {
             return(HttpNotFound());
         }
         return(View(insAbonne));
     }
     catch (Exception e)
     {
         return(HttpNotFound());
     }
 }
コード例 #7
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            Parametre globalParametre = db.Parametre.FirstOrDefault();

            if (globalParametre != null)
            {
                ViewBag.pourcentage = Convert.ToDouble(globalParametre.valeur);
                pourcentage         = Convert.ToDouble(globalParametre.valeur);
            }
            else
            {
                ViewBag.pourcentage = 35;
            }

            ViewBag.nbrCandidat = db.Inscrire.Where(p => p.archived == 1 && p.status == 1 && p.type.Equals("candidat")).ToList().Count;

            ViewBag.nbrClient = db.Inscrire.Where(p => p.archived == 1 && p.status == 1 && p.type.Equals("client")).ToList().Count;

            ViewBag.nbrOffre = db.Postuler.Where(p => p.archived == 1 && p.Inscrire.type.Equals("client")).ToList().Count;

            ViewBag.nbrPostulant = db.Postuler.Where(p => p.archived == 1 && p.status == 1 && p.Inscrire.type.Equals("candidat")).ToList().Count;

            ViewBag.nbreOffreUrgent = db.Postuler.Where(p => p.Job.archived == 1 && p.Inscrire.type.Equals("client") && p.Job.immediat.Equals("true") && p.approbation.Equals("0")).OrderByDescending(p => p.Job.created).ToList().Count;

            ViewBag.nbreEmployesNew = db.Postuler.Where(p => p.archived == 1 && p.Inscrire.archived == 1 && p.signatures.Equals("2") && p.situationTravail.Equals("1") && p.Inscrire.type.Equals("candidat") && p.status == 1).ToList().Count;

            _me            = (Inscrire)Session["inscrire"];
            ViewData["me"] = _me;
            if (_me != null && _me.type == "client")
            {
                try
                {
                    lastAsbonnement = db.InsAbonne.Where(p => p.Ins_id == _me.id && p.archived == 1).OrderByDescending(p => p.id).First();
                    //db.InsAbonne.LastOrDefault(p => p.Ins_id == _me.id && p.archived == 1);
                    if (lastAsbonnement != null && lastAsbonnement.status == 1 && DateTime.Now > DateTime.Parse(lastAsbonnement.dateFin))
                    {
                        lastAsbonnement.status          = 0;
                        db.Entry(lastAsbonnement).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                catch (Exception e)
                {
                    lastAsbonnement = null;
                }
            }
            ViewBag.lastAsbonnement = lastAsbonnement;

            List <Types>     listTypes     = db.Types.Where(p => p.archived == 1).ToList();
            List <Categorie> listCategorie = db.Categorie.Where(p => p.archived == 1).ToList();
            List <AnneeExp>  listAnneeExp  = db.AnneeExp.Where(p => p.archived == 1).ToList();

            ViewBag.listTypes     = listTypes;
            ViewBag.listCategorie = listCategorie;
            ViewBag.listAnneeExp  = listAnneeExp;

            List <NiveauScolarite> listNiveauScolarite = db.NiveauScolarite.Where(p => p.archived == 1).ToList();
            List <Diplome>         listDiplome         = db.Diplome.Where(p => p.archived == 1).ToList();
            List <StatutEmploi>    listStatutEmploi    = db.StatutEmploi.Where(p => p.archived == 1).ToList();
            List <Langue>          listLangue          = db.Langue.Where(p => p.archived == 1).ToList();
            List <TypeOffre>       listTypeOffre       = db.TypeOffre.Where(p => p.archived == 1).ToList();
            List <Contrat>         listContrat         = db.Contrat.Where(p => p.archived == 1).ToList();
            List <QuartTravail>    listQuartTravail    = db.QuartTravail.Where(p => p.archived == 1).ToList();
            List <AvantageSociaux> listAvantageSociaux = db.AvantageSociaux.Where(p => p.archived == 1).ToList();
            List <NiveauLangue>    listNiveauLangue    = db.NiveauLangue.Where(p => p.archived == 1).ToList();

            ViewBag.listNiveauScolarite = listNiveauScolarite;
            ViewBag.listDiplome         = listDiplome;
            ViewBag.listStatutEmploi    = listStatutEmploi;
            ViewBag.listLangue          = listLangue;
            ViewBag.listTypeOffre       = listTypeOffre;
            ViewBag.listContrat         = listContrat;
            ViewBag.listQuartTravail    = listQuartTravail;
            ViewBag.listAvantageSociaux = listAvantageSociaux;
            ViewBag.listNiveauLangue    = listNiveauLangue;

            //retourne l'objet des informations  sur  la  compagnie niovar
            ViewBag.compagnie = db.Inscrire.Where(p => p.type.Equals("compagnie") && p.archived == 1).FirstOrDefault();

            List <Bibliotheque> listBibliotheque = db.Bibliotheque.Where(p => p.archived == 1).OrderByDescending(p => p.created).ToList();

            ViewBag.listBibliotheque = listBibliotheque;

            base.OnActionExecuting(filterContext);
        }
コード例 #8
0
 protected bool hasFreeAbonnement(InsAbonne val)
 {
     return(isFreeAbonnement(val.Abonnement) && DateTime.Parse(val.dateFin) >= DateTime.Now);
 }
コード例 #9
0
 protected bool hasIllimitedAbonnement(InsAbonne val)
 {
     return(val != null && val.Abonnement.illimite.Value == 1 && DateTime.Parse(val.dateFin) >= DateTime.Now);
 }
コード例 #10
0
        public async Task <ActionResult> PayAbonnement(String stripeToken, Decimal id)
        {
            if (_me == null)
            {
                return(Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet));
            }
            if (_me.type != "client")
            {
                return(Json(new { result_code = -10, message = "Not autorized for this action" }, JsonRequestBehavior.AllowGet));
            }
            Abonnement abonnement = db.Abonnement.Find(id);

            if (abonnement == null || String.IsNullOrEmpty(stripeToken))
            {
                return(Json(new { result_code = -1, message = "Data not found" }, JsonRequestBehavior.AllowGet));
            }
            StripeConfiguration.SetApiKey(STRIPE_API_KEY);


            double amount = abonnement.montant.Value * 100;

            if (amount <= 0)
            {
                return(Json(new { result_code = -1, message = "Amount not valid" }, JsonRequestBehavior.AllowGet));
            }
            var stripeOptions = new ChargeCreateOptions
            {
                Amount      = (long)Math.Ceiling(amount), // 1 dollar is equal to 100 cent
                Currency    = "USD",
                Description = "Charge for " + _me.email + " to abonnement " + abonnement.titre,
                Source      = stripeToken,
            };
            var service = new ChargeService();

            InsAbonne insAbonne = new InsAbonne();

            insAbonne.Abo_id    = abonnement.id;
            insAbonne.Ins_id    = _me.id;
            insAbonne.libelle   = "Abonnement " + abonnement.titre;
            insAbonne.status    = 1;
            insAbonne.archived  = 1;
            insAbonne.etat      = abonnement.nbrePost;
            insAbonne.created   = DateTime.Now;
            insAbonne.dateDebut = DateTime.Now.ToString();

            if (!needAbonnement() && DateTime.Parse(lastAsbonnement.dateFin) > DateTime.Now)
            {
                insAbonne.dateFin               = DateTime.Parse(lastAsbonnement.dateFin).AddMonths(1).ToString();
                insAbonne.etat                 += lastAsbonnement.etat;
                lastAsbonnement.status          = 0;
                db.Entry(lastAsbonnement).State = EntityState.Modified;
            }
            else
            {
                insAbonne.dateFin = DateTime.Now.AddMonths(1).ToString();
            }
            db.InsAbonne.Add(insAbonne);
            try
            {
                Charge charge = service.Create(stripeOptions);
                var    map    = new Dictionary <String, String>();
                map.Add("@ViewBag.titre", " Payment de l'abonnement " + abonnement.titre);
                map.Add("@ViewBag.login", _me.login);
                map.Add("@ViewBag.content", "Votre abonnement a bien été pris en compte. Bénéficiez du meilleur de nos service.");
                string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map);
                MsMail mail = new MsMail();
                if (this.lastAsbonnement != null)
                {
                    lastAsbonnement.status          = 0;
                    db.Entry(lastAsbonnement).State = EntityState.Modified;
                }
                db.SaveChanges();

                //TODO retraviller le mail avec du HTML
                await mail.Send(_me.email, "Abonnement", body);

                return(Json(new { result_code = 1, data = getJson(insAbonne) }, JsonRequestBehavior.AllowGet));
            }
            catch (StripeException e)
            {
                return(Json(new { result_code = -1, message = "An exception occured" }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #11
0
        public ActionResult PostOffre(Job job)
        {
            if (job.immediat.Equals("false") && needAbonnement())
            {
                return(RedirectToAction("Abonnement", "Inscrires"));
            }



            if (ModelState.IsValid)
            {
                try
                {
                    string daysWork = "";
                    for (int i = 0; i < job.workDay.Length; i++)
                    {
                        daysWork += job.workDay[i].ToString() + ",";
                    }
                    daysWork = daysWork.TrimEnd(',');

                    job.jourTravail = daysWork;

                    job.status   = 1;
                    job.archived = 1;
                    job.etat     = "1";
                    job.created  = DateTime.Now;

                    db.Job.Add(job);
                    db.SaveChanges();

                    for (int i = 0; i < job.listDip.Length; i++)
                    {
                        DiplomeJob diplomeJob = new DiplomeJob();
                        diplomeJob.archived = 1;
                        diplomeJob.created  = DateTime.Now;
                        diplomeJob.Job_id   = job.id;
                        diplomeJob.Dip_id   = Convert.ToDecimal(job.listDip[i]);
                        db.DiplomeJob.Add(diplomeJob);
                    }

                    if (job.listAvantage.Length > 0)
                    {
                        for (int i = 0; i < job.listAvantage.Length; i++)
                        {
                            AvantageSociauxJob avantageSociauxJob = new AvantageSociauxJob();
                            avantageSociauxJob.archived = 1;
                            avantageSociauxJob.created  = DateTime.Now;
                            avantageSociauxJob.Job_id   = job.id;
                            avantageSociauxJob.Ava_id   = Convert.ToDecimal(job.listAvantage[i]);
                            db.AvantageSociauxJob.Add(avantageSociauxJob);
                        }
                    }

                    db.SaveChanges();



                    Postuler postuler = new Postuler();
                    postuler.Job_id           = job.id;
                    postuler.Ins_id           = Convert.ToDecimal(Session["id"]);
                    postuler.created          = DateTime.Now;
                    postuler.etatAdmin        = "0";
                    postuler.etatClient       = "0";
                    postuler.etatCandidat     = "0";
                    postuler.etat             = "0";
                    postuler.signatures       = "0";
                    postuler.signatureClient  = 0;
                    postuler.approbation      = "0";
                    postuler.situationTravail = "0";

                    if (job.immediat.Equals("true"))
                    {
                        postuler.approbation = "0";
                    }
                    else
                    {
                        postuler.approbation = "1";

                        if (lastAsbonnement != null)
                        {
                            InsAbonne currentInsAbonnement = db.InsAbonne.Where(p => p.id == lastAsbonnement.id).First();
                            currentInsAbonnement.etat           -= 1;
                            currentInsAbonnement.nbrePost       -= 1;
                            db.Entry(currentInsAbonnement).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        else
                        {
                            return(RedirectToAction("Abonnement", "Inscrires"));
                        }
                    }

                    postuler.situationTravail = "0";
                    postuler.archived         = 1;


                    db.Postuler.Add(postuler);
                    db.SaveChanges();

                    TempData["result_code"] = 1;
                    TempData["message"]     = "Offre d'emploi publié avec succès.";
                    TempData.Keep();

                    return(RedirectToAction("ManagerOffre"));
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message.ToString();

                    TempData["result_code"] = -1;
                    TempData["message"]     = "Données non valide. veuillez renseignez tous les champs obligatoire (*)";
                    TempData.Keep();
                    return(View(job));
                }
            }

            TempData["result_code"] = -1;
            TempData["message"]     = "Données non valide. veuillez renseignez tous les champs";
            TempData.Keep();
            return(View(job));
        }
コード例 #12
0
        public async Task <ActionResult> Payments(String stripeToken)
        {
            Abonnement abonnement = (Abonnement)Session["abonnement"];

            if (abonnement == null || _me == null || _me.type != "client")
            {
                TempData["result_code"] = -1;
                TempData["message"]     = "Temps fourni pour abonnement expiré veillez réessayer.";
                TempData.Keep();
                return(RedirectToAction("Index", "Home"));
            }
            if (String.IsNullOrEmpty(stripeToken))
            {
                return(HttpNotFound());
            }
            StripeConfiguration.SetApiKey(STRIPE_API_KEY);

            var stripeOptions = new ChargeCreateOptions
            {
                Amount = (long)Math.Ceiling(abonnement.montant.Value) * 100,  // 1 dollar is equal to 100 cent.

                Currency    = "USD",
                Description = "Charge for " + _me.email + " to abonnement " + abonnement.titre,
                Source      = stripeToken,
                //Customer = customer.Id
            };
            var service = new ChargeService();

            InsAbonne insAbonne = new InsAbonne();

            insAbonne.Abo_id    = abonnement.id;
            insAbonne.Ins_id    = _me.id;
            insAbonne.libelle   = "Abonnement " + abonnement.titre;
            insAbonne.status    = 1;
            insAbonne.archived  = 1;
            insAbonne.etat      = abonnement.nbrePost;
            insAbonne.created   = DateTime.Now;
            insAbonne.dateDebut = DateTime.Now.ToString();

            if (!needAbonnement() && DateTime.Parse(lastAsbonnement.dateFin) > DateTime.Now)
            {
                insAbonne.dateFin               = DateTime.Parse(lastAsbonnement.dateFin).AddMonths(1).ToString();
                insAbonne.etat                 += lastAsbonnement.etat;
                lastAsbonnement.status          = 0;
                db.Entry(lastAsbonnement).State = EntityState.Modified;
            }
            else
            {
                insAbonne.dateFin = DateTime.Now.AddMonths(1).ToString();
            }
            db.InsAbonne.Add(insAbonne);
            try
            {
                Charge charge = service.Create(stripeOptions);
                var    map    = new Dictionary <String, String>();
                map.Add("@ViewBag.titre", " Payment de l'abonnement " + abonnement.titre);
                map.Add("@ViewBag.login", _me.login);
                map.Add("@ViewBag.content", "Votre abonnement a bien été pris en compte. Bénéficiez du meilleur de nos service.");
                string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map);
                MsMail mail = new MsMail();
                if (this.lastAsbonnement != null)
                {
                    lastAsbonnement.status          = 0;
                    db.Entry(lastAsbonnement).State = EntityState.Modified;
                }
                db.SaveChanges();

                //TODO retraviller le mail avec du HTML
                await mail.Send(_me.email, "Abonnement", body);
            }catch (StripeException e)
            {
            }
            ViewBag.inscrire  = _me;
            ViewBag.insAbonne = insAbonne;
            ViewBag.hasPaid   = true;
            return(View(abonnement));
        }
コード例 #13
0
        // GET: Inscrires/Create
        public async Task <ActionResult> Payments(decimal id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Abonnement abonnement = db.Abonnement.Find(id);

            if (abonnement == null)
            {
                return(HttpNotFound());
            }


            if (hasIllimitedAbonnement(lastAsbonnement))
            {
                TempData["result_code"] = -1;
                TempData["message"]     = "Vous ne pouvez souscrire a un autre abonnement quand vos posts illimités sont encore actifs.";
                TempData.Keep();
                return(RedirectToAction("AbonnementList", "Profile"));
            }
            if (!needAbonnement() && isFreeAbonnement(abonnement) ||
                lastAsbonnement != null && hasFreeAbonnement(lastAsbonnement) && DateTime.Parse(lastAsbonnement.dateFin) >= DateTime.Now)

            {
                // return RedirectToAction("Abonnement", "Inscrires");
            }
            if (_me == null || _me.type != "client")
            {
                TempData["result_code"] = -1;
                TempData["message"]     = "Temps fourni pour abonnement expiré veillez réessayer.";
                TempData.Keep();
                return(RedirectToAction("Index", "Home"));
            }

            if (isFreeAbonnement(abonnement))

            {
                InsAbonne insAbonne = new InsAbonne();
                insAbonne.Abo_id    = abonnement.id;
                insAbonne.Ins_id    = _me.id;
                insAbonne.libelle   = "Abonnement " + abonnement.titre;
                insAbonne.status    = 1;
                insAbonne.archived  = 1;
                insAbonne.etat      = abonnement.nbrePost;
                insAbonne.created   = DateTime.Now;
                insAbonne.dateDebut = DateTime.Now.ToString();
                insAbonne.dateFin   = DateTime.Now.AddMonths(1).ToString();
                db.InsAbonne.Add(insAbonne);
                if (this.lastAsbonnement != null)
                {
                    lastAsbonnement.status          = 0;
                    db.Entry(lastAsbonnement).State = EntityState.Modified;
                }
                db.SaveChanges();

                //TODO retraviller le mail avec du HTML
                MsMail mail = new MsMail();
                await mail.Send(_me.email, "Abonnement " + abonnement.titre, "Votre abonnement a bien été pris en compte. Bénéficiez du meilleur de nos service.", null, null, null);

                ViewBag.inscrire  = _me;
                ViewBag.insAbonne = insAbonne;
                ViewBag.hasPaid   = true;
                return(View(abonnement));
            }
            Session.Add("abonnement", abonnement);
            ViewBag.inscrire = _me;
            return(View(abonnement));
        }
コード例 #14
0
        public JsonResult PostOffre(Job job)
        {
            if (_me == null)
            {
                return(Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet));
            }

            if (job.immediat.Equals("false") && needAbonnement())
            {
                return(Json(new { result_code = -10, message = "You need abonnement" }, JsonRequestBehavior.AllowGet));
            }
            try
            {
                string daysWork = "";
                for (int i = 0; i < job.workDay.Length; i++)
                {
                    daysWork += job.workDay[i].ToString() + ",";
                }
                daysWork        = daysWork.TrimEnd(',');
                job.jourTravail = daysWork;
                job.status      = 1;
                job.archived    = 1;
                job.etat        = "1";
                job.created     = DateTime.Now;
                db.Job.Add(job);
                db.SaveChanges();

                var dipArray = job.listDipStr.Split(',');
                for (int i = 0; i < dipArray.Length; i++)
                {
                    DiplomeJob diplomeJob = new DiplomeJob();
                    diplomeJob.archived = 1;
                    diplomeJob.created  = DateTime.Now;
                    diplomeJob.Job_id   = job.id;
                    var dipId = Decimal.Parse(dipArray[i]);
                    diplomeJob.Dip_id = dipId;
                    db.DiplomeJob.Add(diplomeJob);
                }

                var avanArray = job.listAvantageStr.Split(',');
                for (int i = 0; i < avanArray.Length; i++)
                {
                    AvantageSociauxJob avantageSociauxJob = new AvantageSociauxJob();
                    avantageSociauxJob.archived = 1;
                    avantageSociauxJob.created  = DateTime.Now;
                    avantageSociauxJob.Job_id   = job.id;
                    avantageSociauxJob.Ava_id   = Decimal.Parse(avanArray[i]);
                    db.AvantageSociauxJob.Add(avantageSociauxJob);
                }
                db.SaveChanges();

                Postuler postuler = new Postuler();
                postuler.Job_id           = job.id;
                postuler.Ins_id           = _me.id;
                postuler.created          = DateTime.Now;
                postuler.etatAdmin        = "0";
                postuler.etatClient       = "0";
                postuler.etatCandidat     = "0";
                postuler.etat             = "0";
                postuler.signatures       = "0";
                postuler.signatureClient  = 0;
                postuler.approbation      = "0";
                postuler.situationTravail = "0";

                if (job.immediat.Equals("true"))
                {
                    postuler.approbation = "0";
                }
                else
                {
                    postuler.approbation = "1";
                    if (lastAsbonnement != null)
                    {
                        InsAbonne currentInsAbonnement = db.InsAbonne.Where(p => p.id == lastAsbonnement.id).First();
                        currentInsAbonnement.etat           -= 1;
                        currentInsAbonnement.nbrePost       -= 1;
                        db.Entry(currentInsAbonnement).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        return(Json(new { result_code = -1, message = "Abonnement not found" }, JsonRequestBehavior.AllowGet));
                    }
                }
                postuler.situationTravail = "0";
                postuler.archived         = 1;
                db.Postuler.Add(postuler);
                db.SaveChanges();
                return(Json(new { result_code = 1, data = getJson(postuler) }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                throw;
                return(Json(new { result_code = -2, message = "An error occured" }, JsonRequestBehavior.AllowGet));
            }
        }