public ActionResult Create([Bind(Include = "CandidateId,Email,Password,FirstName,MiddleName,LastName,Year,Month,Day,Phone,AddressLine1,AddressLine2,AddressLine3,PostCode,DrivingLicenseNumber")] CandidateDetail candidateDetail)
        {
            if (ModelState.IsValid)
            {
                //capture video
                //http://www.html5rocks.com/en/tutorials/getusermedia/intro/
                //https://github.com/collab-project/videojs-record
                DateTime dob  = new DateTime(candidateDetail.Year, candidateDetail.Month, candidateDetail.Day);
                string   ip   = Request.UserHostAddress;
                Random   rand = new Random();


                candidateDetail.EmailApproved = true;
                candidateDetail.Status        = true;
                candidateDetail.DateOfBirth   = dob.ToString();
                candidateDetail.IPAddress     = ip;
                candidateDetail.ExamId        = rand.Next().ToString();
                candDal.SaveCandidateDetails(candidateDetail);
                Session["CandidateId"] = Convert.ToInt32(candidateDetail.CandidateId);

                RegisterViewModel rModel = new RegisterViewModel();
                rModel.Email           = candidateDetail.Email;
                rModel.Password        = candidateDetail.Password;
                rModel.ConfirmPassword = candidateDetail.Password;
                rModel.Role            = "Candidate";
                var registerUser = new AccountController().Register(rModel);

                //   return RedirectToAction("Register", "Account", rModel);
                //  return RedirectToAction("StartExam", "DrivingTest");
            }


            return(View(candidateDetail));
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(string id, [Bind("candidate_id,name,party,candidate_status,state")] CandidateDetail candidateDetail)
        {
            if (id != candidateDetail.candidate_id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(candidateDetail);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CandidateDetailExists(candidateDetail.candidate_id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(candidateDetail));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            CandidateDetail candidateDetail = candDal.CandidateDetailsById(id);

            candDal.RemoveCandidateDetail(candidateDetail);
            return(RedirectToAction("Details"));
        }
Esempio n. 4
0

        
 public ActionResult Edit([Bind(Include = "CandidateId,Email,FirstName,MiddleName,LastName,Phone,AddressLine1,AddressLine2,AddressLine3,PostCode,DrivingLicenseNumber")] CandidateDetail candidateDetail)
 {
     if (ModelState.IsValid)
     {
         candDal.UpdateCandidateDetail(candidateDetail);
         return(RedirectToAction("Details"));
     }
     return(View(candidateDetail));
 }
        // private TADEDBEntities db = new TADEDBEntities();

        // GET: ExamResults

        public ActionResult ExamResultWithGrade()
        {
            if (Session["CandidateId"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            int CandidateId = Convert.ToInt32(Session["CandidateId"]);
            var jsobj       = TD.ExamResults.Include(e => e.CandidateDetail).Include(e => e.ExamType).Where(r => r.CandidateId == CandidateId).Select(x => new
            {
                FirstName      = x.CandidateDetail.FirstName,
                MiddleName     = x.CandidateDetail.MiddleName,
                LastName       = x.CandidateDetail.LastName,
                Email          = x.CandidateDetail.Email,
                Date           = x.Date,
                IPAddress      = x.CandidateDetail.IPAddress,
                ExamId         = x.CandidateDetail.ExamId,
                DateOfBirth    = x.CandidateDetail.DateOfBirth,
                DrivingLicense = x.CandidateDetail.DrivingLicenseNumber,
                Address        = x.CandidateDetail.AddressLine1 + "<br />" + x.CandidateDetail.AddressLine2 + "<br />" + x.CandidateDetail.AddressLine3 + "<br />" + x.CandidateDetail.PostCode,
                TotalScore     = x.Score,
                Grade          = x.Grade,
                Explanation    = x.Explanation
            }).ToList();
            DrivingTestResult DR = new Models.DrivingTestResult();

            DR.Date           = jsobj[0].Date;
            DR.IPAddress      = jsobj[0].IPAddress;
            DR.ExamId         = Convert.ToInt32(jsobj[0].ExamId);
            DR.DateOfBirth    = jsobj[0].DateOfBirth;
            DR.FirstName      = jsobj[0].FirstName;
            DR.MiddleName     = jsobj[0].MiddleName;
            DR.LastName       = jsobj[0].LastName;
            DR.Email          = jsobj[0].Email;
            DR.Address        = jsobj[0].Address;
            DR.DrivingLicense = jsobj[0].DrivingLicense;
            DR.Explanation    = jsobj[0].Explanation;
            DR.TotalScore     = 0;
            DR.Grade          = 0;
            foreach (var item in jsobj)
            {
                DR.TotalScore = DR.TotalScore + item.TotalScore;
                DR.Grade      = DR.Grade + item.Grade;
            }

            SendMail(DR);
            TADEDBEntities  candUpd = new TADEDBEntities();
            CandidateDetail cd      = candUpd.CandidateDetails.Find(CandidateId);

            cd.Status               = false;
            cd.ExamAttended         = true;
            candUpd.Entry(cd).State = EntityState.Modified;
            candUpd.SaveChanges();
            Session["CandidateId"] = null;
            return(View(DR));
        }
Esempio n. 7
0
        public async Task <IActionResult> Update(CandidateDetail model)
        {
            var result = await _candidatesService.UpdateAsync(model);

            if (result.IsSuccess)
            {
                return(Ok(result));
            }

            return(BadRequest(result));
        }
Esempio n. 8
0
        public async Task <IActionResult> Create([Bind("candidate_id,name,party,candidate_status,state")] CandidateDetail candidateDetail)
        {
            if (ModelState.IsValid)
            {
                _context.Add(candidateDetail);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(candidateDetail));
        }
        public IActionResult CandidateDetail(int id)
        {
            var candidate       = _dataRepository.GetCandidate(id);
            var candidateDetail = new CandidateDetail();

            if (candidate != null)
            {
                candidateDetail = ConvertModel.CandidateToCandidateDetail(candidate, _dataRepository);
            }

            return(View(candidateDetail));
        }
Esempio n. 10
0
        public async Task <ActionResult> CandidateRegister([Bind(Include = "CandidateId,Email,Password,FirstName,MiddleName,LastName,Year,Month,Day,Phone,AddressLine1,AddressLine2,AddressLine3,PostCode,DrivingLicenseNumber")] CandidateDetail candidateDetail)
        {
            if (this.IsCaptchaValid("Captcha is not valid"))
            {
                if (ModelState.IsValid)
                {
                    RegisterViewModel rModel = new RegisterViewModel();
                    rModel.Email           = candidateDetail.Email;
                    rModel.Password        = candidateDetail.Password;
                    rModel.ConfirmPassword = candidateDetail.Password;
                    rModel.Role            = "Candidate";
                    var user = new ApplicationUser {
                        UserName = rModel.Email, Email = rModel.Email
                    };
                    var result = await UserManager.CreateAsync(user, rModel.Password);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        var addroles = await UserManager.AddToRoleAsync(user.Id, rModel.Role);

                        DateTime dob  = new DateTime(candidateDetail.Year, candidateDetail.Month, candidateDetail.Day);
                        string   ip   = Request.UserHostAddress;
                        Random   rand = new Random();


                        candidateDetail.EmailApproved = true;
                        candidateDetail.Status        = false;
                        candidateDetail.DateOfBirth   = dob.ToString();
                        candidateDetail.IPAddress     = ip;
                        candidateDetail.ExamId        = rand.Next().ToString();
                        candidateDetail.UserId        = user.Id;
                        candidateDetail.ExamAttended  = false;
                        db.CandidateDetails.Add(candidateDetail);
                        db.SaveChanges();
                        Session["CandidateId"] = Convert.ToInt32(candidateDetail.CandidateId);
                        SendMail(candidateDetail);
                        //
                        return(RedirectToAction("RegistrationConfirmation", "CandidateDetails"));
                    }
                    AddErrors(result);

                    //   return RedirectToAction("Register", "Account", rModel);
                    //  return RedirectToAction("StartExam", "DrivingTest");
                }
            }

            ViewBag.ErrMessage = "Error: captcha is not valid.";

            return(View(candidateDetail));
        }
        // GET: CandidateDetails/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CandidateDetail candidateDetail = candDal.CandidateDetailsById(id);

            if (candidateDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(candidateDetail));
        }
        // GET: CandidateDetails/Edit/5
        public ActionResult Edit()
        {
            int?id = Convert.ToInt32(Session["CandidateId"]);

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CandidateDetail candidateDetail = candDal.CandidateDetailsById(id);

            if (candidateDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(candidateDetail));
        }
Esempio n. 13
0
        public bool SendMail(CandidateDetail candidateDetail)
        {
            string message = "";

            //Here we will save data to the database

            //check username available
            byte[]    bytes = null;
            MailModel mm    = new Models.MailModel();

            mm.To      = candidateDetail.Email;
            mm.From    = "*****@*****.**";
            mm.Body    = "Dear " + candidateDetail.FirstName + ", " + MailBody(candidateDetail.ExamId.ToString());
            mm.Subject = "TADE registration confirmation";
            message    = "Confirmation";
            SendMailBLL sm = new SendMailBLL();

            sm.SendMail(mm, bytes);
            return(true);
        }
Esempio n. 14
0
        static void Main(string[] args)
        {
            CandidateDetail candidate = new CandidateDetail();

            System.Console.WriteLine("Fill below details to generate DocuSign Url\n");
            System.Console.Write("Candidate NTPL: ");
            int.TryParse(System.Console.ReadLine(), out int ntpl);
            candidate.NTPL = ntpl;

            System.Console.Write("Candidate First Name: ");
            candidate.FirstName = System.Console.ReadLine();

            System.Console.Write("Candidate Middle Name: ");
            candidate.MiddleName = System.Console.ReadLine();

            System.Console.Write("Candidate Last Name: ");
            candidate.LastName = System.Console.ReadLine();

            System.Console.Write("Candidate Neudesic EmailId: ");
            candidate.NeudesicEmailId = System.Console.ReadLine();

            System.Console.Write("Candidate Designation: ");
            candidate.Designation = System.Console.ReadLine();

            System.Console.WriteLine("Now, Fill details of Documents to fill:");
            System.Console.Write("TemplateId: ");
            candidate.Document.TemplateId = System.Console.ReadLine().Trim();

            System.Console.Write("RoleName: ");
            candidate.Document.RoleName = System.Console.ReadLine().Trim();

            // Write Candidate Details to Excel or DB

            // API call to generate DocuSign Url

            // Write DocuSignUrl to Excel

            // Display DocuSignUrl
        }
Esempio n. 15
0
        //ZEksIdffy3B73CsLvN2kl7YZB5nEu5mBpwP9BFC6
        public ActionResult Index()
        {
            httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Add("X-Api-Key", API_KEY);
            httpClient.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            string FEDERAL_ELECTORAL_API_PATH = BASE_URL + "/candidates?limit=20";
            string candidatesData             = "";

            CandidateDetail candidates = null;

            httpClient.BaseAddress = new Uri(FEDERAL_ELECTORAL_API_PATH);

            try
            {
                HttpResponseMessage response = httpClient.GetAsync(FEDERAL_ELECTORAL_API_PATH).GetAwaiter().GetResult();

                if (response.IsSuccessStatusCode)
                {
                    candidatesData = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
                }

                if (!candidatesData.Equals(""))
                {
                    // JsonConvert is part of the NewtonSoft.Json Nuget package
                    candidates = JsonConvert.DeserializeObject <CandidateDetail>(candidatesData);
                }
            }
            catch (Exception e)
            {
                // This is a useful place to insert a breakpoint and observe the error message
                Console.WriteLine(e.Message);
            }

            return(View(candidates));
            //  return View();
        }
Esempio n. 16
0
        public static CandidateDetail CandidateToCandidateDetail(Candidate candidate, IDataRepository dataRepository)
        {
            var candidateDetail = new CandidateDetail()
            {
                Id         = candidate.Id,
                Age        = candidate.Age,
                Email      = candidate.Email,
                Experience = candidate.Experience,
                FullName   = candidate.FullName,
                Phone      = candidate.Phone,
                Position   = candidate.Position,
                // ProjectId = candidate.ProjectId,
                // TechStackId = candidate.TechStackId,
                JobState        = dataRepository.GetNameById(nameof(JobState), candidate.JobStateId),
                Gender          = dataRepository.GetNameById(nameof(Gender), candidate.GenderId),
                Project         = dataRepository.GetNameById(nameof(Project), candidate.ProjectId),
                TechStack       = dataRepository.GetNameById(nameof(TechStack), candidate.TechStackId),
                ResidentAddress = candidate.ResidentAddress,
                ResumePath      = candidate.ResumePath,
            };

            return(candidateDetail);
        }
Esempio n. 17
0

        
        public async Task <IActionResult> Copy(int?id)
        {
            // New Election
            var election = await _context.Elections.FindAsync(id);

            election.ElectionId   = _context.Elections.OrderByDescending(e => e.ElectionId).FirstOrDefault().ElectionId + 1;
            election.ElectionName = "Copy of " + election.ElectionName;
            _context.Add(election);
            await _context.SaveChangesAsync();

            // Copy Races
            var races  = _context.Races.Where(r => r.ElectionId == id);
            var raceId = _context.Races.OrderByDescending(r => r.RaceId).FirstOrDefault().RaceId;
            var i      = 1;

            foreach (var r in races)
            {
                var tempRace = r;
                tempRace.RaceId     = raceId + i;
                tempRace.ElectionId = election.ElectionId;
                _context.Add(tempRace);
                await _context.SaveChangesAsync();

                i++;
            }

            // Copy Steps
            var steps   = _context.Steps.Where(s => s.ElectionId == id);
            var stepsId = _context.Steps.OrderByDescending(s => s.ID).FirstOrDefault().ID;

            foreach (var s in steps)
            {
                var tempS = s;
                tempS.ID         = ++stepsId;
                tempS.ElectionId = election.ElectionId;
                _context.Add(tempS);
                await _context.SaveChangesAsync();
            }

            // Copy Candidate
            var candidates   = _context.Candidates.Where(c => c.ElectionId == id);
            var candidatesId = _context.Candidates.OrderByDescending(c => c.CandidateId).FirstOrDefault().CandidateId;

            i = 1;
            foreach (var c in candidates)
            {
                var tempCandidate = new Candidate {
                    CandidateId    = candidatesId + i,
                    ElectionId     = election.ElectionId,
                    Name           = c.Name,
                    Picture        = "images/default.jpg",
                    OrganizationId = c.OrganizationId
                };
                _context.Add(tempCandidate);
                await _context.SaveChangesAsync();

                i++;

                // Copy CandidateDetails
                var candidateDetails   = _context.CandidateDetails.Where(cd => cd.CandidateId == c.CandidateId);
                var candidateDetailsId = _context.CandidateDetails.OrderByDescending(cd => cd.ID).FirstOrDefault().ID;
                var j = 1;
                foreach (var cd in candidateDetails)
                {
                    var tempCandidateDetails = new CandidateDetail {
                        ID          = candidateDetailsId + j,
                        CandidateId = tempCandidate.CandidateId,
                        Title       = cd.Title,
                        Text        = cd.Text,
                        Format      = cd.Format,
                        Lang        = cd.Lang
                    };
                    _context.Add(tempCandidateDetails);
                    await _context.SaveChangesAsync();

                    j++;
                }

                // Copy Candidate Contacts
                var candidateContacts   = _context.Contacts.Where(con => con.CandidateId == c.CandidateId);
                var candidateContactsId = _context.Contacts.OrderByDescending(con => con.ContactId).FirstOrDefault().ContactId;
                j = 1;
                foreach (var con in candidateContacts)
                {
                    var tempCandidateContacts = new Contact {
                        ContactId     = candidateContactsId + j,
                        ContactMethod = con.ContactMethod,
                        ContactValue  = con.ContactValue,
                        CandidateId   = tempCandidate.CandidateId
                    };
                    _context.Add(tempCandidateContacts);
                    await _context.SaveChangesAsync();

                    j++;
                }

                // Copy Candidate Races
                var newRaces = _context.Races.Where(r => r.ElectionId == election.ElectionId);
                var k        = 0;
                foreach (var r in races)
                {
                    var candidateRaces   = _context.CandidateRaces.Where(cr => cr.CandidateId == c.CandidateId && cr.RaceId == r.RaceId);
                    var candidateRacesId = _context.CandidateRaces.OrderByDescending(cr => cr.CandidateRaceId).FirstOrDefault().CandidateRaceId;
                    j = 1;
                    foreach (var cr in candidateRaces)
                    {
                        var tempCR = new CandidateRace {
                            CandidateRaceId = candidateRacesId + j,
                            CandidateId     = tempCandidate.CandidateId,
                            RaceId          = newRaces.Skip(k).First().RaceId,
                            BallotOrder     = cr.BallotOrder
                        };
                        _context.Add(tempCR);
                        await _context.SaveChangesAsync();

                        j++;
                    }
                    k++;
                }
            }

            // Copy Polling Places
            var pollingPlaces   = _context.PollingPlaces.Where(c => c.ElectionId == id);
            var pollingPlacesId = _context.PollingPlaces.OrderByDescending(pp => pp.PollingPlaceId).FirstOrDefault().PollingPlaceId;

            i = 1;
            foreach (var pp in pollingPlaces)
            {
                var tempPp = new PollingPlace {
                    PollingPlaceId     = pollingPlacesId + i,
                    ElectionId         = election.ElectionId,
                    PollingPlaceName   = pp.PollingPlaceName,
                    PollingStationName = pp.PollingStationName,
                    Address            = pp.Address,
                    WheelchairInfo     = pp.WheelchairInfo,
                    ParkingInfo        = pp.ParkingInfo,
                    Latitude           = pp.Latitude,
                    Longitude          = pp.Longitude,
                    AdvanceOnly        = pp.AdvanceOnly,
                    LocalArea          = pp.LocalArea,
                    Phone = pp.Phone,
                    Email = pp.Email
                };
                _context.Add(tempPp);
                await _context.SaveChangesAsync();

                i++;

                // Copy PollingPlaceDates
                var pollingPlaceDates = _context.PollingPlaceDates.Where(ppd => ppd.PollingPlaceId == pp.PollingPlaceId);
                var pollingDateId     = _context.PollingPlaceDates.OrderByDescending(ppd => ppd.PollingDateId).FirstOrDefault().PollingDateId;
                var j = 1;
                foreach (var ppd in pollingPlaceDates)
                {
                    var tempPpd = new PollingPlaceDate {
                        PollingDateId  = pollingDateId + j,
                        PollingPlaceId = tempPp.PollingPlaceId,
                        PollingDate    = ppd.PollingDate,
                        StartTime      = ppd.StartTime,
                        EndTime        = ppd.EndTime
                    };
                    _context.Add(tempPpd);
                    await _context.SaveChangesAsync();

                    j++;
                }
            }

            // Copy BallotIssues
            var ballotIssues   = _context.BallotIssues.Where(b => b.ElectionId == id);
            var ballotIssuesId = _context.BallotIssues.OrderByDescending(b => b.BallotIssueId).FirstOrDefault().BallotIssueId;

            i = 1;
            foreach (var b in ballotIssues)
            {
                var tempB = new BallotIssue {
                    BallotIssueId    = ballotIssuesId + i,
                    ElectionId       = election.ElectionId,
                    BallotIssueTitle = b.BallotIssueTitle,
                    Description      = b.Description
                };
                _context.Add(tempB);
                await _context.SaveChangesAsync();

                i++;

                // IssueOptions
                var issueOptions   = _context.IssueOptions.Where(io => io.BallotIssueId == b.BallotIssueId);
                var issueOptionsId = _context.IssueOptions.OrderByDescending(io => io.IssueOptionId).FirstOrDefault().IssueOptionId;
                var j = 1;
                foreach (var bi in issueOptions)
                {
                    var tempBi = new IssueOption {
                        IssueOptionId   = issueOptionsId + j,
                        IssueOptionInfo = bi.IssueOptionInfo,
                        BallotIssueId   = tempB.BallotIssueId
                    };
                    _context.Add(tempBi);
                    await _context.SaveChangesAsync();

                    j++;
                }
            }

            // Copy Social Medias
            var socialMedias   = _context.SocialMedias.Where(c => c.ElectionId == id);
            var socialMediasId = _context.SocialMedias.OrderByDescending(sm => sm.ID).FirstOrDefault().ID;

            foreach (var sm in socialMedias)
            {
                var tempSM = sm;
                tempSM.ID         = ++socialMediasId;
                tempSM.ElectionId = election.ElectionId;
                _context.Add(tempSM);
                await _context.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
        public JsonResult DistributeCandidates()
        {
            string message = "";

            try
            {
                int examinerCount      = 0;
                int numberOfCandidates = 0;
                List <ExaminerDetail> examinerDetails = adDal.ExaminerDetails();
                if (examinerDetails != null)
                {
                    examinerCount = examinerDetails.Count();
                }
                var todayDate = DateTime.Today.Date;
                List <CandidateExamBookingDetail> candDetails = adDal.CandidateExamBookingDetails(todayDate);

                if (candDetails != null)
                {
                    numberOfCandidates = candDetails.Count();
                }

                if (numberOfCandidates != 0 && examinerCount != 0)
                {
                    //int remainingCand = 0;
                    //if (numberOfCandidates % examinerCount != 0)
                    //{
                    //    remainingCand = numberOfCandidates % examinerCount;
                    //}
                    //int candPerExaminer = numberOfCandidates / examinerCount;
                    int j = 0;
                    foreach (var cand in candDetails)
                    {
                        // TADEDBEntities candUpd = new TADEDBEntities();
                        string unidate    = DateTime.Today.ToShortDateString();
                        string strunidate = unidate.Replace("/", "");

                        int    examinerId  = examinerDetails.ElementAt(j).ExaminerId;
                        string uniquetoken = strunidate + examinerId.ToString();

                        CandidateDetail cd = adDal.GetCandidateDetailsByCandidateId(cand.CandidateId);
                        cd.CandidateId = cand.CandidateId;
                        cd.Status      = true;
                        cd.ExaminerId  = examinerId;
                        cd.uniquetoken = uniquetoken;
                        bool saveCand = adDal.SaveCandidateDetails(cd);

                        // EBDal.UpdateCandidateDetails(cd);
                        j = j + 1;
                        if (j == examinerCount)
                        {
                            j = 0;
                        }
                    }

                    List <CandidateExamBookingDetail> pastcandDetails = adDal.CandidateExamBookingDetail(todayDate);

                    foreach (var pastcand in pastcandDetails)
                    {
                        CandidateDetail cdpast = adDal.GetCandidateDetailsByCandidateId(pastcand.CandidateId);
                        cdpast.CandidateId = pastcand.CandidateId;
                        cdpast.Status      = false;
                        adDal.SaveCandidateDetails(cdpast);
                    }
                    message = "OK";
                }
                else
                {
                    message = "Number of candidates booked for today's test are " + numberOfCandidates.ToString() + " and number of examiners is " + examinerCount.ToString();
                }
                List <DistributeCandidateDetails> distributedCandDetails = adDal.DistributeCandidateDetails();
                return(Json(distributedCandDetails, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                message = ex.ToString();
                return(Json(message, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult BookExam([Bind(Include = "BookingId,CandidateId,BookedDate,SlotId")] CandidateExamBookingDetail candidateExamBookingDetail)
        {
            string message = "";

            //Here we will save data to the database
            try
            {
                int candidateId = Convert.ToInt32(Session["CandidateId"]);
                if (candidateId != 0)
                {
                    DateTime exambookdate = Convert.ToDateTime(candidateExamBookingDetail.BookedDate);
                    exambookdate = Convert.ToDateTime(exambookdate.ToShortDateString());
                    //
                    candidateExamBookingDetail.BookedDate  = exambookdate;
                    candidateExamBookingDetail.CandidateId = candidateId;
                    candidateExamBookingDetail.Status      = true;
                    CandidateExamBookingDetail candidateExamBookingDetl = candDal.CandidateExamBookingDetailByCandidateId(candidateExamBookingDetail.CandidateId);

                    if (candidateExamBookingDetl == null)
                    {
                        candDal.SaveCandidateExamBookingDetails(candidateExamBookingDetail);

                        UpdateSeats(exambookdate, candidateExamBookingDetail.SlotId, -1);
                    }
                    else
                    {
                        if (candidateExamBookingDetl.SlotId == candidateExamBookingDetail.SlotId && candidateExamBookingDetl.BookedDate == candidateExamBookingDetail.BookedDate)
                        {
                        }
                        else
                        {
                            UpdateSeats(Convert.ToDateTime(candidateExamBookingDetl.BookedDate), candidateExamBookingDetl.SlotId, 1);
                            UpdateSeats(exambookdate, candidateExamBookingDetail.SlotId, -1);
                        }

                        candDal.UpdateCandidateExamBookingDetails(candidateExamBookingDetail);
                    }
                    if (exambookdate == Convert.ToDateTime(DateTime.Today.ToShortDateString()))
                    {
                        int ExaminerId = candDal.ExaminerDetailByStatus().ExaminerId;
                        //TADEDBEntities candUpd = new TADEDBEntities();
                        string unidate    = DateTime.Today.ToShortDateString();
                        string strunidate = unidate.Replace("/", "");


                        string uniquetoken = strunidate + ExaminerId.ToString();

                        CandidateDetail cd = candDal.CandidateDetailsById(candidateId);
                        cd.CandidateId = candidateId;
                        cd.Status      = true;
                        cd.ExaminerId  = ExaminerId;
                        cd.uniquetoken = uniquetoken;
                        candDal.UpdateCandidateDetail(cd);
                    }
                    SendMail(candidateExamBookingDetail);
                    message = "Success";
                }
            }
            catch (Exception ex) { message = ex.ToString(); }


            return(Json(message));

            // return new JsonResult { Data = message, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }