public async Task <PartialViewResult> EditTimeReport(int id) { TimeReportEntity reportEntity = await unitOfWork.TimeReportRepository.GetByID(id); var model = new ManageTimeReportModel { Id = reportEntity.TimeReportId, SpentHours = new ReportSpentHours { Effort = reportEntity.Effort, Overtime = reportEntity.Overtime }, TimeInterval = new TimeReportInterval { StartDate = reportEntity.StartDate, EndDate = reportEntity.EndDate }, ProjectId = reportEntity.Projects?.ProjectId ?? 1000, TaskId = reportEntity.TaskId, //Tasks = unitOfWork.TaskRepository.GetAll(), //todo: проверить чтобы таски соответствовали проекту!!!! Tasks = allTasks.Select(taskEntity => new TaskEntity//задачи из словаря { TaskId = taskEntity.Key, Title = taskEntity.Value, }), Projects = await unitOfWork.ProjectRepository.GetAll(), Description = reportEntity.Description }; return(this.PartialView("EditableTimeReportRow", model)); }
public RedirectToRouteResult Save(ManageTimeReportModel postModel) { TimeReportEntity newReport = new TimeReportEntity { Id = postModel.Id, Effort = postModel.SpentHours.Effort, Overtime = postModel.SpentHours.Overtime, StartDate = postModel.TimeInterval.StartDate, EndDate = postModel.TimeInterval.EndDate, Status = ReportStatus.Open, Task = tasksRepository.GetById(postModel.TaskId), //todo: if PostModel.ProjectId != Task.Project.Id => Exception - таски должны соответствовать проекту Description = postModel.Description }; var report = reportsRepository.GetById(postModel.Id); if (report == null) { this.reportsRepository.Add(newReport); } else { reportsRepository.Update(newReport); } return(RedirectToAction("Index")); }
public PartialViewResult CreateTimeReport() { //TODO : Таси соотв проекту IEnumerable <ProjectEntity> projectEntities = this.projectsRepository.GetAll(); IEnumerable <TaskEntity> tasksEntities = this.tasksRepository.GetAll(); var createModel = new ManageTimeReportModel { Tasks = tasksEntities, Projects = projectEntities }; return(this.PartialView("EditableTimeReportRow", createModel)); }
public async Task <RedirectToRouteResult> Save(ManageTimeReportModel postModel) { postModel.Projects = await unitOfWork.ProjectRepository.GetAll(); var accounts = await unitOfWork.AccountRepository.GetAll(); int accountId = accounts.FirstOrDefault(m => m.Login == User.Identity.Name).AccountId; TimeReportEntity newReport = new TimeReportEntity { TimeReportId = postModel.Id, ProjectId = postModel.ProjectId, AccountId = accountId, Effort = postModel.SpentHours.Effort, Overtime = postModel.SpentHours.Overtime, StartDate = postModel.TimeInterval.StartDate, EndDate = postModel.TimeInterval.EndDate, Status = ReportStatus.Open, TaskId = postModel.TaskId, //todo: if PostModel.ProjectId != Task.Project.Id => Exception - таски должны соответствовать проекту Description = postModel.Description }; var report = await unitOfWork.TimeReportRepository.GetByID(postModel.Id); //try //{ if (report == null) { await this.reportsService.Insert(newReport); } else { await reportsService.Update(newReport); } //} //catch (Exception e) //{ // return new HttpStatusCodeResult(HttpStatusCode.BadRequest, e.Message); //} //return new HttpStatusCodeResult(HttpStatusCode.OK); return(RedirectToAction("Index")); }
public async Task <PartialViewResult> CreateTimeReport() { //TODO : Таски соответствуют проекту //IEnumerable<TaskEntity> tasksEntities = unitOfWork.TaskRepository.GetAll();//задачи из базы данных IEnumerable <TimeReportEntity> allTimeReport = await unitOfWork.TimeReportRepository.GetAll(); IEnumerable <ProjectEntity> projectEntities = await unitOfWork.ProjectRepository.GetAll(); IEnumerable <TaskEntity> tasksEntities = allTasks.Select(taskEntity => new TaskEntity//задачи из словаря { TaskId = taskEntity.Key, Title = taskEntity.Value, }); var createModel = new ManageTimeReportModel { Tasks = tasksEntities, Projects = projectEntities, Id = allTimeReport.Last().TimeReportId + 1 }; return(this.PartialView("EditableTimeReportRow", createModel)); }
public PartialViewResult EditTimeReport(int id) { TimeReportEntity reportEntity = this.reportsRepository.GetById(id); var model = new ManageTimeReportModel { Id = reportEntity.Id, SpentHours = new ReportSpentHours { Effort = reportEntity.Effort, Overtime = reportEntity.Overtime }, TimeInterval = new TimeReportInterval { StartDate = reportEntity.StartDate, EndDate = reportEntity.EndDate }, ProjectId = reportEntity.Task.Project.Id, TaskId = reportEntity.Task.Id, Tasks = tasksRepository.GetAll(), //todo: проверить чтобы таски соответствовали проекту!!!! Description = reportEntity.Description }; return(this.PartialView("EditableTimeReportRow", model)); }