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); }
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)); } }
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)); } }
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)); }
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()); } }
// 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()); } }
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); }
protected bool hasFreeAbonnement(InsAbonne val) { return(isFreeAbonnement(val.Abonnement) && DateTime.Parse(val.dateFin) >= DateTime.Now); }
protected bool hasIllimitedAbonnement(InsAbonne val) { return(val != null && val.Abonnement.illimite.Value == 1 && DateTime.Parse(val.dateFin) >= DateTime.Now); }
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)); } }
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)); }
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)); }
// 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)); }
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)); } }