using System; using System.Configuration; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using ASPNET.StarterKit.BusinessLogicLayer; using System.Web.Security; namespace ASPNET.StarterKit.DataAccessLayer { public abstract class DataAccess { /*** PROPERTIES ***/ protected string ConnectionString { get { if (ConfigurationManager.ConnectionStrings["aspnet_staterKits_TimeTracker"] == null) throw (new NullReferenceException("ConnectionString configuration is missing from you web.config. It should contain ")); string connectionString = ConfigurationManager.ConnectionStrings["aspnet_staterKits_TimeTracker"].ConnectionString; if (String.IsNullOrEmpty(connectionString)) throw (new NullReferenceException("ConnectionString configuration is missing from you web.config. It should contain ")); else return (connectionString); } } protected string PrevuConnectionString { get { if (ConfigurationManager.ConnectionStrings["Prevu"] == null) throw (new NullReferenceException("ConnectionString configuration is missing from you web.config. It should contain ")); string connectionString = ConfigurationManager.ConnectionStrings["Prevu"].ConnectionString; if (String.IsNullOrEmpty(connectionString)) throw (new NullReferenceException("ConnectionString configuration is missing from you web.config. It should contain ")); else return (connectionString); } } /*** METHODS ***/ //Category public abstract int CreateNewCategory(Category newCategory); public abstract bool DeleteCategory(int categoryId); public abstract List GetAllCategories(); public abstract Category GetCategoryByCategoryId(int Id); public abstract List GetCategoriesByProjectId(int projectId); public abstract Category GetCategoryByCategoryNameandProjectId(string categoryName, int projectId); public abstract bool UpdateCategory(Category newCategory); //TimeEntry public abstract int CreateNewTimeEntry(TimeEntry newTimeEntry); public abstract bool DeleteTimeEntry(int timeEntryId); public abstract List GetAllTimeEntries(); public abstract List GetTimeEntries(int projectId, string userName); public abstract List GetTimeEntries( string userName,DateTime WeekStart); public abstract List GetWeekEndingForStartDate(DateTime Start); public abstract TimeEntry GetTimeEntryById(int timeEntryId); public abstract List GetTimeEntriesByUserNameAndDates(string userName, DateTime startingDate, DateTime endDate); public abstract List GetTimeEntriesByUserNameForDuration(string userName, DateTime startingDate); public abstract List GetWeekEndingDates(string userName); public abstract bool UpdateTimeEntry(TimeEntry timeEntry); public abstract List GetAllUnSubmittedTimeEntries(); // Project public abstract bool AddUserToProject(int projectId, string userName); public abstract int CreateNewProject(Project newProject); public abstract bool DeleteProject(int projectID); public abstract List GetAllProjects(); public abstract List GetAllProjects(DateTime StartDate); public abstract Project GetProjectById(int projectId, bool includeInactive); public abstract Project GetProjectByNumber(string projectNbr, bool includeInactive); public abstract Project GetProjectByName(string projectName,bool includeInactive); public abstract List GetProjectsByManagerUserName(string userName); public abstract List GetProjectMembers(int Id); public abstract List GetProjectsByUserName(string userName); public abstract bool RemoveUserFromProject(int projectId, string userName); public abstract bool UpdateProject(Project projectToUpdate); //User report public abstract List GetUserReportsByProjectId(int projectId); public abstract List GetUserReportsByCategoryId(int categoryId); // UserTotalDurationReport public abstract List GetUserReportsByUserName(string userName); // import data from 3rd party public abstract List ImportProjects(); public abstract bool CacheImportFile(string filename, string type, int size, byte[] image,string username); // settings and profiles public abstract List GetAllSettings(); public abstract bool UpdateSetting(string setting,string value,int settingId); public abstract int AddSetting(Profiles p); public abstract bool DeleteProfile(int id); public abstract List GetAllSecurityLevels(); //load user info public abstract MembershipAppUser GetUser(string username, bool userIsOnline); public abstract MembershipAppUser GetUser(object providerUserKey, bool userIsOnline); public abstract int updateUser(MembershipAppUser u); public abstract bool RegisterUser(string UserName, string pwd, string salt, string question, string answer, bool isApproved, DateTime CreateDate, int PwdFormat, Guid UserId); public abstract bool ChangePassword(string username, string password, string passwordAnswer); public abstract int CreateUser(MembershipAppUser u); public abstract bool Delete(string username, bool deleteAllRelatedData); public abstract List GetAllUsers(int PageSize, int PageIndex); public abstract void UpdateFailureCount(string username, string type); public abstract string GetUserByEmail(string email); public abstract bool ResetPassword(string pwd); public abstract bool UnlockUser(string userName); public abstract bool ChangePasswordQuestionAndAnswer(string username, string newPasswordQuestion, string newPasswordAnswer); //team public abstract bool DeleteTeam(int id); public abstract int CreateNewTeam(Team t); public abstract bool UpdateTeam(Team t); public abstract bool AddUserToTeam(int TeamId, string userName, int role); public abstract List GetAllTeams(); public abstract Team GetTeamById(int Id ); public abstract Team GetTeamByName(string name); public abstract List GetTeamMembers(int id); public abstract List GetTeamMembersByManager(string managerName); public abstract List GetTeamsByManagerUserName(string username); public abstract bool RemoveUserFromTeam(int ID, string UserName); //AppUsers public abstract List GetAllAppUsers(); public abstract AppUser GetAppUserByEmail(string email); public abstract AppUser GetUserById(Guid userId); public abstract AppUser GetUserByUserName(string userName); public abstract bool UpdateAppUser(AppUser u,bool islocked); public abstract bool UpdateAppUser(AppUser u); public abstract Guid AddAppUser(AppUser u); //page-control security profiles public abstract ControlSecurity GetPageSecurity(string name); } }