public async Task <ActionResult> changeStatutSignatures(decimal id, string val, int remuneration) { Postuler postuler = db.Postuler.FirstOrDefault(p => p.id == id); if (postuler == null) { return(HttpNotFound()); } postuler.signatures = val; postuler.remuneration = remuneration; db.Entry(postuler).State = EntityState.Modified; var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", postuler.Inscrire.login + " Nouvelle opportunité pour vous "); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", "Votre candidature au poste de " + postuler.Job.titre + " à été accepté vous êtes convié à signer votre contrat recus via le dashbaord sur NioVarJobs"); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(postuler.Inscrire.email, "Candidature accepté", body); db.SaveChanges(); return(RedirectToAction("listPostulantAdmin", new { id = postuler.Job_id })); }
public async Task <JsonResult> ForgotPassword() { String email = Request.Form["email"]; if (String.IsNullOrEmpty(email)) { return(Json(new { result_code = 0, message = "Datas not valid" }, JsonRequestBehavior.AllowGet)); } Inscrire user = null; try { user = db.Inscrire.Single(x => x.email == email && x.archived == 1 && x.etat == 1); //Inscrire user = db.Inscrire.Where(x => x.email == email && x.archived == 1 && x.etat == 1).FirstOrDefault(); if (user == null) { return(Json(new { result_code = -1, message = "Account not found. Create an account !" }, JsonRequestBehavior.AllowGet)); } MsMail mail = new MsMail(); await mail.Send(user.email, "Forgot password ?", "Mr " + user.login + " Your password is " + user.password); return(Json(new { result_code = 1 }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { result_code = -2, message = "Account not found. Create an account !" }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> confirmContratCandidat(decimal id) { Postuler postuler = db.Postuler.FirstOrDefault(p => p.id == id); if (postuler == null) { return(HttpNotFound()); } postuler.signatures = "2"; postuler.situationTravail = "1"; postuler.dateSignatures = DateTime.Now; db.Entry(postuler).State = EntityState.Modified; var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Validation engagement de travail "); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", "Le candidat " + postuler.Inscrire.login + " à lus et confirmer la signature de son engagement de travail pour le poste de " + postuler.Job.titre + ".veuillez suivre la candidature de ce candidat sur NioVarJobs"); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(Constante.mailCompagny, "Contrat de travail signé et valider", body); db.SaveChanges(); return(RedirectToAction("MesCandidatures")); }
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 async Task <JsonResult> Create([Bind(Include = "Ins_id,periode,heureTravail,montant,remuneration,dateDebut,dateFin")] Location location) { if (_me == null) { return(Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet)); } if (_me.Equals("candidat")) { return(Json(new { result_code = -1, message = "Your are not allowed" }, JsonRequestBehavior.AllowGet)); } Inscrire candidat = db.Inscrire.Where(p => p.id == location.Ins_id).First(); if (candidat == null) { return(Json(new { result_code = -1, message = "Candidat not found" }, JsonRequestBehavior.AllowGet)); } location.Ins_id2 = _me.id; location.signClient = 0; location.signCandidat = 0; location.avisClient = 0; location.avisCandidat = 0; location.status = 1; location.etat = 0; location.archived = 1; location.created = DateTime.Now; db.Location.Add(location); try { var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Votre demande location a été effectué avec succès pour un salaire de : " + location.remuneration); map.Add("@ViewBag.login", _me.nom); map.Add("@ViewBag.content", "Votre demande est bien pris en compte et suivra la procédure adéquat. Merci bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); var map1 = new Dictionary <String, String>(); map1.Add("@ViewBag.titre", "Mr/Mme : " + candidat.login + "Vous êtes sollicité pour un travail pour une période de " + location.periode + "pour un salaire de " + location.remuneration * 75 / 100); map1.Add("@ViewBag.login", candidat.login); map1.Add("@ViewBag.content", "Vous êtes conviez à bien a suivre votre dossier via votre espace compte sur https://niovar.solutions/Inscrires/Login. Merci bénéficiez du meilleur de nos service."); string body2 = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map1); MsMail mail = new MsMail(); MsMail mail2 = new MsMail(); db.SaveChanges(); //TODO retraviller le mail avec du HTML await mail.Send(_me.email, "NiovarJobs, demande location ", body); await mail2.Send(candidat.email, "NiovarJobs, Nouveau job disponible pour vous ", body2); return(Json(new { result_code = 1, data = getJson(location) }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { result_code = -2, message = "An execption occured" }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> EditEtatCandidat(decimal id, decimal idJob, String status, int salFinal) { try { Postuler currentPostuler = db.Postuler.FirstOrDefault(p => p.id == id); if (currentPostuler == null) { ViewBag.Message = "Votre compte n'existe pas !"; TempData["myData"] = "0"; return(RedirectToAction("listPostulantAdmin", new { id = idJob })); } if (status.Equals("2")) { currentPostuler.remuneration = salFinal; Postuler currentEmployeur = db.Postuler.Where(p => p.Job_id == idJob && p.Inscrire.type.Equals("client") && p.archived == 1).FirstOrDefault(); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Un candidat est intérésser par votre offre de " + currentEmployeur.Job.titre); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", "Vous avez reçus une candidature pour le poste de :" + currentEmployeur.Job.titre + ".veuillez suivre la candidature de ce candidat sur NioVarJobs"); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(currentEmployeur.Inscrire.email, "Candidat intérésser", body); } currentPostuler.etatCandidat = status; db.Entry(currentPostuler).State = EntityState.Modified; db.SaveChanges(); TempData["myData"] = "1"; TempData["message"] = "Status modifié avec succès"; return(RedirectToAction("listPostulantAdmin", new { id = idJob })); } catch (Exception) { TempData["myData"] = "0"; return(RedirectToAction("listPostulantAdmin", new { id = idJob })); } }
public async Task <ActionResult> Create([Bind(Include = "id,Rol_id,nom,email")] Utilisateur utilisateur) { if (ModelState.IsValid) { Utilisateur currentUser = db.Utilisateur.Where(x => x.email == utilisateur.email && x.archived == 1).FirstOrDefault(); if (currentUser != null) { String message = "cette adresse email est deja utilisé !"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } utilisateur.created = DateTime.Now; utilisateur.archived = 1; utilisateur.status = 0; utilisateur.password = generatePassword(); db.Utilisateur.Add(utilisateur); try { var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Création compte administrateur NiovarJobs "); map.Add("@ViewBag.login", utilisateur.nom); map.Add("@ViewBag.content", "Votre compte administrateur a été créer avec succès utilisé ces identifiant pour vous connecter email :" + utilisateur.email + "et mot de passe :" + utilisateur.password); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(utilisateur.email, "Identifiant de votre compte", body); db.SaveChanges(); ViewBag.Message = "Compte administrateur crée avec succès"; return(RedirectToAction("Index")); } catch (Exception e) { ViewBag.Rol_id = new SelectList(db.Role, "id", "libelle", utilisateur.Rol_id); return(View(utilisateur)); } } ViewBag.Rol_id = new SelectList(db.Role, "id", "libelle", utilisateur.Rol_id); return(View(utilisateur)); }
public async Task <JsonResult> Create([Bind(Include = "login,email,password,cpassword,type")] Inscrire inscrire) { if (ModelState.IsValid) { try { var emailExist = db.Inscrire.Where(x => x.email == inscrire.email).FirstOrDefault(); if (emailExist != null) { return(Json(new { result_code = -1, message = "This email already exist" }, JsonRequestBehavior.AllowGet)); } inscrire.status = 0; inscrire.archived = 1; inscrire.etat = 0; inscrire.created = DateTime.Now; db.Inscrire.Add(inscrire); var url = MsMail.baseUrl + "Inscrires/Confirm?regId=" + inscrire.id; var map = new Dictionary <String, String>(); map.Add("@ViewBag.ConfirmationLink", url); map.Add("@ViewBag.login", inscrire.login); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/Text.cshtml", map); MsMail mail = new MsMail(); db.SaveChanges(); await mail.Send(inscrire.email, "Email de vérification du compte", body); return(Json(new { result_code = 1 }, JsonRequestBehavior.AllowGet)); } catch (Exception) { return(Json(new { result_code = -2, message = "An error occured" }, JsonRequestBehavior.AllowGet)); } } return(Json(new { result_code = -2, message = "Datas not found" }, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> verifyEmailExist(Inscrire inscrire) { if (ModelState.IsValidField("email")) { Inscrire currentInscrire = db.Inscrire.Where(p => p.archived == 1 && p.email.Equals(inscrire.email)).FirstOrDefault(); if (currentInscrire == null) { ViewBag.Message = "Cette adresse email n'est utilisé par aucun compte ou n'existe pas ! "; return(View(inscrire)); } UtilisateursController utilisateurs = new UtilisateursController(); currentInscrire.tokenPwdForget = utilisateurs.generatePassword(); db.Entry(currentInscrire).State = EntityState.Modified; var url = MsMail.baseUrl + "Home/changePwdForget?token=" + currentInscrire.tokenPwdForget; var map = new Dictionary <String, String>(); map.Add("@ViewBag.ConfirmationLink", url); map.Add("@ViewBag.login", ""); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/Text.cshtml", map); MsMail mail = new MsMail(); await mail.Send(currentInscrire.email, " confirmation rénitialisation mot de passe oubliez ", body); db.SaveChanges(); String message = " Un mail de confirmation vous a été envoyé à cette adresse " + currentInscrire.email + " veuillez valider "; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } ModelState.AddModelError("email", "Veuillez saisir une adresse email valide"); return(View(inscrire)); }
public async Task <JsonResult> SendMailJsonAsync() { int totalFiles = Request.Form["totalFiles"].AsInt(); String subject = Request.Form["subject"]; String message = Request.Form["message"]; String[] emails = Request.Form["to"].Split(','); if (emails.Length == 0) { return(Json(new { result_code = -1, message = "Recipients not found." }, JsonRequestBehavior.AllowGet)); } List <String> To = new List <String>(); for (int i = 0; i < emails.Length; i++) { To.Add(emails[i]); } List <String> Attachement = new List <String>(); for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFileBase file = Request.Files[i]; var filename = Path.GetFileName(file.FileName); var formattedFileName = string.Format("{0}-{1}{2}" , Path.GetFileNameWithoutExtension(filename) , Guid.NewGuid().ToString("N") , Path.GetExtension(filename)); var path = Path.Combine(Server.MapPath("~/Assets/mails/"), formattedFileName); file.SaveAs(path); Attachement.Add(path); } MsMail mail = new MsMail(); await mail.Send(To, subject, message, null, null, Attachement); return(Json(new { result_code = 1, msg = "Email envoyé avec succès" /*, totalFiles = totalFiles, subject = subject, message = message, emails = emails*/ }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> ContactUsAsync() { //if (_me == null) return Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet); try { String email = Request.Form["email"]; String subject = Request.Form["subject"]; String message = Request.Form["message"]; if (String.IsNullOrEmpty(subject) && String.IsNullOrEmpty(message)) { return(Json(new { result_code = -1, message = "Datas not valid" }, JsonRequestBehavior.AllowGet)); } //TODO faire parvenir le message du client a l'admin MsMail mail = new MsMail(); await mail.Send(mail.getEmail(), email + " " + subject, message); return(Json(new { result_code = 1 }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { result_code = -2, message = "An error occured" }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> Create(Location location) { decimal sessionId = (decimal)Session["id"]; Location existLocation = db.Location.Where(p => p.Ins_id == location.Ins_id && p.Ins_id2 == sessionId && p.status == 1 && p.archived == 1).FirstOrDefault(); if (existLocation != null) { String message = "Vous ne pouvez pas Louer un même employé deux fois lorsque sa demande est encore en cour de traitement . Vérifier que vous avez supprimez ou désactivez cette demande et réessayez à nouveau."; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } Inscrire candidat = db.Inscrire.Where(p => p.id == location.Ins_id).First(); if (candidat == null) { return(HttpNotFound()); } Inscrire client = db.Inscrire.Where(p => p.id == sessionId).First(); if (client == null) { return(HttpNotFound()); } if (ModelState.IsValid) { location.Ins_id2 = sessionId; location.signClient = 0; location.signCandidat = 0; location.avisClient = 0; location.avisCandidat = 0; location.status = 1; location.etat = 0; location.archived = 1; location.created = DateTime.Now; db.Location.Add(location); } try { var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Votre demande location a été effectué avec succès pour un salaire de : " + location.remuneration); map.Add("@ViewBag.login", client.login); map.Add("@ViewBag.content", "Votre demande est bien pris en compte et suivra la procédure adéquat. Merci bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); var map1 = new Dictionary <String, String>(); map1.Add("@ViewBag.titre", "Mr/Mme :" + candidat.login + "Vous êtes sollicité pour un travail pour une période de " + location.periode + "pour un salaire de " + Convert.ToDouble(location.remuneration) * (100 - pourcentage) / 100); map1.Add("@ViewBag.login", candidat.login); map1.Add("@ViewBag.content", "Vous êtes conviez à bien a suivre votre dossier via votre espace compte sur https://niovar.solutions/Inscrires/Login. Merci bénéficiez du meilleur de nos service."); string body2 = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map1); MsMail mail = new MsMail(); MsMail mail2 = new MsMail(); db.SaveChanges(); //TODO retraviller le mail avec du HTML await mail.Send(client.email, "NiovarJobs, demande location ", body); await mail2.Send(candidat.email, "NiovarJobs, Nouveau job disponible pour vous ", body2); //TODO rediriger a la liste des candidatures return(RedirectToAction("mesDemandeLocation")); } catch (StripeException e) { return(RedirectToAction("cvCandidatLocation", new { id = location.Ins_id, page = 0 })); } }
public async Task <ActionResult> postulerDirectement(MailsModel mailsModel) { if (mailsModel.To == null) { String message = "Veuillez renseignez son l'email"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } List <string> listFichier = new List <string>(); if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { try { var filename = Path.GetFileName(file.FileName); //verification de l'extention du fichiers var supportedTypes = new[] { ".png", ".jpg", ".jpeg", ".gif", ".pdf", ".docx" }; var extention = Path.GetExtension(filename); if (!supportedTypes.Contains(extention)) { String message = "L'extention du fichier n'est pas valide !"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } //end verification var formattedFilename = string.Format("{0}-{1}{2}" , Path.GetFileNameWithoutExtension(filename) , Guid.NewGuid().ToString("N") , Path.GetExtension(filename)); string path = Path.Combine(Server.MapPath("~/Fichier"), Path.GetFileName(formattedFilename)); file.SaveAs(path); listFichier.Add(path); } catch (Exception ex) { String message = "erreur de l'upload du fichier"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } } } try { decimal idPostulant = Convert.ToDecimal(Session["id"]); Postuler postuler = new Postuler(); postuler.Job_id = mailsModel.idJob; postuler.Ins_id = idPostulant; postuler.created = DateTime.Now; postuler.archived = 1; postuler.status = 1; postuler.etat = "0"; postuler.etatAdmin = "0"; postuler.etatClient = "0"; postuler.etatCandidat = "0"; postuler.signatures = "0"; postuler.signatureClient = 0; postuler.situationTravail = "0"; db.Postuler.Add(postuler); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Nouvelle candidature"); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", mailsModel.message); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(mailsModel.To, mailsModel.subject, body, null, null, listFichier); db.SaveChanges(); db.SaveChanges(); String message = "candidature envoyé avec succès"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } catch (Exception e) { String message = "echec veuillez reessayer"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } }
public async Task <ActionResult> postuler(decimal id) { decimal idJob = id; if (Session.Count > 0 && Session["status"] != null) { if (Session["type"].Equals("client")) { String message = "Vous ne pouvez pas postuler à cette offre. Seul les travailleurs intéressés ou ayant un compte candidat peuvent postuler."; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } else { decimal status = Convert.ToDecimal(Session["status"]); if (status == 0) { String message = "Vous ne pouvez pas pour le moment postulé à une offre. Vérifier que vos informations sont bien renseignez dans votre profil et attendez l'activation de votre profil par les administrateurs NiovarJobs. Sinon contactez nous "; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } decimal idPostulant = Convert.ToDecimal(Session["id"]); Postuler result = db.Postuler.Where(p => p.Ins_id == idPostulant && p.Job_id == idJob && p.Inscrire.type.Equals("candidat") && p.archived == 1).FirstOrDefault(); if (result != null) { String message = "Vous ne pouvez pas postuler a un même offre d'emploi deux fois "; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } else { Postuler currentEmployeur = db.Postuler.Where(p => p.Job_id == idJob && p.Inscrire.type.Equals("client") && p.archived == 1).FirstOrDefault(); if (currentEmployeur == null) { String message = "La compagnie propriétaire de cette publication n'existe pas "; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } Postuler postuler = new Postuler(); postuler.Job_id = idJob; postuler.Ins_id = idPostulant; postuler.created = DateTime.Now; postuler.archived = 1; postuler.status = 1; postuler.etat = "0"; postuler.etatAdmin = "0"; postuler.etatClient = "0"; postuler.etatCandidat = "0"; postuler.signatures = "0"; postuler.signatureClient = 0; postuler.situationTravail = "0"; db.Postuler.Add(postuler); TempData["myData"] = "1"; TempData["message"] = "Votre candidature a été envoyer avec succès"; string emailTo = currentEmployeur.Inscrire.email; if (currentEmployeur.Job.immediat.Equals("true")) { emailTo = Constante.mailCompagny; } var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Un candidat est intérésser par votre offre de " + currentEmployeur.Job.titre); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", "Le candidat " + Session["login"] + " à deposer sa candidature pour le poste de :" + currentEmployeur.Job.titre + ".veuillez suivre la candidature de ce candidat sur NioVarJobs"); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(emailTo, "Candidat intérésser", body); db.SaveChanges(); } return(RedirectToAction("MesCandidatures", "Offre")); } } else { return(RedirectToAction("Login", "Inscrires")); } }
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 async Task <JsonResult> PayContratClient(String stripeToken, Decimal idPostuler) { 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)); } Postuler postuler = db.Postuler.FirstOrDefault(x => x.id == idPostuler); if (postuler == null || String.IsNullOrEmpty(stripeToken)) { return(Json(new { result_code = -1, message = "Data not found" }, JsonRequestBehavior.AllowGet)); } StripeConfiguration.SetApiKey(STRIPE_API_KEY); double amount = postuler.Job.remuneration.Value * 25 / 100; if (amount <= 0) { return(Json(new { result_code = -1, message = "Amount not valid" }, JsonRequestBehavior.AllowGet)); } var stripeOptions = new ChargeCreateOptions { Amount = (long)amount, // 1 dollar is equal to 100 cent. Currency = "USD", Description = "Charge for payment of 25% of" + postuler.libelle, Source = stripeToken, }; var service = new ChargeService(); postuler.etatClient = "2"; postuler.signatureClient = 1; postuler.dateSignClient = DateTime.Now; db.Entry(postuler).State = EntityState.Modified; Paiement paiement = new Paiement(); paiement.archived = 1; paiement.avance = amount; paiement.created = DateTime.Now; paiement.etat = 0; //TODO mettre le bon etat paiement.status = 0; //TODO mettre le bon status je suppose o veut dire non achevé paiement.Ins_id = postuler.Ins_id; paiement.Job_id = postuler.Job_id; paiement.libelle = "Paiement de 25% de l'offre"; paiement.montant = postuler.Job.remuneration.Value; paiement.Pos_id = postuler.id; paiement.userId = Convert.ToInt32(_me.id); paiement.reste = postuler.Job.remuneration - amount; db.Paiement.Add(paiement); try { Charge charge = service.Create(stripeOptions); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Paiement de 25% du salaire via skype" + postuler.libelle); map.Add("@ViewBag.login", _me.login); map.Add("@ViewBag.content", "Votre paiement a bien été pris en compte. Le montant à été prélever de votre compte avec succès. Reste à payer : 5 $. Bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); db.SaveChanges(); //TODO retraviller le mail avec du HTML await mail.Send(_me.email, "Paiement", body); //TODO rediriger a la liste des candidatures return(Json(new { result_code = 1, postuler = getJson(postuler), payment = getJson(paiement) }, JsonRequestBehavior.AllowGet)); } catch (StripeException e) { return(Json(new { result_code = -1, message = "An exception occured" }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> contratClient(String stripeToken) { Postuler currentPostuler = (Postuler)Session["postuler"]; if (currentPostuler == null || _me == null || _me.type != "client") { TempData["result_code"] = -1; TempData["message"] = "Temps fourni pour le payment est expiré veuillez réessayer."; TempData.Keep(); //TODO rediriger a la liste des candidatures return(RedirectToAction("Index", "Home")); } if (String.IsNullOrEmpty(stripeToken)) { return(HttpNotFound()); } StripeConfiguration.SetApiKey(STRIPE_API_KEY); var stripeOptions = new ChargeCreateOptions { Amount = (long)Math.Ceiling(currentPostuler.Job.remuneration.Value) * 25 / 100, // 1 dollar is equal to 100 cent. Currency = "USD", Description = "Charge for payment of 25% of" + currentPostuler.libelle, Source = stripeToken, //Customer = customer.Id }; var service = new ChargeService(); if (Session["id"] == null) { return(HttpNotFound()); } int idUserSession = Convert.ToInt32(Session["id"]); Postuler postuler = db.Postuler.FirstOrDefault(p => p.id == currentPostuler.id); if (postuler == null) { return(HttpNotFound()); } postuler.etatClient = "2"; postuler.signatureClient = 1; postuler.dateSignClient = DateTime.Now; db.Entry(postuler).State = EntityState.Modified; double amount = postuler.Job.remuneration.Value * 25 / 100; Paiement paiement = new Paiement(); paiement.archived = 1; paiement.avance = amount; paiement.created = DateTime.Now; paiement.etat = 0; //TODO mettre le bon etat paiement.Ins_id = postuler.Ins_id; paiement.Job_id = postuler.Job_id; paiement.libelle = "Paiement de 25% de l'offre "; paiement.montant = postuler.Job.remuneration.Value; paiement.Pos_id = postuler.id; paiement.userId = idUserSession; paiement.reste = postuler.Job.remuneration - amount; paiement.status = 0; //TODO mettre le bon status je suppose o veut dire non achevé db.Paiement.Add(paiement); try { Charge charge = service.Create(stripeOptions); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Paiement de 25% du salaire via stripe " + currentPostuler.libelle); map.Add("@ViewBag.login", _me.login); map.Add("@ViewBag.content", "Votre paiement a bien été pris en compte. Le montant à été prélever de votre compte avec succès. Reste à payer :" + paiement.reste + ". Bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); db.SaveChanges(); List <string> mylistmail = new List <string>(new string[] { _me.email, Constante.mailCompagny }); //TODO retraviller le mail avec du HTML await mail.Send(mylistmail, "Paiement frais location candidat", body); //TODO rediriger a la liste des candidatures return(RedirectToAction("ListPostulant", new { id = postuler.Job_id })); } catch (StripeException e) { } ViewBag.inscritCurrent = _me; return(View(currentPostuler)); }
public async Task <ActionResult> addTalonPaie(Document document) { Inscrire inscrire = db.Inscrire.Where(p => p.archived == 1 && p.id == document.Ins_id).FirstOrDefault(); if (inscrire == null) { return(HttpNotFound()); } List <string> listFichier = new List <string>(); if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { try { var filename = Path.GetFileName(file.FileName); //verification de l'extention du fichiers var supportedTypes = new[] { ".png", ".jpg", ".jpeg", ".gif", ".pdf", ".docx" }; var extention = Path.GetExtension(filename); if (!supportedTypes.Contains(extention)) { String message = "L'extention du fichier n'est pas valide ! Veuillez selectionnez une extention parmis les suivants .png, .jpg, .jpeg, .gif, .pdf, .docx"; return(RedirectToAction("ErrorPage", "Home", new { sms = message })); } //end verification var formattedFilename = string.Format("{0}-{1}{2}" , Path.GetFileNameWithoutExtension(filename) , Guid.NewGuid().ToString("N") , Path.GetExtension(filename)); string path = Path.Combine(Server.MapPath("~/Fichier"), Path.GetFileName(formattedFilename)); file.SaveAs(path); listFichier.Add(path); document.chemin = formattedFilename; } catch (Exception ex) { ViewBag.Message = "ERROR:" + ex.Message.ToString(); return(RedirectToAction("talonPaieAdmin", new { idPost = document.Pos_id, idIns = document.Ins_id, idJob = document.Job_id })); } } } try { document.archived = 1; document.status = 1; document.etat = 1; document.created = DateTime.Now; document.type = Constante.typeTalonPaie; db.Document.Add(document); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Confirmation reception Talon de paie "); map.Add("@ViewBag.login", ""); map.Add("@ViewBag.content", "Vous avez reçus un talon de paie veuillez consulter ce dernier ci-dessous oubien dans votre compte sur NiovarJobs"); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); MsMail mail = new MsMail(); await mail.Send(inscrire.email, "Nouveau talon de paie pour le candida : " + inscrire.login, body, null, null, listFichier); db.SaveChanges(); return(RedirectToAction("talonPaieAdmin", new { idPost = document.Pos_id, idIns = document.Ins_id, idJob = document.Job_id })); } catch (DbEntityValidationException ex) { return(HttpNotFound()); /* foreach (var entityValidationErrors in ex.EntityValidationErrors) * { * foreach (var validationError in entityValidationErrors.ValidationErrors) * { * Response.Write("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage); * } * }*/ } return(RedirectToAction("talonPaieAdmin", new { idPost = document.Pos_id, idIns = document.Ins_id, idJob = document.Job_id })); }
public async Task <ActionResult> Create([Bind(Include = "login,email,password,cpassword,type")] Inscrire inscrire) { if (ModelState.IsValid) { Inscrire emailExist = db.Inscrire.Where(x => x.email == inscrire.email && x.archived == 1).FirstOrDefault(); if (emailExist != null) { if (emailExist.etat == 0) { ViewBag.Message = "Ce compte existe déja mais il n'a pas été confirmer par mail"; } else { ViewBag.Message = "Cette adresse mail est dejà utilisé par un autre compte"; } } else { if (inscrire.type.Equals("client")) { inscrire.nom = inscrire.login; } inscrire.status = 0; inscrire.archived = 1; inscrire.etat = 0; inscrire.created = DateTime.Now; db.Inscrire.Add(inscrire); db.SaveChanges(); if (inscrire.type.Equals("client")) { Page page = new Page(); page.Ins_id = inscrire.id; page.archived = 1; page.created = DateTime.Now; page.status = 1; db.Page.Add(page); db.SaveChanges(); } var url = MsMail.baseUrl + "Inscrires/Confirm?regId=" + inscrire.id; var map = new Dictionary <String, String>(); map.Add("@ViewBag.ConfirmationLink", url); map.Add("@ViewBag.login", inscrire.login); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/Text.cshtml", map); MsMail mail = new MsMail(); await mail.Send(inscrire.email, "Email de confirmation du compte", body); ViewBag.Message = "Un courriel de confirmation vous a été envoyer à votre adresse mail "; return(View(inscrire)); } } return(View(inscrire)); }
public async Task <JsonResult> contratLocationClient(String stripeToken, decimal idLocation) { if (_me == null) { return(Json(new { result_code = -1000, message = "Session expired" }, JsonRequestBehavior.AllowGet)); } if (_me.Equals("candidat")) { return(Json(new { result_code = -1, message = "Your are not allowed" }, JsonRequestBehavior.AllowGet)); } Location currentLocation = db.Location.FirstOrDefault(p => p.id == idLocation); if (currentLocation == null) { return(Json(new { result_code = -1, message = "item not found" }, JsonRequestBehavior.AllowGet)); } StripeConfiguration.SetApiKey(STRIPE_API_KEY); var amount = (long)Math.Ceiling(currentLocation.remuneration.Value) * 35 / 100; var stripeOptions = new ChargeCreateOptions { Amount = (long)amount, // 1 dollar is equal to 100 cent. Currency = "USD", Description = "Charge for payment of 35% of Location", Source = stripeToken, }; var service = new ChargeService(); currentLocation.dateSgnClt = DateTime.Now; currentLocation.avisClient = 2; currentLocation.signClient = 2; db.Entry(currentLocation).State = EntityState.Modified; FraisLocation fraisLocation = new FraisLocation(); fraisLocation.archived = 1; fraisLocation.avance = amount; fraisLocation.created = DateTime.Now; fraisLocation.etat = 0; //TODO mettre le bon etat fraisLocation.Ins_id = currentLocation.Ins_id; fraisLocation.Ins_id2 = currentLocation.Ins_id2; fraisLocation.Loc_id = currentLocation.id; fraisLocation.libelle = "Paiement de 35% pour la location"; fraisLocation.montant = Convert.ToDouble(currentLocation.remuneration); fraisLocation.userId = (int)_me.id; fraisLocation.reste = Convert.ToDouble(currentLocation.remuneration) - amount; fraisLocation.status = 0; //TODO mettre le bon status je suppose o veut dire non achevé db.FraisLocation.Add(fraisLocation); try { Charge charge = service.Create(stripeOptions); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Paiement de 35% du salaire pour la location de l'employé " + currentLocation.Inscrire.nom); map.Add("@ViewBag.login", _me.nom); map.Add("@ViewBag.content", "Votre paiement a bien été pris en compte. Le montant à été prélever de votre compte avec succès. Bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); var map1 = new Dictionary <String, String>(); map1.Add("@ViewBag.titre", "Vous êtes sollicité pour un travail "); map1.Add("@ViewBag.login", currentLocation.Inscrire.nom); map1.Add("@ViewBag.content", "Votre demande de location a été confimer. Vous êtes conviez a prendre service le plutôt possible."); string body2 = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map1); MsMail mail = new MsMail(); MsMail mail2 = new MsMail(); db.SaveChanges(); //TODO retraviller le mail avec du HTML await mail.Send(_me.email, "Paiement location", body); await mail2.Send(currentLocation.Inscrire.email, "NiovarJobs, Demande location accepté ", body2); //TODO rediriger a la liste des candidatures return(Json(new { result_code = 1, data = getJson(currentLocation) }, JsonRequestBehavior.AllowGet)); } catch (StripeException e) { return(Json(new { result_code = -2, message = "An execption occured" }, JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> contratLocationClient(String stripeToken, decimal idLocation) { Location currentLocation = db.Location.FirstOrDefault(p => p.id == idLocation); if (currentLocation == null) { TempData["result_code"] = -1; TempData["message"] = "Temps fourni pour le payment est expiré veuillez réessayer."; TempData.Keep(); //TODO rediriger a la liste des candidatures return(RedirectToAction("mesDemandeLocation")); } Inscrire candidat = db.Inscrire.Where(p => p.id == currentLocation.Ins_id).First(); if (candidat == null) { return(HttpNotFound()); } Inscrire client = db.Inscrire.Where(p => p.id == currentLocation.Ins_id2).First(); if (client == null) { return(HttpNotFound()); } if (String.IsNullOrEmpty(stripeToken)) { return(HttpNotFound()); } StripeConfiguration.SetApiKey("sk_test_51Gx6jgIK0UhIWHGbs9dcTW7tyGLkl39s6waxls9Z5D8E0arsL4bjy9N0g563Tlzo5JNvbeFOkAl5fMEY85eerPIx00mYJFiqLY"); var stripeOptions = new ChargeCreateOptions { Amount = (long)Math.Ceiling(currentLocation.remuneration.Value) * 35 / 100, // 1 dollar is equal to 100 cent. Currency = "USD", Description = "Charge for payment of 35% of Location", Source = stripeToken, //Customer = customer.Id }; var service = new ChargeService(); if (Session["id"] == null) { return(HttpNotFound()); } int idUserSession = Convert.ToInt32(Session["id"]); currentLocation.dateSgnClt = DateTime.Now; currentLocation.avisClient = 2; currentLocation.signClient = 2; db.Entry(currentLocation).State = EntityState.Modified; double amount = (long)Math.Ceiling(currentLocation.remuneration.Value) * 35 / 100; FraisLocation fraisLocation = new FraisLocation(); fraisLocation.archived = 1; fraisLocation.avance = amount; fraisLocation.created = DateTime.Now; fraisLocation.etat = 0; //TODO mettre le bon etat fraisLocation.Ins_id = candidat.id; fraisLocation.Ins_id2 = client.id; fraisLocation.Loc_id = currentLocation.id; fraisLocation.libelle = "Paiement de 35% pour la location"; fraisLocation.montant = Convert.ToDouble(currentLocation.remuneration); fraisLocation.userId = idUserSession; fraisLocation.reste = Convert.ToDouble(currentLocation.remuneration) - amount; fraisLocation.status = 0; //TODO mettre le bon status je suppose o veut dire non achevé db.FraisLocation.Add(fraisLocation); try { Charge charge = service.Create(stripeOptions); var map = new Dictionary <String, String>(); map.Add("@ViewBag.titre", "Paiement de 35% du salaire pour la location de l'employé " + candidat.login); map.Add("@ViewBag.login", client.login); map.Add("@ViewBag.content", "Votre paiement a bien été pris en compte. Le montant à été prélever de votre compte avec succès. Bénéficiez du meilleur de nos service."); string body = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map); var map1 = new Dictionary <String, String>(); map1.Add("@ViewBag.titre", "Vous êtes sollicité pour un travail "); map1.Add("@ViewBag.login", candidat.login); map1.Add("@ViewBag.content", "Votre demande de location a été confimer. Vous êtes conviez a prendre service le plutôt possible."); string body2 = MsMail.BuldBodyTemplate("~/EmailTemplate/CustomEmail.cshtml", map1); MsMail mail = new MsMail(); MsMail mail2 = new MsMail(); db.SaveChanges(); //TODO retraviller le mail avec du HTML await mail.Send(client.email, "Paiement location", body); await mail2.Send(candidat.email, "NiovarJobs, Demande location accepté ", body2); //TODO rediriger a la liste des candidatures return(RedirectToAction("mesDemandeLocation")); } catch (StripeException e) { // throw; return(RedirectToAction("contratLocationClient", new { id = currentLocation.id })); } return(RedirectToAction("contratLocationClient", new { id = currentLocation.id })); }
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)); }