public bool Exists(Guid id) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var timeEntry = session.QueryOver <TimeEntry>().Where(te => te.Guid == id).List(); return(timeEntry.Any()); }
/// <summary> /// Checks if the task exists by the given guid /// </summary> public bool ExistsByGuid(Guid guid) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var task = session.QueryOver <Task>().Where(x => x.Guid == guid).SingleOrDefault(); return(task != null); }
public TimeEntry GetByGuid(Guid id) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var timeEntry = session.QueryOver <TimeEntry>().Where(te => te.Guid == id); return(timeEntry.SingleOrDefault()); }
public List <Task> GetByChangeDate(DateTime?startDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); Project project = null; Task task = null; Company company = null; User pUser = null; var queryOver = session.QueryOver(() => task) .Left.JoinAlias(() => task.CreatedBy, () => pUser) .Left.JoinAlias(() => task.Project, () => project) .Left.JoinAlias(() => project.Company, () => company); queryOver = queryOver.Where(x => !x.Inactive && !project.Inactive && !company.Inactive); if (startDate.HasValue) { queryOver = queryOver .And(task1 => task1.CreateDate >= startDate || (task1.ChangeDate != null && task1.ChangeDate >= startDate)); } return(queryOver.List <Task>().ToList()); }
/// <summary> /// Gets a list of customers, Changed after the given date /// </summary> /// <param name="startDate">The start date.</param> /// <returns></returns> public IEnumerable <Company> GetByChangeDate(DateTime startDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var customerList = session.QueryOver <Company>() .Where(customers => (customers.CreateDate >= startDate || (customers.ChangeDate != null && customers.ChangeDate >= startDate)) && customers.Inactive == false); return(customerList.List()); }
/// <summary> /// Gets the task by GUID. /// </summary> public Task GetByGuid(Guid guid) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var task = session.QueryOver <Task>().Where(tasks => tasks.Guid == guid); var returnTask = task.SingleOrDefault(); if (returnTask == null) { throw new NotFoundByIDException("Task not found by Guid: " + guid.ToString()); } return(returnTask); }
/// <summary> /// Gets the user by id /// </summary> /// <param name="userID">The user ID.</param> /// <returns></returns> public User GetByUserID(int userID) { ISession session = OpenSession ?? ActiveSessionManager.GetActiveSession(); User user = session.Get <User>(userID); if (user == null) { throw new UserNotFoundException("The user was not found in the User table"); } return(user); }
public IEnumerable <TimeEntry> GetTimeEntriesByPeriodAndUser(int userId, DateTime startDate, DateTime endDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); //include the whole enddate var realEnddate = endDate.Date.AddDays(1); var timeEntries = session.QueryOver <TimeEntry>() .Where(te => te.StartTime >= startDate.Date && te.StartTime < realEnddate && te.User.UserID == userId); return(timeEntries.List()); }
/// <summary> /// Gets the current DB version. /// </summary> /// <returns></returns> public DBVersion GetCurrentVersion() { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var version = session.QueryOver <DBVersion>().Select(versions => versions) .OrderBy(sort => sort.CreateDate).Asc.List(); if (!version.Any()) { throw new VersionException("No version entries found in database. Database must have a valid version"); } return(version.Last <DBVersion>()); }
/// <summary> /// Gets the user by the specified username /// </summary> /// <param name="userName">Name of the user.</param> /// <returns>The found user</returns> /// <exception cref="UserNotFoundException"></exception> public User GetByUserName(string userName) { ISession session = OpenSession ?? ActiveSessionManager.GetActiveSession(); var user = session.QueryOver <User>().Where(users => users.UserName == userName).List(); if (!user.Any()) { throw new UserNotFoundException("The user " + userName + " was not found in the User table"); } return(user.Single()); }
public double GetBillableHours(DateTime startDate, DateTime endDate, int userId) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); Task tTask = null; var hours = session.QueryOver <TimeEntry>() .Left.JoinAlias(t => t.Task, () => tTask) .Where(te => te.StartTime >= startDate && te.StartTime < endDate.Date.AddDays(1) && te.User.UserID == userId && te.Billable && tTask.TimeRegistrationTypeId != (int)TimeRegistrationTypeEnum.Projection) .Select(Projections.Sum <TimeEntry>(x => x.BillableTime)) .SingleOrDefault <double>(); return(hours); }
/// <summary> /// Gets projects changed after a given date /// </summary> public IEnumerable <Project> GetByChangeDate(DateTime startDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); User pUser = null; Company company = null; var query = session.QueryOver <Project>() .Left.JoinAlias(p => p.CreatedBy, () => pUser) .Left.JoinAlias(p => p.Company, () => company) .Where(proj => proj.CreateDate >= startDate || (proj.ChangeDate != null && proj.ChangeDate >= startDate)); var project = query.And(p => !p.Inactive && !company.Inactive); return(project.List()); }
public List <Task> GetByIds(List <int> taskIds) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); Project project = null; Task task = null; Company company = null; User pUser = null; var queryOver = session.QueryOver(() => task) .Left.JoinAlias(() => task.CreatedBy, () => pUser) .Left.JoinAlias(() => task.Project, () => project) .Left.JoinAlias(() => project.Company, () => company); queryOver = queryOver.WhereRestrictionOn(x => x.TaskID).IsIn(taskIds); return(queryOver.List <Task>().ToList()); }
public Client FindClientByCustomerId(string customerId) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); if (!session.Connection.ConnectionString.Contains("base")) { int i = 0; } var client = session.QueryOver <Client>() .Where(clients => clients.CustomerId == customerId).List(); if (!client.Any()) { throw new ClientNotFoundException(string.Format("Customer '{0}' not found", customerId)); } return(client.Single()); }
/// <summary> /// Returns all timeentries for a given period, disregarding if relating items are inactive /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public IEnumerable <TimeEntry> GetAllTimeEntriesByPeriod(DateTime startDate, DateTime endDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); Task pTask = null; Project pProject = null; Company pCompany = null; User pUser = null; var timeEntries = session.QueryOver <TimeEntry>() .Left.JoinAlias(t => t.Task, () => pTask) .Left.JoinAlias(t => pTask.Project, () => pProject) .Left.JoinAlias(t => pProject.Company, () => pCompany) .Left.JoinAlias(t => t.User, () => pUser) .Where(te => te.StartTime >= startDate.Date && te.StartTime <= endDate); return(timeEntries.List()); }
public double GetEarningsByUser(DateTime startDate, DateTime endDate, int userId) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); //User pUser = null; var billableTimeSum = session.QueryOver <TimeEntry>() .Where(te => te.StartTime >= startDate && te.StartTime < endDate.Date.AddDays(1) && te.User.UserID == userId && te.Billable) .Select(Projections.Sum <TimeEntry>(x => x.BillableTime)) .SingleOrDefault <double>(); var priceSum = session.QueryOver <TimeEntry>() .Where(te => te.StartTime >= startDate && te.StartTime < endDate.Date.AddDays(1) && te.User.UserID == userId && te.Billable) .Select(Projections.Sum <TimeEntry>(x => x.Price)) .SingleOrDefault <double>(); return(billableTimeSum * priceSum); }
public IEnumerable <TimeEntry> GetInactiveTimeEntriesByPeriodAndUser(int userId, DateTime startDate, DateTime endDate) { var session = OpenSession ?? ActiveSessionManager.GetActiveSession(); Task pTask = null; Project pProject = null; Company pCompany = null; //include the whole enddate var realEnddate = endDate.Date.AddDays(1); var inactiveTimeEntries = session.QueryOver <TimeEntry>() .Left.JoinAlias(t => t.Task, () => pTask) .Left.JoinAlias(t => pTask.Project, () => pProject) .Left.JoinAlias(t => pProject.Company, () => pCompany) .Where(te => te.StartTime >= startDate.Date && te.StartTime < realEnddate && te.User.UserID == userId && (pTask.Inactive || pProject.Inactive || pCompany.Inactive)); return(inactiveTimeEntries.List()); }