/* Button Click event for Register Button */ protected void CreateUser_Click(object sender, EventArgs e) { /* Only after validations are done and page is valid the functionality is performed * Only Members are registered using Registration Page * Employees are Registered by Manager Using Add Employee Login */ if (IsValid) { PlanetFitnessDataContext _dataContext = new PlanetFitnessDataContext(); UserAccount _userAccount = new UserAccount(); UserType userType = new UserType(); Member _member = new Member(); var _query = (from user in _dataContext.UserAccounts where user.EmailId_vc.Equals(Email.Text) select user); /* If there is already a user (Member) with the same email Id we throw an Error*/ if (_query.Count() != 0) { ErrorMessage.Text = "Email Id already registered....."; ErrorMessage.Visible = true; } /* Else we register the user i.e., Member */ else { ErrorMessage.Visible = false; _userAccount.UserName_vc = UserName.Text; _userAccount.FirstName_vc = FirstName.Text; _userAccount.LastName_vc = LastName.Text; _userAccount.Address_vc = Address.Text; _userAccount.EmailId_vc = Email.Text; _userAccount.PhoneNumber_vc = PhoneNumber.Text; DateTime dt = DateTime.ParseExact(DateOfBirth.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture); label1.Text = dt.ToString(); _userAccount.DOB_date = dt; _userAccount.Password_vc = Encryption.Encrypt(Password.Text); _userAccount.SSN_vc = Ssn.Text; var _result = (from userTypeOne in _dataContext.UserTypes where userTypeOne.UserType_vc.Equals("Member") select userTypeOne).FirstOrDefault(); _userAccount.FK_UserType_UserAccount_in = _result.UserTypeID_in; /* After Password is encrypted and Date is formatted, we Insert into * User Accounts Table with User Type fetched from User Type Table */ _dataContext.UserAccounts.InsertOnSubmit(_userAccount); _dataContext.SubmitChanges(); var _resultAccount = (from userAccount in _dataContext.UserAccounts where userAccount.EmailId_vc.Equals(Email.Text) select userAccount).FirstOrDefault(); _member.BillAmount_de = Decimal.Parse("0.00"); _member.FK_UserAccount_Member_in = _resultAccount.UserAccountID_in; /* An Entry into Member Table with the Bill Amount Set to Zero Dollars is Created */ _dataContext.Members.InsertOnSubmit(_member); _dataContext.SubmitChanges(); Session["UserId"] = _resultAccount.UserAccountID_in; Session["UserName"] = _resultAccount.UserName_vc; Response.Redirect("/Member/MemberProfile"); } } }
/* LogIn function which is called when a Login button is clicked. This is on button Click event handler It takes Default parameters of eventArgs and Sender */ protected void LogIn(object sender, EventArgs e) { PlanetFitnessDataContext _context = new PlanetFitnessDataContext(); /*Only if form is validated it is allowed to perform some function*/ if (IsValid) { /* Fetch users with the entered emailId*/ var _query = (from user in _context.UserAccounts where user.EmailId_vc.Equals(Email.Text) select user); /* Only if there is a single user with that particular EmailId he is allowed to Login*/ if (_query.Count() == 1) { /* Check for the Password against Decrypted Password*/ if (Encryption.Decrypt(_query.FirstOrDefault().Password_vc).Equals(Password.Text)) { var _result = (from userType in _context.UserTypes where userType.UserTypeID_in.Equals(_query.FirstOrDefault().FK_UserType_UserAccount_in) select userType).FirstOrDefault(); /* Depending on type of user we reditect to corresponding page.*/ if (_result.UserType_vc.Equals("Manager")) { Session["UserName"] = _query.FirstOrDefault().UserName_vc; Session["UserId"] = _query.FirstOrDefault().UserAccountID_in; Response.Redirect("/Employee/EmployeeProfile"); } else if (_result.UserType_vc.Equals("Member")) { Session["UserName"] = _query.FirstOrDefault().UserName_vc; Session["UserId"] = _query.FirstOrDefault().UserAccountID_in; Response.Redirect("/Member/MemberProfile"); } else if (_result.UserType_vc.Equals("Trainer")) { Session["UserName"] = _query.FirstOrDefault().UserName_vc; Session["UserId"] = _query.FirstOrDefault().UserAccountID_in; Response.Redirect("/Trainer/TrainerProfile"); } else { FailureText.Text = "Invalid login attempt"; ErrorMessage.Visible = true; } } else { FailureText.Text = "Invalid login attempt"; ErrorMessage.Visible = true; } } else { FailureText.Text = "Invalid login attempt"; ErrorMessage.Visible = true; } } }
/* Before we load the page we fetch List of Activities to be populated into the Select List */ protected void Page_Load(object sender, EventArgs e) { /* Fetch Should perform only if it is not PostBack to avoid loading the * Select List with duplicate items Everytime */ if (Session["UserId"] != null) { if (!IsPostBack) { PlanetFitnessDataContext _dataContext = new PlanetFitnessDataContext(); var _query = (from activity in _dataContext.Activities select activity); Activity.DataSource = _query; Activity.DataTextField = "Activity_vc"; Activity.DataValueField = "ActivityID_in"; Activity.DataBind(); Activity.Items.Insert(0, new ListItem("--Select--", "")); } } else { Response.Redirect("/Account/InvalidLogin"); } }
/* On Click Event to handle Add Employee Button Click */ protected void CreateEmployee_Click(object sender, EventArgs e) { /* Only if the form is valid, We Perform Some Action */ if (IsValid) { /* If a valid Activity is selected */ if (Activity.SelectedValue != "") { PlanetFitnessDataContext _dataContext = new PlanetFitnessDataContext(); UserAccount _userAccount = new UserAccount(); UserType _userType = new UserType(); Trainer trainer = new Trainer(); var query = (from user in _dataContext.UserAccounts where user.EmailId_vc.Equals(Email.Text) select user); /* If EmailId is Already registered we throw an error */ if (query.Count() != 0) { ErrorMessage.Text = "Email Id already registered....."; ErrorMessage.Visible = true; } else { ErrorMessage.Visible = false; _userAccount.UserName_vc = UserName.Text; _userAccount.FirstName_vc = FirstName.Text; _userAccount.LastName_vc = LastName.Text; _userAccount.Address_vc = Address.Text; _userAccount.EmailId_vc = Email.Text; _userAccount.PhoneNumber_vc = PhoneNumber.Text; DateTime dt = DateTime.ParseExact(DateOfBirth.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture); _userAccount.DOB_date = dt; _userAccount.Password_vc = Encryption.Encrypt(Password.Text); _userAccount.SSN_vc = Ssn.Text; var _result = (from userTypeOne in _dataContext.UserTypes where userTypeOne.UserType_vc.Equals("Trainer") select userTypeOne).FirstOrDefault(); _userAccount.FK_UserType_UserAccount_in = _result.UserTypeID_in; /* After Password is Encrypted and Date is formatted, we Insert them into tables */ _dataContext.UserAccounts.InsertOnSubmit(_userAccount); _dataContext.SubmitChanges(); var result = (from user in _dataContext.UserAccounts where user.EmailId_vc.Equals(Email.Text) select user).FirstOrDefault(); var activityId = (from activity in _dataContext.Activities where activity.ActivityID_in.Equals(Activity.SelectedValue) select activity).FirstOrDefault().ActivityID_in; trainer.FK_Activity_Trainer_in = activityId; trainer.FK_UserAccount_Trainer_in = result.UserAccountID_in; /* Data is inserted into trainer table depending on which activity is selected */ _dataContext.Trainers.InsertOnSubmit(trainer); _dataContext.SubmitChanges(); Response.Redirect("/Employee/AddEmployeeSuccess"); } } else { ErrorMessage.Text = "Select a valid activity"; ErrorMessage.Visible = true; } } }
/* This Page is redirected from EditEmployee Page */ protected void Page_Load(object sender, EventArgs e) { /* Only if it is not PostBack request we do the following */ if (Session["UserId"] != null) { if (!IsPostBack) { /* We fetch the Email Id from the query string */ if (Request.QueryString["emailId"] != null) { String _emailId = Request.QueryString["emailId"].ToString().Trim(); PlanetFitnessDataContext _dataContext = new PlanetFitnessDataContext(); /* Fetch the user details to be edited by fetching and prepopulating the user detiails */ var _query = (from userAccount in _dataContext.UserAccounts where userAccount.EmailId_vc.Equals(_emailId) select userAccount).FirstOrDefault(); UserName.Text = _query.UserName_vc; FirstName.Text = _query.FirstName_vc; LastName.Text = _query.LastName_vc; Address.Text = _query.Address_vc; PhoneNumber.Text = _query.PhoneNumber_vc; Email.Text = _query.EmailId_vc; Ssn.Text = _query.SSN_vc.ToString(); Password.Text = Encryption.Decrypt(_query.Password_vc); DateTime _dateTime = Convert.ToDateTime(_query.DOB_date); DateOfBirthOne.Text = _dateTime.Date.ToString("d"); var _activities = (from activity in _dataContext.Activities select activity); Activity.DataSource = _activities; Activity.DataTextField = "Activity_vc"; Activity.DataValueField = "ActivityID_in"; Activity.DataBind(); Activity.Items.Insert(0, new ListItem("--Select--", "")); var _activityId = (from trainer in _dataContext.Trainers where trainer.FK_UserAccount_Trainer_in.Equals(_query.UserAccountID_in) select trainer).FirstOrDefault().FK_Activity_Trainer_in.ToString(); Activity.Items.FindByValue(_activityId).Selected = true; /* Maintain the details about the user being edited as he is different from User who is Logged in */ Session["EditId"] = _query.UserAccountID_in; } } } else Response.Redirect("/Account/InvalidLogin"); }
/* On Click Event for Edit Employee Button Click */ protected void EditEmployee_Click(object sender, EventArgs e) { /* Only if the form is valid then perform the following actions. */ if (IsValid) { PlanetFitnessDataContext _dataContext = new PlanetFitnessDataContext(); /*Depending on Edit Id Stored in the Session we update the details of the Trainer*/ String _userAccountId = Session["EditId"].ToString(); var _userAccount = (from userAccountData in _dataContext.UserAccounts where userAccountData.UserAccountID_in.Equals(_userAccountId) select userAccountData).FirstOrDefault(); _userAccount.UserName_vc = UserName.Text; _userAccount.FirstName_vc = FirstName.Text; _userAccount.LastName_vc = LastName.Text; _userAccount.Address_vc = Address.Text; _userAccount.EmailId_vc = Email.Text; _userAccount.Password_vc = Encryption.Encrypt(Password.Text); _userAccount.SSN_vc = Ssn.Text; _userAccount.DOB_date = Convert.ToDateTime(DateOfBirthOne.Text); _userAccount.PhoneNumber_vc = PhoneNumber.Text; var _activityId = (from trainer in _dataContext.Trainers where trainer.FK_UserAccount_Trainer_in.Equals(_userAccountId) select trainer).FirstOrDefault().FK_Activity_Trainer_in.ToString(); if (_activityId.Equals(Activity.SelectedValue)) { try { _dataContext.SubmitChanges(); Response.Redirect("/Employee/EditEmployeeSuccess"); } catch (Exception exception) { ErrorMessage.Text = "Something went wrong..Please try again."; Console.WriteLine(exception); } } /* If the slot trained by the Trainer is booked by someone * Then we cannot change the Trainer Activity */ else { var _slots = (from slot in _dataContext.Slots where slot.FK_Trainer_Slot_in.Equals( (from trainer in _dataContext.Trainers where trainer.FK_UserAccount_Trainer_in.Equals(_userAccountId) select trainer).FirstOrDefault().TrainerID_in) select slot); if (_slots.Count() != 0) { ErrorMessage.Text = "Trainer has slots with that activity...So cannot be changed"; } else { _slots.FirstOrDefault().FK_Trainer_Slot_in = Convert.ToInt32(Activity.SelectedValue); _dataContext.SubmitChanges(); Response.Redirect("/Employee/EditEmployeeSuccess"); } } } }