public void AssignActionTask(AssignActionTaskRequest request) { _log.Add(request); try { var action = _actionRepository.GetById(request.ActionId); var user = _userForAuditingRepository.GetById(request.UserId); var employee = _employeeRepository.GetById(request.AssignedTo); Site site = null; if (action.ActionPlan.Site != null) { site = _siteRepository.GetById(action.ActionPlan.Site.Id); } var taskCategory = _taskCategoryRepository.GetActionTaskCategory(); action.AssignedTo = employee; if (!string.IsNullOrEmpty(request.AreaOfNonCompliance)) action.AreaOfNonCompliance = request.AreaOfNonCompliance; if (!string.IsNullOrEmpty(request.ActionRequired)) action.ActionRequired = request.ActionRequired; UpdateActionTask(request, employee, user, taskCategory, action, site); _actionRepository.SaveOrUpdate(action); } catch (Exception ex) { _log.Add(ex); throw; } }
public void When_AssignAction_Task_Then_Calls_Correct_Methods() { //given var request = new AssignActionTaskRequest { CompanyId = 1234L, UserId = Guid.NewGuid(), ActionId = 1L, AssignedTo = Guid.NewGuid(), DueDate = DateTime.Now }; var action = new Action { Id = 1L, Title = "Action1", ActionPlan = new ActionPlan { Id = 1L, Site = new Site { SiteId = 1L } } }; _actionRepository.Setup(x => x.GetById(It.IsAny<long>())).Returns(action); _userForAuditingRepository.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(new UserForAuditing{Id = Guid.NewGuid()}); _employeeRepository.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(new Employee { Id = Guid.NewGuid() }); _siteRepository.Setup(x => x.GetById(It.IsAny<long>())).Returns(new Site {Id = 1L}); _taskCategoryRepository.Setup(x => x.GetActionTaskCategory()).Returns(new TaskCategory {Id = 8}); var target = GetTarget(); //when target.AssignActionTask(request); //then _actionRepository.Verify(x => x.GetById(It.Is<long>(y => y == request.ActionId))); _userForAuditingRepository.Verify(x => x.GetById(It.Is<Guid>(y => y == request.UserId))); _employeeRepository.Verify(x=> x.GetById(It.Is<Guid>(y=>y == request.AssignedTo))); _siteRepository.Verify(x=>x.GetById(It.IsAny<long>())); _taskCategoryRepository.Verify(x => x.GetActionTaskCategory()); }
public virtual void Execute() { bool sendEmail = _sendTaskNotification; var task = _actionService.GetByIdAndCompanyId(_actionId, _companyId).ActionTasks.FirstOrDefault(); if (task != null) { sendEmail = _assignedTo.HasValue && _assignedTo.Value != task.TaskAssignedTo.Id && _sendTaskNotification; } var dueDate = (DateTime?) null; DateTime tempDate; if (DateTime.TryParse(_dueDate, out tempDate)) { dueDate = tempDate; } var request = new AssignActionTaskRequest { CompanyId = _companyId, UserId = _userId, ActionId = _actionId, AssignedTo = _assignedTo.HasValue ? _assignedTo.Value : Guid.Empty, DueDate = dueDate, SendTaskNotification = _sendTaskNotification, SendTaskCompletedNotification = _sendTaskCompletedNotification, SendTaskOverdueNotification = _sendTaskOverdueNotification, SendTaskDueTomorrowNotification = _sendTaskDueTomorrowNotification, Documents = _createDocumentRequests, AreaOfNonCompliance = _areaOfNonCompliance, ActionRequired = _actionRequired }; using (var session = _businessSafeSessionManager.Session) { _actionService.AssignActionTask(request); _businessSafeSessionManager.CloseSession(); } if (sendEmail) { using (var session = _businessSafeSessionManager.Session) { _actionService.SendTaskAssignedEmail(request.ActionId, request.CompanyId); _businessSafeSessionManager.CloseSession(); } } }
public void When_AssignAction_Task_Then_Saved_Action_With_Task() { //given var request = new AssignActionTaskRequest { CompanyId = 1234L, UserId = Guid.NewGuid(), ActionId = 1L, AssignedTo = Guid.NewGuid(), DueDate = DateTime.Now }; var action = new Action { Id = 1L, ActionPlan = new ActionPlan { Id = 1L, Site = new Site { SiteId = 1L } } }; _actionRepository.Setup(x => x.GetById(It.IsAny<long>())).Returns(action); var target = GetTarget(); //when target.AssignActionTask(request); //then _actionRepository.Verify(x => x.SaveOrUpdate(It.Is<Action>(a => a.Id == request.ActionId))); }
private void UpdateActionTask(AssignActionTaskRequest request, Employee employee, UserForAuditing user, TaskCategory taskCategory, Action action, Site site) { var createDocumentParameterObjects = request.Documents == null ? null : _documentParameterHelper.GetCreateDocumentParameters(request.Documents, request.CompanyId); if (action.ActionTasks.Any()) { var task = action.ActionTasks.FirstOrDefault(); task.Update(action.AreaOfNonCompliance, action.ActionRequired, request.DueDate, TaskStatus.Outstanding, employee, user, createDocumentParameterObjects, taskCategory, (int) TaskReoccurringType.None, null, request.SendTaskNotification, request.SendTaskCompletedNotification, request.SendTaskOverdueNotification, request.SendTaskDueTomorrowNotification, task.TaskGuid, site ); } else { var task = new ActionTask(); task = ActionTask.Create( action.Reference, action.AreaOfNonCompliance, action.ActionRequired, request.DueDate, TaskStatus.Outstanding, employee, user, createDocumentParameterObjects, taskCategory, (int) TaskReoccurringType.None, null, request.SendTaskNotification, request.SendTaskCompletedNotification, request.SendTaskOverdueNotification, request.SendTaskDueTomorrowNotification, Guid.NewGuid(), site, action ); } }