/// <summary> /// Function to retrieve index page. /// </summary> /// <returns>Index page</returns> public ActionResult Index() { this.AddBreadcrumbItem(Resources.Timesheet, Url.TimesheetAction()); var model = new TimesheetPresenter(); model.WorkDetail = new WorkDetail(); model.WorkDetail.Project = new Project(); model.WorkDetail.Date = this.timesheetService.RetrieveApplicableDate(true, DateTimeHelper.RetrieveCurrentDateTime(), SessionData.Instance.UserInfo.Developer.DeveloperID); var clients = this.lookupService.RetrieveClients(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID); var projects = this.lookupService.RetrieveProjects(null, null, false, null, SessionData.Instance.UserInfo.Developer.DeveloperID); model.SortedListItem = this.timesheetService.OrderClientsAndProjects(clients, projects, SessionData.Instance.UserInfo.Developer.DeveloperID, model.WorkDetail.Date); model.AssignClients(clients.Sort()); model.AssignParentProjects(projects.Sort()); model.Projects.ForEach(p => { p.ProjectName = p.ProjectFullName; }); model.AssignWorkCategories(this.lookupService.RetrieveWorkCategories(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); model.AssignWorkDetailList(this.timesheetService.RetrieveList(model.WorkDetail.Date, SessionData.Instance.UserInfo.Developer.DeveloperID, SessionData.Instance.UserInfo.Developer.DeveloperID)); model.TotalTaskHour = model.WorkDetails.Sum(w => w.Hours); model.LastWorkDetail = this.timesheetService.RetrieveLastEntry(SessionData.Instance.UserInfo.Developer.DeveloperID); return this.View(model); }
/// <summary> /// Gets the feature. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="projectId">The project identifier.</param> /// <returns>feature list</returns> public ActionResult GetFeature(TimesheetPresenter presenter, string projectId) { if (presenter != null) { presenter.AssignFeatures(this.lookupService.RetrieveProjectFeatures(Convert.ToInt32(projectId, CultureInfo.CurrentCulture), SessionData.Instance.UserInfo.Developer.DeveloperID)); return this.Json(presenter.Features); } return this.Json(string.Empty); }
/// <summary> /// Gets the client identifier. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="projectId">The project identifier.</param> /// <returns>client id</returns> public ActionResult GetClientId(TimesheetPresenter presenter, string projectId) { if (presenter == null || presenter.Projects == null || string.IsNullOrEmpty(projectId)) { return this.Json(string.Empty); } if (Convert.ToInt32(projectId, CultureInfo.CurrentCulture) == DefaultId) { return this.Json(string.Empty); } var projects = presenter.Projects.FirstOrDefault(project => project.ProjectID == Convert.ToInt32(projectId, CultureInfo.CurrentCulture)); if (projects != null) { return this.Json(projects.ClientID); } return this.Json(string.Empty); }
/// <summary> /// Works the detail by identifier. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="clientId">The client identifier.</param> /// <returns>return project list</returns> public ActionResult GetProjectList(TimesheetPresenter presenter, string clientId) { if (presenter == null || presenter.Projects == null || string.IsNullOrEmpty(clientId)) { return this.Json(string.Empty); } if (Convert.ToInt32(clientId, CultureInfo.CurrentCulture) == DefaultId) { return this.Json(presenter.Projects); } var projects = presenter.Projects.Where(project => project.ClientID == Convert.ToInt32(clientId, CultureInfo.CurrentCulture)).Select(p => { p.ProjectName = p.ProjectFullName; return p; }).ToList(); if (projects.Count > 0) { return this.Json(projects); } return this.Json(string.Empty); }
/// <summary> /// Retrieves the work detail by identifier. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="workDetailId">The work detail identifier.</param> /// <returns>work detail</returns> public ActionResult WorkDetailById(TimesheetPresenter presenter, string workDetailId) { if (presenter != null) { presenter.WorkDetail = this.timesheetService.RetrieveById(Convert.ToInt32(workDetailId, CultureInfo.CurrentCulture)); presenter.WorkingDate = presenter.WorkDetail.Date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); return this.Json(presenter); } return this.Json(string.Empty); }
/// <summary> /// Retrieves the work detail list. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="selectedDate">The selected date.</param> /// <returns>work detail list</returns> public ActionResult WorkDetails(TimesheetPresenter presenter, string selectedDate) { if (presenter != null) { if (SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null) { presenter.AssignWorkDetailList(this.timesheetService.RetrieveList(Convert.ToDateTime(selectedDate, CultureInfo.CurrentCulture), SessionData.Instance.UserInfo.Developer.DeveloperID, SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.TotalTaskHour = presenter.WorkDetails.Sum(w => w.Hours); } } return this.PartialView(WorkDetailsPartialView, presenter); }
/// <summary> /// Deletes the specified presenter. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="workDetailId">The work detail identifier.</param> /// <returns>void list</returns> public ActionResult Delete(TimesheetPresenter presenter, string workDetailId) { if (presenter != null) { this.timesheetService.Delete(Convert.ToInt32(workDetailId, CultureInfo.CurrentCulture)); } return this.Json(string.Empty); }
/// <summary> /// Inserts the or update. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="workDetailId">The work detail identifier.</param> /// <returns>work detail</returns> public ActionResult InsertOrUpdate(TimesheetPresenter presenter, string workDetailId) { if (presenter != null && presenter.WorkDetail != null) { if (SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null) { presenter.WorkDetail.DeveloperID = SessionData.Instance.UserInfo.Developer.DeveloperID; } if (presenter.WorkDetail.FeatureID == DefaultId) { presenter.WorkDetail.FeatureID = null; } presenter.WorkDetail.WorkDetailID = Convert.ToInt32(workDetailId, CultureInfo.CurrentCulture); presenter.AssignWorkDetailList(this.timesheetService.RetrieveList(Convert.ToDateTime(presenter.WorkDetail.Date, CultureInfo.CurrentCulture), SessionData.Instance.UserInfo.Developer.DeveloperID, SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.TotalTaskHour = presenter.WorkDetails.Sum(w => w.Hours); presenter.TotalTaskHour = presenter.TotalTaskHour + presenter.WorkDetail.HoursReported; if (presenter.TotalTaskHour <= 24) { this.timesheetService.InsertOrUpdate(presenter.WorkDetail, ApplicationType.Website); return this.Json(presenter); } } return this.Json(presenter); }