예제 #1
0
        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);
        }
예제 #2
0
        public List <TaskListing> GetTaskMatchAny(SearchMsg searchMsg)
        {
            var tasks        = taskRepo.GetTaskForAnyCriteria(searchMsg);
            var taskListings = mapper.Map <List <TaskListing> >(tasks);

            return(taskListings);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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);
        }
예제 #5
0
        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));
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }