public ActionResult SignIn(LogInModel LogIn)
        {
            ProjectEntities DbEntities = new ProjectEntities();

            if (ModelState.IsValid)
            {
                BLL.MdPassWord DESPassWord = new BLL.MdPassWord();
                LogIn.PassWord = DESPassWord.Encrypt(LogIn.PassWord);

                var UserResult = DbEntities.UserInfo.SingleOrDefault(p => p.UserName == LogIn.UserName && p.PassWord == LogIn.PassWord );

                if (UserResult != null)
                {
                    Session["UserLogin"] = UserResult;
                    if (UserResult.Type == 2)
                    {
                        return RedirectToAction("Index", "Manage");
                    }
                    else
                    {
                        ModelState.AddModelError("", Internationalization.Resources.LoginFailed);
                    }
                }
                else
                {
                    ModelState.AddModelError("", Internationalization.Resources.LoginFailed);
                }
            }

            return View(LogIn);
        }
        //
        // GET: /Home/
        public ActionResult Index()
        {
            ProjectEntities DbEntities = new ProjectEntities();
            if (Session["UserLogin"] != null)
            {
                var UserInfo = (DAL.UserInfo)Session["UserLogin"];
                BLL.MdPassWord DESPassWord = new BLL.MdPassWord();
                ViewModels.UserInfoModel userEntity = new ViewModels.UserInfoModel();

                userEntity.CompanyName = UserInfo.CompanyName;
                ViewData["CountryName"] = DbEntities.Country.SingleOrDefault(p => p.CountryID == UserInfo.CountryID).CountryName;
                userEntity.Email = UserInfo.Email;
                userEntity.FirstName = UserInfo.FirstName;
                userEntity.LastName = UserInfo.LastName;
                userEntity.UserName = UserInfo.UserName;
                //userEntity.AccountType = (int)UserInfo.AccountType;
                userEntity.CountryID = (int)UserInfo.CountryID;
                userEntity.DisplayName = UserInfo.DisplayName;
                userEntity.Email = UserInfo.Email;
                userEntity.How = (int)UserInfo.How;
                userEntity.PassWord = UserInfo.PassWord;
                userEntity.Type = UserInfo.Type;
                userEntity.UserID = UserInfo.UserID;
                userEntity.UserName = UserInfo.UserName;
                //ViewData["PassWord"] = DESPassWord.Decrypt(UserInfo.PassWord);

                return View(userEntity);
            }
            else
            {
                return RedirectToAction("SignIn", "Manage");
            }
        }
        public ActionResult AddEmployer(EmployerModel employer, FormCollection FormPost)
        {
            if (ModelState.IsValid)
            {
                string CountryId = FormPost["CountryName"];
                string HowId = FormPost["HowHear"];

                BLL.MdPassWord DESPassword = new BLL.MdPassWord();
                UserInfo EmployerInfo = new UserInfo();
                EmployerInfo.UserID = BLL.BaseUtility.GenerateGUID();
                EmployerInfo.FirstName = employer.FirstName;
                EmployerInfo.LastName = employer.LastName;
                EmployerInfo.Email = employer.Email;
                EmployerInfo.CompanyName = employer.CompanyName;
                EmployerInfo.CountryID = Convert.ToInt32(CountryId);
                EmployerInfo.UserName = employer.UserName;
                EmployerInfo.PassWord = DESPassword.Encrypt(employer.PassWord);
                EmployerInfo.How = Convert.ToInt32(HowId);
                EmployerInfo.Type = 0;

                DbEntities.UserInfo.AddObject(EmployerInfo);
                DbEntities.SaveChanges();

                Session["NewUser"] = EmployerInfo;

                return RedirectToAction("VerifyEmail", "Account");
            }

            return View();
        }
        public ActionResult AddWorker(WorkerModel worker, FormCollection FormPost)
        {
            if (ModelState.IsValid)
            {
                string CountryId = FormPost["CountryName"];
                string HowId = FormPost["HowHear"];
                string AccountType = FormPost["AccountType"];

                BLL.MdPassWord DESPassword = new BLL.MdPassWord();
                UserInfo WorkerInfo = new UserInfo();
                WorkerInfo.UserID = BLL.BaseUtility.GenerateGUID();
                WorkerInfo.FirstName = worker.FirstName;
                WorkerInfo.LastName = worker.LastName;
                WorkerInfo.Email = worker.Email;
                WorkerInfo.CountryID = Convert.ToInt32(CountryId);
                WorkerInfo.UserName = worker.UserName;
                WorkerInfo.PassWord = DESPassword.Encrypt(worker.PassWord);
                WorkerInfo.How = Convert.ToInt32(HowId);
                WorkerInfo.AccountType = Convert.ToInt32(AccountType);
                WorkerInfo.DisplayName = worker.DisplayName;
                WorkerInfo.Type = 1;

                DbEntities.UserInfo.AddObject(WorkerInfo);
                DbEntities.SaveChanges();

                Session["NewUser"] = WorkerInfo;

                return RedirectToAction("WantJob", "Account");
            }

            return View();
        }
        public ActionResult WorkerIndex()
        {
            if (Session["UserLogin"] != null)
            {
                var UserInfo = (DAL.UserInfo)Session["UserLogin"];
                BLL.MdPassWord DESPassWord = new BLL.MdPassWord();
                ViewModels.WorkerInfo CurrentWorker = new ViewModels.WorkerInfo();
                ViewModels.WorkerModel WorkerInfo = new ViewModels.WorkerModel();

                WorkerInfo.UserID = UserInfo.UserID;
                WorkerInfo.FirstName = UserInfo.FirstName;
                WorkerInfo.LastName = UserInfo.LastName;
                WorkerInfo.Email = UserInfo.Email;
                ViewData["CountryName"] = DbEntities.Country.SingleOrDefault(p => p.CountryID == UserInfo.CountryID).CountryName;
                WorkerInfo.UserName = UserInfo.UserName;
                ViewData["PassWord"] = DESPassWord.Decrypt(UserInfo.PassWord);

                switch (UserInfo.How)
                {
                    case 0:
                        ViewData["HowHear"] = Internationalization.Resources.Select;
                        break;
                    case 1:
                        ViewData["HowHear"] = Internationalization.Resources.Blog;
                        break;
                    case 2:
                        ViewData["HowHear"] = Internationalization.Resources.Conference;
                        break;
                    case 3:
                        ViewData["HowHear"] = Internationalization.Resources.Coworker;
                        break;
                    case 4:
                        ViewData["HowHear"] = Internationalization.Resources.Facebook;
                        break;
                    case 5:
                        ViewData["HowHear"] = Internationalization.Resources.Friend;
                        break;
                    case 6:
                        ViewData["HowHear"] = Internationalization.Resources.Linkedln;
                        break;
                    case 7:
                        ViewData["HowHear"] = Internationalization.Resources.OnlineAdvertisement;
                        break;
                    case 8:
                        ViewData["HowHear"] = Internationalization.Resources.OnlineNewsArticle;
                        break;
                    case 9:
                        ViewData["HowHear"] = Internationalization.Resources.SocialMediaSite;
                        break;
                    case 10:
                        ViewData["HowHear"] = Internationalization.Resources.TV;
                        break;
                    case 11:
                        ViewData["HowHear"] = Internationalization.Resources.Twitter;
                        break;
                    case 12:
                        ViewData["HowHear"] = Internationalization.Resources.WebSearchEngine;
                        break;
                    case 13:
                        ViewData["HowHear"] = Internationalization.Resources.Other;
                        break;
                }

                switch (UserInfo.AccountType)
                {
                    case 0:
                        ViewData["AccountType"] = Internationalization.Resources.Individual;
                        break;
                    case 1:
                        ViewData["AccountType"] = Internationalization.Resources.Business;
                        break;
                }

                WorkerInfo.DisplayName = UserInfo.DisplayName;

                CurrentWorker.WorkerBasic = WorkerInfo;

                UI.ViewModels.BasicsModel BasicsModel = new ViewModels.BasicsModel();
                UI.Utility.ModelCopier.CopyModel(DbEntities.BasicsInfo.SingleOrDefault(p => p.UserId == UserInfo.UserID), BasicsModel);
                CurrentWorker.BasicsInfo = BasicsModel;

                UI.ViewModels.SkillsModel SkillsModel = new ViewModels.SkillsModel();
                UI.Utility.ModelCopier.CopyModel(DbEntities.SkillsInfo.SingleOrDefault(p => p.UserId == UserInfo.UserID), SkillsModel);
                CurrentWorker.SkillsInfo = SkillsModel;

                if (CurrentWorker.BasicsInfo != null)
                {
                    var TempCountry = DbEntities.Country.FirstOrDefault(p => p.CountryID == CurrentWorker.BasicsInfo.CountryId);
                    if (TempCountry != null)
                    {
                        ViewData["CountryInfo"] = TempCountry.CountryName;
                    }

                    var TempNumber = DbEntities.PhoneNumber.FirstOrDefault(p => p.PhoneNumberID == CurrentWorker.BasicsInfo.PhoneNumberId);
                    if (TempNumber != null)
                    {
                        ViewData["PhoneNumber"] = TempNumber.PhoneNumberName;
                    }
                }

                CurrentWorker.JobList = new ViewModels.WantJobList();
                CurrentWorker.JobList.WantList = new List<ViewModels.WantJobModel>();
                var CurrentWant = DbEntities.WantJob.Where(p => p.WorkerID == UserInfo.UserID);
                UI.Utility.WantJob WantJobCulture = new Utility.WantJob();

                foreach (var CurrentTemp in CurrentWant)
                {
                    var CurrentSubject = DbEntities.Subjects.SingleOrDefault(p => p.ID == CurrentTemp.SubjectsID);
                    if (CurrentSubject != null && CurrentSubject.ParentId == null)
                    {
                        ViewModels.WantJobModel WantJob = new ViewModels.WantJobModel();
                        WantJob.SubjectsList = new List<Subjects>();
                        WantJob.ID = CurrentSubject.ID;
                        WantJob.Name = WantJobCulture.GetItem(CurrentSubject.ID);

                        var SubjectSub = DbEntities.Subjects.Where(p => p.ParentId == CurrentSubject.ID);
                        foreach (var TempSub in SubjectSub)
                        {
                            Subjects TempSubject = new Subjects();
                            TempSubject.ID = TempSub.ID;
                            TempSubject.Name = WantJobCulture.GetItem(TempSub.ID);
                            TempSubject.ParentId = TempSub.ParentId;

                            WantJob.SubjectsList.Add(TempSubject);
                        }

                        CurrentWorker.JobList.WantList.Add(WantJob);
                    }
                }

                return View(CurrentWorker);
            }
            else
            {
                return RedirectToAction("LogIn", "Account");
            }
        }
        public ActionResult EmployerIndex()
        {
            if (Session["UserLogin"] != null)
            {
                var UserInfo = (DAL.UserInfo)Session["UserLogin"];
                BLL.MdPassWord DESPassWord = new BLL.MdPassWord();
                ViewModels.EmployerModel EmployerInfo = new ViewModels.EmployerModel();

                EmployerInfo.CompanyName = UserInfo.CompanyName;
                ViewData["CountryName"] = DbEntities.Country.SingleOrDefault(p => p.CountryID == UserInfo.CountryID).CountryName;
                EmployerInfo.Email = UserInfo.Email;
                EmployerInfo.FirstName = UserInfo.FirstName;
                EmployerInfo.LastName = UserInfo.LastName;
                EmployerInfo.UserName = UserInfo.UserName;
                ViewData["PassWord"] = DESPassWord.Decrypt(UserInfo.PassWord);

                switch (UserInfo.How)
                {
                    case 0:
                        ViewData["HowHear"] = Internationalization.Resources.Select;
                        break;
                    case 1:
                        ViewData["HowHear"] = Internationalization.Resources.Blog;
                        break;
                    case 2:
                        ViewData["HowHear"] = Internationalization.Resources.Conference;
                        break;
                    case 3:
                        ViewData["HowHear"] = Internationalization.Resources.Coworker;
                        break;
                    case 4:
                        ViewData["HowHear"] = Internationalization.Resources.Facebook;
                        break;
                    case 5:
                        ViewData["HowHear"] = Internationalization.Resources.Friend;
                        break;
                    case 6:
                        ViewData["HowHear"] = Internationalization.Resources.Linkedln;
                        break;
                    case 7:
                        ViewData["HowHear"] = Internationalization.Resources.OnlineAdvertisement;
                        break;
                    case 8:
                        ViewData["HowHear"] = Internationalization.Resources.OnlineNewsArticle;
                        break;
                    case 9:
                        ViewData["HowHear"] = Internationalization.Resources.SocialMediaSite;
                        break;
                    case 10:
                        ViewData["HowHear"] = Internationalization.Resources.TV;
                        break;
                    case 11:
                        ViewData["HowHear"] = Internationalization.Resources.Twitter;
                        break;
                    case 12:
                        ViewData["HowHear"] = Internationalization.Resources.WebSearchEngine;
                        break;
                    case 13:
                        ViewData["HowHear"] = Internationalization.Resources.Other;
                        break;
                }

                return View(EmployerInfo);
            }
            else
            {
                return RedirectToAction("LogIn", "Account");
            }
        }