// ////////////////////////////////////////////////////////////////////////
        // PRIVATE METHODS
        //
        private void Save()
        {
            bool exists = false;

            // Validate page
            if (Page.IsValid)
            {
                int projectIdToSave = Int32.Parse(hdfSelectedProjectId.Value);

                ProjectSelectProjectLastUsedProjectsGateway projectSelectProjectLastUsedProjectsVerifyGateway = new ProjectSelectProjectLastUsedProjectsGateway(projectSelectProjectTDS);
                ProjectSelectProjectLastUsedProjects projectSelectProjectLastUsedProjectsVerify = new ProjectSelectProjectLastUsedProjects(projectSelectProjectLastUsedProjectsVerifyGateway.Data);
                exists = projectSelectProjectLastUsedProjectsVerify.ExistProject(projectIdToSave);

                if (exists)
                {
                    // New Data
                    DateTime newLastLoggedInDate = DateTime.Now;

                    // Update if exists
                    ProjectSelectProjectLastUsedProjects model = new ProjectSelectProjectLastUsedProjects(projectSelectProjectTDS);
                    model.UpdateLogginDate(projectIdToSave, newLastLoggedInDate);

                    Session["projectSelectProjectTDS"] = projectSelectProjectTDS;
                    Session["projectLastUsedProjects"] = projectSelectProjectTDS.LastUsedProjects;
                }

                // If doesn't exists at grid
                if (!exists)
                {
                    if (projectSelectProjectLastUsedProjectsVerifyGateway.Table.Rows.Count < 5)
                    {
                        // Add data if exist at grid's
                        ProjectAdd();
                    }
                    else
                    {
                        if (projectSelectProjectLastUsedProjectsVerifyGateway.Table.Rows.Count == 5)
                        {
                            // New Data
                            int newProjectId = Int32.Parse(hdfSelectedProjectId.Value);
                            int newCompanyId = Int32.Parse(hdfCompanyId.Value);
                            int newUserId = Convert.ToInt32(Session["loginID"]);
                            DateTime newLastLoggedInDate = DateTime.Now;

                            ProjectGateway projectGateway = new ProjectGateway();
                            projectGateway.LoadByProjectId(newProjectId);
                            string newProjectName = projectGateway.GetName(newProjectId) + " (" + projectGateway.GetProjectNumber(newProjectId) + ")";

                            // Update if exists
                            ProjectSelectProjectLastUsedProjects model = new ProjectSelectProjectLastUsedProjects(projectSelectProjectTDS);
                            model.Update(newProjectId, newUserId, newLastLoggedInDate, newCompanyId, false, newProjectName);

                            Session["projectSelectProjectTDS"] = projectSelectProjectTDS;
                            Session["projectLastUsedProjects"] = projectSelectProjectTDS.LastUsedProjects;
                        }
                    }
                }

                // Update data at bd
                UpdateDatabase();
            }
        }
        private void UpdateDatabase()
        {
            DB.Open();
            DB.BeginTransaction();
            try
            {
                int companyId = Int32.Parse(hdfCompanyId.Value);

                // Update
                ProjectSelectProjectLastUsedProjects projectSelectProjectLastUsedProjects = new ProjectSelectProjectLastUsedProjects(projectSelectProjectTDS);
                projectSelectProjectLastUsedProjects.Save(companyId);

                DB.CommitTransaction();

                // Store datasets
                projectSelectProjectTDS.AcceptChanges();
                Session["projectSelectProjectTDS"] = projectSelectProjectTDS;
                Session["projectLastUsedProjects"] = projectSelectProjectTDS.LastUsedProjects;
            }
            catch (Exception ex)
            {
                DB.RollbackTransaction();

                string url = string.Format("./../../error_page.aspx?error={0}", ex.Message.Replace('\n', ' '));
                Response.Redirect(url);
            }
        }
        private void ProjectAdd()
        {
            if (Page.IsValid)
            {
                int projectId = Int32.Parse(hdfSelectedProjectId.Value);
                int companyId = Int32.Parse(hdfCompanyId.Value);
                int loginId = Convert.ToInt32(Session["loginID"]);
                DateTime lastLoggedInDate = DateTime.Now;
                bool deleted = false;

                ProjectGateway projectGateway = new ProjectGateway();
                projectGateway.LoadByProjectId(projectId);
                string projectName = projectGateway.GetName(projectId) + " (" + projectGateway.GetProjectNumber(projectId) + ")";

                ProjectSelectProjectLastUsedProjects model = new ProjectSelectProjectLastUsedProjects(projectSelectProjectTDS);
                model.Insert(projectId, loginId, lastLoggedInDate, companyId, deleted, projectName, false);

                Session.Remove("lastUsedProjectsDummy");
                Session["projectSelectProjectTDS"] = projectSelectProjectTDS;
                Session["projectLastUsedProjects"] = projectSelectProjectTDS.LastUsedProjects;
            }
        }