public Timesheet RejectTimesheet(int id, int employeeId) { var timesheet = unitOfWork.TimesheetRepository.GetById(id); var audit = new entity.Audit(); audit.Timesheet = timesheet; audit.Operator = unitOfWork.EmployeeRepository.GetById(employeeId); var previous = timesheet.AuditData.OrderByDescending(t => t.Change).FirstOrDefault(); if (previous != null) { audit.PreviousStatus = previous.NewStatus; } else { audit.PreviousStatus = audit.PreviousStatus = entity.TimesheetStatus.Submitted; } audit.NewStatus = entity.TimesheetStatus.Rejected; audit.Change = DateTime.Now; timesheet.Status = entity.TimesheetStatus.Rejected; unitOfWork.AuditRepository.Add(audit); unitOfWork.Commit(); return(mapper.Map <Timesheet>(timesheet)); }
public Timesheet CreateTimesheet(CreateTimesheet timesheet) { entity.Timesheet timesheetEntity = mapper.Map <entity.Timesheet>(timesheet); timesheetEntity.Applicant = unitOfWork.EmployeeRepository.GetById(timesheet.UserId); timesheetEntity.Entries.Clear(); foreach (var item in timesheet.Entries) { var entryEntity = mapper.Map <entity.Entry>(item); entryEntity.Project = unitOfWork.ProjectRepository.GetById(item.ProjectId); entryEntity.Task = unitOfWork.TaskRepository.GetById(item.TaskId); timesheetEntity.Entries.Add(entryEntity); } entity.Audit submission = new entity.Audit(); submission.NewStatus = entity.TimesheetStatus.Submitted; submission.Operator = timesheetEntity.Applicant; submission.Timesheet = timesheetEntity; submission.Change = DateTime.Now; timesheetEntity.AuditData = new List <entity.Audit>(); timesheetEntity.AuditData.Add(submission); unitOfWork.TimesheetRepository.Add(timesheetEntity); unitOfWork.Commit(); return(mapper.Map <Timesheet>(timesheetEntity)); }