public bool CanApprove(int idTimeSheet, DtoApprover approver) { using (var db = new KadrDataContext()) { //var approver = GetCurrentApproverByLogin(employeeLogin); var timeSheet = db.TimeSheet.FirstOrDefault(f => f.id == idTimeSheet); var timeSheetApprovalStep = GetTimeSheetApproveStep(idTimeSheet) + 1; if (timeSheet == null) { return(false); } var approveDepartment = approver.GetDepartmentApproverNumbers(timeSheet.idDepartment) .FirstOrDefault(f => f.ApproveNumber == timeSheetApprovalStep); return(approveDepartment != null && approveDepartment.ApproveNumber == timeSheetApprovalStep); } }
public bool TimeSheetApproval(int idTimeSheet, DtoApprover employeeLogin, bool result, string comments, string appDominUrl) { using (var db = new KadrDataContext()) { if (!CanApprove(idTimeSheet, employeeLogin)) { return(false); } var approvalStep = GetTimeSheetApproveStep(idTimeSheet); var timeSheet = GetTimeSheet(idTimeSheet, true); var idDepartment = timeSheet.Department.IdDepartment; var departmentName = db.Department.First(f => f.id == idDepartment).DepartmentSmallName; //var approver = GetCurrentApproverByLogin(employeeLogin) // .GetDepartmentApproverNumbers(idDepartment) // .First(w => w.ApproveNumber == approvalStep + 1); var approver = employeeLogin.GetDepartmentApproverNumbers(idDepartment) .First(w => w.ApproveNumber == approvalStep + 1); try { var timeSheetApproval = new TimeSheetApproval { ApprovalDate = DateTime.Now, idTimeSheet = idTimeSheet, idApprover = approver.IdApprover, Result = result, Comment = comments }; db.TimeSheetApproval.InsertOnSubmit(timeSheetApproval); db.SubmitChanges(); Task.Run( () => EmailSending(employeeLogin.EmployeeLogin, idTimeSheet, result, comments, approvalStep, departmentName, appDominUrl)); return(true); } catch (System.Exception e) { var s = e.Message; return(false); } } }