public ActionResult Nominate(string TrainingId, string UserId) { try { int User = Convert.ToInt32(Encrypter.Decode(UserId)); // int User = 0; string ServerName = AppValue.GetFromMailAddress("ServerName"); int TId = Convert.ToInt32(Encrypter.Decode(TrainingId)); DSRCManagementSystemEntities1 obj = new DSRCManagementSystemEntities1(); var instructor = obj.Trainings.Where(x => x.TrainingId == TId && x.InstructorId == User).Select(o => o.InstructorId).FirstOrDefault(); var Training = obj.Trainings.Where(x => x.TrainingId == TId).Select(o => o).FirstOrDefault(); var NomitionOne = obj.TrainingNominations.Where(x => x.UserId == User && x.TrainingId == TId).Select(x => x).ToList(); int NomineeCount = NomitionOne.Count(); if (TId == 0) { ViewBag.Null = "Null"; } else if (instructor != null) { ViewBag.Instructor = "Instructor"; } else if (Training.NumberOfNominated == Training.SeatingCapacity + 2) { ViewBag.NoSeat = "NoSeat"; } else if (NomineeCount != 0) { ViewBag.Already = "Already"; } else { //int userId = int.Parse(Session["UserID"].ToString()); var email = System.Web.HttpContext.Current.Application["UserName"].ToString(); DSRCManagementSystemEntities1 db = new DSRCManagementSystemEntities1(); var empid = db.Users.Where(x => x.UserID == User).Select(o => o.EmpID).FirstOrDefault(); //int? emp = Convert.ToInt32(empid); DSRCManagementSystemEntities1 obf = new DSRCManagementSystemEntities1(); //var EMP = obf.Users.Where(x => x.UserID == userId).Select(o => o.EmpID).FirstOrDefault(); int k = TId; DSRCManagementSystemEntities1 objdb = new DSRCManagementSystemEntities1(); //var id = db.Users.Where(x => x.UserID == userId).Select(o => o.EmpID).FirstOrDefault(); //int? value = Convert.ToInt32(id); var empname = objdb.Users.Where(x => x.UserID == User).Select(o => o.FirstName + " " + o.LastName ?? "").FirstOrDefault(); // context.Authors.Where(a => a.Books.Any(b => b.BookID == bookID)).ToList(); var val = objdb.TrainingNominations.Where(x => x.UserId == User && x.TrainingId == k).Select(o => o.TrainingId).FirstOrDefault(); int?instructorid = db.Trainings.Where(x => x.InstructorId == User).Select(o => o.InstructorId).FirstOrDefault(); var technology = objdb.Trainings.Where(x => x.TrainingId == k).Select(o => o.TechnologyId).FirstOrDefault(); var LevelId = db.Trainings.Where(x => x.TrainingId == TId).Select(x => x.LevelId).FirstOrDefault(); int?InsID = db.Trainings.Where(x => x.TrainingId == TId).Select(o => o.InstructorId).FirstOrDefault(); //var trainwidgets = db.TrainingWeightages.CreateObject(); //trainwidgets.Trainee = user; //trainwidgets.Instructor = InsID; //trainwidgets.LevelId = LevelId; //db.TrainingWeightages.AddObject(trainwidgets); //db.SaveChanges(); DSRCManagementSystem.TrainingNomination nom = new DSRCManagementSystem.TrainingNomination(); nom.TrainingId = TId; //nom.EmpId = Convert.ToInt32(empid); nom.EmpId = empid; nom.UserId = User; nom.EmpName = empname; nom.TechnologyId = technology; nom.EmailId = email; nom.NominationFlag = true; nom.CompletionFlag = false; nom.IsActive = true; objdb.AddToTrainingNominations(nom); objdb.SaveChanges(); var Techref = db.Trainings.FirstOrDefault(o => o.TrainingId == k); string Tid = k.ToString(); string tname = Techref.TrainingName; DateTime d1 = Convert.ToDateTime(Techref.ScheduledDate); string d = d1.ToShortDateString(); string stime = Techref.StartTime; string etime = Techref.EndTime; string username = db.Users.Where(o => o.UserID == Techref.InstructorId).Select(o => o.FirstName + " " + (o.LastName ?? "")).FirstOrDefault(); var userdetails = db.Users.FirstOrDefault(o => o.UserID == User); string MailID = userdetails.EmailAddress; string EmpName = userdetails.FirstName + " " + userdetails.LastName ?? ""; //string mailMessage = MailBuilder.NominationConfirmation(EmpName, Tid, tname, d, stime, etime, username); var check = objdb.EmailTemplates.Where(x => x.TemplatePurpose == "Nomination Confirmation").Select(o => o.EmailTemplateID).FirstOrDefault(); var folder = objdb.EmailTemplates.Where(o => o.TemplatePurpose == "Nomination Confirmation").Select(x => x.TemplatePath).FirstOrDefault(); if ((check != null) && (check != 0)) { var objNominationConfirmation = (from p in db.EmailPurposes.Where(x => x.EmailPurposeName == "Nomination Confirmation") join q in db.EmailTemplates on p.EmailTemplateID equals q.EmailTemplateID select new DSRCManagementSystem.Models.Email { To = p.To, CC = p.CC, BCC = p.BCC, Subject = p.Subject, Template = q.TemplatePath }).FirstOrDefault(); var company = db.Master_ApplicationSettings.Where(x => x.AppKey == "Company Name").Select(o => o.AppValue).FirstOrDefault(); string TemplatePathNominationConfirmation = Server.MapPath(objNominationConfirmation.Template); string htmlNominationConfirmation = System.IO.File.ReadAllText(TemplatePathNominationConfirmation); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#Empname", EmpName); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#TrainingId", Tid); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#TrainingName", tname); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#ScheduledDate", d); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#start", stime); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#end", etime); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#Instructor", username); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#ServerName", ServerName); htmlNominationConfirmation = htmlNominationConfirmation.Replace("#CompanyName", company); //string ServerName = WebConfigurationManager.AppSettings["SeverName"]; var logo = CommonLogic.getLogoPath(); if (ServerName != "http://*****:*****@dsrc.co.in"); //MailIds.Add("*****@*****.**"); //MailIds.Add("*****@*****.**"); //MailIds.Add("*****@*****.**"); //MailIds.Add("*****@*****.**"); //MailIds.Add("*****@*****.**"); //MailIds.Add("*****@*****.**"); string EmailAddress = ""; foreach (string mail in MailIds) { EmailAddress += mail + ","; } EmailAddress = EmailAddress.Remove(EmailAddress.Length - 1); Task.Factory.StartNew(() => { //var logo = db.Master_ApplicationSettings.Where(x => x.AppID == 7).Select(x => x).FirstOrDefault(); // DsrcMailSystem.MailSender.SendMail(null, objNominationConfirmation.Subject + " - Test Mail Please Ignore", null, htmlNominationConfirmation + " - Testing Plaese ignore", "*****@*****.**", EmailAddress, Server.MapPath(logo.AppValue.ToString())); DsrcMailSystem.MailSender.SendMail(null, objNominationConfirmation.Subject + " - Test Mail Please Ignore", null, htmlNominationConfirmation + " - Testing Plaese ignore", "*****@*****.**", EmailAddress, Server.MapPath(logo.ToString())); }); } else { Task.Factory.StartNew(() => { // var logo = db.Master_ApplicationSettings.Where(x => x.AppID == 7).Select(x => x).FirstOrDefault(); // DsrcMailSystem.MailSender.SendMail(null, objNominationConfirmation.Subject, null, htmlNominationConfirmation, "*****@*****.**", MailID, Server.MapPath(logo.AppValue.ToString())); DsrcMailSystem.MailSender.SendMail(null, objNominationConfirmation.Subject, null, htmlNominationConfirmation, "*****@*****.**", MailID, Server.MapPath(logo.ToString())); //DsrcMailSystem.MailSender.LDSendMail(null, "L & D - Training Nomination Confirmation", null, mailMessage, "*****@*****.**", MailID, Server.MapPath("~/Content/Template/images/logo.png")); }); } } else { //string ServerName = WebConfigurationManager.AppSettings["SeverName"]; ExceptionHandlingController.TemplateMissing("Nomination Confirmation", folder, ServerName); } //int k = Trainingid; var value1 = obf.Trainings.Where(x => x.TrainingId == TId).Select(o => o).FirstOrDefault(); value1.Flag = false; obf.SaveChanges(); var No_Of_Nominees_Ref = db.Trainings.FirstOrDefault(o => o.TrainingId == TId); int?No_Of_Nominations = No_Of_Nominees_Ref.NumberOfNominated; No_Of_Nominees_Ref.NumberOfNominated = No_Of_Nominations + 1; db.SaveChanges(); } } catch (Exception Ex) { string actionName = this.ControllerContext.RouteData.Values["action"].ToString(); string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); ExceptionHandlingController.ExceptionDetails(Ex, actionName, controllerName); } return(View()); }