public void SortTasksByCategory_CanSortByCategoryTitle_ReturnTasks()
        {
            // Arrange
            var category = new TaskCategoryModel()
            {
                Id       = Guid.NewGuid().ToString(),
                DateTime = DateTime.Now,
                Title    = "Daily",
            };

            var task = new TaskModel
            {
                Id           = Guid.NewGuid().ToString(),
                Completeness = false,
                DateTime     = DateTime.Now,
                Description  = "Description",
                Name         = "Name",
                Category     = category,
            };

            ITaskService taskService = new TaskService(AutomapperConfig.MapConfig());

            taskService.AddTask(task);


            // Act
            var result = taskService.SortTasksByCategory(task.Category.Title);

            // Assert
            Assert.IsNotNull(result);

            Assert.AreEqual(task.Name, result.FirstOrDefault().Name);

            taskService.DeleteTaskById(task.Id);
        }
        public void UpdateCategory_CanUpdateValidCategory_ReturnCategory()
        {
            // Arrange
            var category = new TaskCategoryModel()
            {
                Id       = "Guid 1",
                DateTime = DateTime.Now,
                Title    = "Daily",
            };

            var updateCategory = new TaskCategoryModel()
            {
                Id       = "Guid 1",
                DateTime = DateTime.Now,
                Title    = "Title",
            };

            ITaskCategoryService repository = new TaskCategoryService(AutomapperConfig.MapConfig());

            // Act
            repository.AddCategory(category);
            var result = repository.UpdateCategory(updateCategory);

            repository.DeleteCategoryById(category.Id);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(updateCategory, result);
        }
        public void SortTasksByCategory_CannotSortByCategoryIfCountEqualsNull_ReturnObjectNotFoundException()
        {
            // Arrange
            var category = new TaskCategoryModel()
            {
                Id       = Guid.NewGuid().ToString(),
                DateTime = DateTime.Now,
                Title    = "Daily",
            };

            var task = new TaskModel
            {
                Id           = Guid.NewGuid().ToString(),
                Completeness = false,
                DateTime     = DateTime.Now,
                Description  = "Description",
                Name         = "Name",
                Category     = category,
            };

            ITaskService taskService = new TaskService(AutomapperConfig.MapConfig());

            // Act
            taskService.SortTasksByCategory(task.Category.Title);
        }
示例#4
0
        public TaskCategoryModel AddCategory(TaskCategoryModel category)
        {
            if (IsCategoryNull(category))
            {
                throw new Exception("Cannot be add empty category.");
            }

            if (IsCategoryPropertiesNull(category))
            {
                throw new Exception("Cannot be add category with empty properties.");
            }

            if (GetCategories().
                Where(c => c.Title.
                      Contains(category.Title)).
                Count() != 0)
            {
                throw new InvalidOperationException($"Category with name {category.Title} already exists.");
            }

            var categoryEntity = _mapper.Map <TaskCategoryEntity>(category);

            _taskCategoryRepository.AddCategory(categoryEntity);

            return(category);
        }
示例#5
0
        public string GetSubcategories(string name)
        {
            List <TaskCategoryModel> categories = _unitOfWork.Tasks.GetTaskCategories();
            TaskCategoryModel        category   = categories.First(c => c.Name == name);
            List <TaskSubcatModel>   subcats    = _unitOfWork.Tasks.GetSubcategories(category.Id);

            return(JsonConvert.SerializeObject(subcats.Select(f => new { f.Id, f.Name }).ToArray()));
        }
示例#6
0
        private bool IsCategoryNull(TaskCategoryModel category)
        {
            if (category is null)
            {
                return(true);
            }

            return(false);
        }
示例#7
0
        private bool IsCategoryPropertiesNull(TaskCategoryModel category)
        {
            if (string.IsNullOrWhiteSpace(category.Title))
            {
                return(true);
            }

            return(false);
        }
        public void AddCategory_CannotAddInvalidCategory_ReturnException()
        {
            // Arrange
            var category = new TaskCategoryModel()
            {
                Id    = " ",
                Title = null,
            };

            ITaskCategoryService repository = new TaskCategoryService(AutomapperConfig.MapConfig());

            // Act
            repository.AddCategory(category);
        }
示例#9
0
        public static TaskCategoryModel copyTaskCategoryToModel(TaskCategory tc)
        {
            if (tc == null)
            {
                return(null);
            }

            TaskCategoryModel newTC = new TaskCategoryModel()
            {
                categoryName = tc.categoryName
            };

            return(newTC);
        }
        public void UpdateCategory_CannotUpdateInvalidCategory_ReturnException()
        {
            // Arrange
            var category = new TaskCategoryModel()
            {
                Id       = null,
                DateTime = DateTime.Now,
                Title    = "     ",
            };

            ITaskCategoryService repository = new TaskCategoryService(AutomapperConfig.MapConfig());

            // Act
            repository.UpdateCategory(category);
        }
        private void UpdateBtn_Click(object sender, EventArgs e)
        {
            TaskCategoryModel newCategory = _bindingSourceCurrentCategory.Current as TaskCategoryModel;
            var oldCategory = _bindingSourceCategories.Current as TaskCategoryModel;

            newCategory.Id = oldCategory.Id;


            if (dataGridView1.CurrentCell.Value == null)
            {
                try
                {
                    _taskCategoryService.AddCategory(newCategory);
                    panel1.Visible = false;
                    MessageBox.Show($"The category \"{newCategory.Title}\" added.");
                }
                catch (InvalidOperationException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                dataGridView1.Visible = true;
            }
            else
            {
                try
                {
                    _taskCategoryService.UpdateCategory(newCategory);
                    panel1.Visible = false;
                    MessageBox.Show($"The category \"{newCategory.Title}\" updated.");
                }
                catch (System.Data.Entity.Core.ObjectNotFoundException ex)
                {
                    MessageBox.Show($"{ex.Message}");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            LoadCategories();
        }
        private void DeleteBtn_Click(object sender, EventArgs e)
        {
            TaskCategoryModel currentCategory = _bindingSourceCategories.Current as TaskCategoryModel;

            try
            {
                _taskCategoryService.DeleteCategoryById(currentCategory.Id);
                _bindingSourceCategories.Remove(currentCategory);
                MessageBox.Show($"The category \"{currentCategory.Title}\" deleted.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            LoadCategories();
        }
示例#13
0
        public TaskCategoryModel UpdateCategory(TaskCategoryModel category)
        {
            if (IsCategoryNull(category))
            {
                throw new Exception("Cannot be update empty category.");
            }

            if (IsCategoryPropertiesNull(category))
            {
                throw new Exception("Cannot be update category with empty properties.");
            }

            var updateCategory = _mapper.Map <TaskCategoryEntity>(category);

            _taskCategoryRepository.UpdateCategory(updateCategory);
            return(category);
        }
        private void SetCurrentCategory()
        {
            if (_bindingSourceCategories.Count > 0)
            {
                var taskCategory = TaskCategoryModel.GetCloneCategory((TaskCategoryModel)_bindingSourceCategories.Current);
                _bindingSourceCurrentCategory.List[0] = taskCategory;

                comboBox1.Items.Clear();
                foreach (TaskModel item in taskCategory.Tasks)
                {
                    comboBox1.Items.Add(item.Name);
                }
            }
            else
            {
                _bindingSourceCurrentCategory.List[0] = new TaskCategoryModel();
            }
            _bindingSourceCurrentCategory.ResetItem(0);
        }