public void GetTaskForAnyCriteriaTest(int taskId, int parentTaskId, int priority, string start, string end, int status) { //common setup var mockDbsetTask = new Mock <DbSet <Tasks> >(); var mockDbsetParTask = new Mock <DbSet <ParentTask> >(); var taskList = new List <Tasks> { (new Tasks { EndDate = (!string.IsNullOrWhiteSpace(end))?DateTime.Parse(end):DateTime.MinValue, StartDate = (!string.IsNullOrWhiteSpace(start))?DateTime.Parse(start):DateTime.MinValue, ParentTaskId = parentTaskId, Priortiy = priority, Status = status, TaskId = taskId, TaskDeatails = "Test task", ParentTask = new ParentTask { Parent_ID = 1, Parent_Task = taskId } }) }.AsQueryable(); var parTaskList = new List <ParentTask> { new ParentTask { Parent_ID = 1, Parent_Task = taskId } }.AsQueryable <ParentTask>(); mockDbsetTask.As <IQueryable <Tasks> >().Setup(m => m.Provider).Returns(taskList.Provider); mockDbsetTask.As <IQueryable <Tasks> >().Setup(m => m.Expression).Returns(taskList.Expression); mockDbsetTask.As <IQueryable <Tasks> >().Setup(m => m.ElementType).Returns(taskList.ElementType); mockDbsetTask.As <IQueryable <Tasks> >().Setup(m => m.GetEnumerator()).Returns(taskList.GetEnumerator()); mockDbsetParTask.As <IQueryable <ParentTask> >().Setup(m => m.Provider).Returns(parTaskList.Provider); mockDbsetParTask.As <IQueryable <ParentTask> >().Setup(m => m.Expression).Returns(parTaskList.Expression); mockDbsetParTask.As <IQueryable <ParentTask> >().Setup(m => m.ElementType).Returns(parTaskList.ElementType); mockDbsetParTask.As <IQueryable <ParentTask> >().Setup(m => m.GetEnumerator()).Returns(parTaskList.GetEnumerator()); DbContextOptions <TaskContext> contextOption = new DbContextOptions <TaskContext>(); var mockTaskContext = new Mock <TaskContext>(contextOption); mockTaskContext.SetupGet(ctx => ctx.Tasks).Returns(mockDbsetTask.Object); mockTaskContext.SetupGet(ctx => ctx.ParentTasks).Returns(mockDbsetParTask.Object); mockTaskContext.SetupSet(ctx => ctx.Tasks = mockDbsetTask.Object); mockTaskContext.SetupSet(ctx => ctx.ParentTasks = mockDbsetParTask.Object); var searchMessage = new SearchMsg { FromDate = (!string.IsNullOrWhiteSpace(start)) ? DateTime.Parse(start) : DateTime.MinValue, ToDate = (!string.IsNullOrWhiteSpace(end)) ? DateTime.Parse(end) : DateTime.MinValue, ParentTaskId = parentTaskId, PriorityFrom = priority, TaskId = taskId }; //common setup ends var repoLogger = new LoggerFactory().CreateLogger <TaskRepo>(); var taskRepo = new TaskRepo(mockTaskContext.Object, repoLogger); var result = taskRepo.GetTaskForAnyCriteria(searchMessage); Assert.Single(result); }
public List <TaskListing> GetTaskMatchAny(SearchMsg searchMsg) { var tasks = taskRepo.GetTaskForAnyCriteria(searchMsg); var taskListings = mapper.Map <List <TaskListing> >(tasks); return(taskListings); }
public List <Tasks> GetTaskForAnyCriteria(SearchMsg searchMsg) { var criteriaPredicate = PredicateBuilder.New <Tasks>(false); if (searchMsg.TaskId > 0) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.TaskId == searchMsg.TaskId); } if (!string.IsNullOrWhiteSpace(searchMsg.TaskDescription)) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.TaskDeatails.CompareTo(searchMsg.TaskDescription) == 0); } if (searchMsg.ParentTaskId > 0) { var parentTask = taskContext.ParentTasks.AsNoTracking().FirstOrDefault( partask => partask.Parent_Task == searchMsg.ParentTaskId); var parentId = (parentTask != default) ? parentTask.Parent_ID : 0; criteriaPredicate = criteriaPredicate.Or(tsk => tsk.ParentTaskId == parentId); } if (searchMsg.PriorityFrom > 0) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.Priortiy >= searchMsg.PriorityFrom); } if (searchMsg.PriorityTo > 0) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.Priortiy <= searchMsg.PriorityTo); } if (searchMsg.FromDate > DateTime.MinValue) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.StartDate == searchMsg.FromDate); } if (searchMsg.ToDate > DateTime.MinValue) { criteriaPredicate = criteriaPredicate.Or(tsk => tsk.EndDate == searchMsg.ToDate); } var anyTaskQuery = from taskEntity in taskContext.Tasks.Where(criteriaPredicate.Compile()) select taskEntity; var tasks = anyTaskQuery.ToList(); tasks.ForEach(task => { if (task.ParentTaskId > 0) { task.ParentTask = taskContext.ParentTasks.Find(task.ParentTaskId); } }); return(tasks); // return anyTaskQuery.ToList(); }
public void GetAnyTaskTest(int taskId, int parentTaskId, int priority, string strStartDate, string strEndDate) { var startDate = DateTime.Parse(strStartDate); var endDate = DateTime.Parse(strEndDate); var tasks = new List <Tasks> { new Tasks { EndDate = endDate, ParentTaskId = parentTaskId, Priortiy = priority, StartDate = startDate, Status = 1, TaskDeatails = "Task1", TaskId = taskId, ParentTask = new ParentTask { ParentTaskDescription = "ParentTask", Parent_ID = 1, Parent_Task = 1, } } }; var taskListings = new List <TaskListing> { new TaskListing { EndDate = endDate, ParentDescription = "ParentTask", ParentTaskId = 1, Priority = priority, StartDate = startDate, TaskDescription = "Task1", TaskId = taskId } }; var searchMsg = new SearchMsg { TaskId = taskId, FromDate = startDate, ToDate = endDate, ParentTaskId = parentTaskId, PriorityFrom = priority }; var mockMapper = new Mock <IMapper>(); mockMapper.Setup(map => map.Map <List <TaskListing> >(It.IsAny <List <Tasks> >())) .Returns(taskListings); var mockTaskRepo = new Mock <ITaskRepo>(); mockTaskRepo.Setup(repo => repo.GetTaskForAllCriteria(It.IsAny <SearchMsg>())).Returns(tasks); var taskService = new TasksService(mockMapper.Object, mockTaskRepo.Object, logger); var result = taskService.GetTaskMatchAny(searchMsg); Assert.Single(result); }
public async Task <bool> EndTask(int taskId) { var searchMsg = new SearchMsg { TaskId = taskId }; var tasks = taskRepo.GetTaskForAnyCriteria(searchMsg)?.FirstOrDefault(); if (tasks == default) { throw new ApplicationException("Task Not found"); } tasks.Status = -1; return(await taskRepo.EditTask(tasks)); }
public void GetterSetter() { SearchMsg searchMsg = new SearchMsg { FromDate = DateTime.Today, ToDate = DateTime.Today.AddDays(1), ParentTaskId = 1, PriorityFrom = 1, PriorityTo = 10, TaskDescription = "task", TaskId = 1 }; Assert.Equal(DateTime.Today, searchMsg.FromDate); Assert.Equal(DateTime.Today.AddDays(1), searchMsg.ToDate); Assert.Equal(1, searchMsg.ParentTaskId); Assert.Equal(1, searchMsg.PriorityFrom); Assert.Equal(10, searchMsg.PriorityTo); Assert.Equal("task", searchMsg.TaskDescription); Assert.Equal(1, searchMsg.TaskId); }
public ActionResult <List <TaskListing> > GetTaskAllCriteria(int tId, string desc, int pId, int prtyFrm, int prtyTo, string sDt, string eDt) { var searchMsg = new SearchMsg { TaskId = tId, FromDate = (string.IsNullOrWhiteSpace(sDt)) ? DateTime.MinValue : DateTime.Parse(sDt), ToDate = (string.IsNullOrWhiteSpace(eDt)) ? DateTime.MinValue : DateTime.Parse(eDt), ParentTaskId = pId, PriorityFrom = prtyFrm, PriorityTo = prtyTo }; var taskListings = taskService.GetTaskMatchAll(searchMsg); if (taskListings == default) { return(NotFound("No task found")); } else { return(Ok(taskListings)); } }
public void GetTaskAnyCriteria(int taskId, int parentTaskId, int priority, string strStartDate, string strEndDate) { var startDate = DateTime.Parse(strStartDate); var endDate = DateTime.Parse(strEndDate); var taskListings = new List <TaskListing> { new TaskListing { EndDate = endDate, ParentDescription = "ParentTask", ParentTaskId = 1, Priority = priority, StartDate = startDate, TaskDescription = "Task1", TaskId = taskId } }; var searchMsg = new SearchMsg { TaskId = taskId, FromDate = startDate, ToDate = endDate, ParentTaskId = parentTaskId, PriorityFrom = priority }; var mockService = new Mock <ITaskService>(); mockService.Setup(service => service.GetTaskMatchAny(It.IsAny <SearchMsg>())) .Returns(taskListings); var controller = new TaskController(mockService.Object, logger); var actionResult = controller.GetTaskAnyCriteria(taskId, "", parentTaskId, priority, priority, strEndDate, strEndDate).Result as OkObjectResult; Assert.NotNull(actionResult); Assert.Equal(200, actionResult.StatusCode); var results = actionResult.Value as List <TaskListing>; Assert.NotNull(results); Assert.Single(results); }