Exemple #1
0
        public IActionResult Create(TaskFullViewModel model)
        {
            this.tasksService.CreateTask(
                model.Title,
                model.Description,
                model.DueDate,
                model.Participants,
                model.AffectedSectors);

            return(this.RedirectToAction("/"));
        }
        public void TaskForm_SaveUserModelIsInvalid_ReturnsTaskFormView()
        {
            // Arrange
            TasksController controller = new TasksController(_tasksRepository.Object, _statidataRepository.Object, _usersRepository.Object);
            var             context    = new Mock <HttpContextBase>();

            controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
            TaskFullViewModel EmptyTask    = new TaskFullViewModel();
            TaskFormViewModel InvalidModel = new TaskFormViewModel()
            {
                Task = EmptyTask, IsExisting = false
            };

            // Act
            ViewResult result = controller.TaskForm(InvalidModel) as ViewResult;
            var        model  = (TaskFormViewModel)result.ViewData.Model;

            // Assert
            Assert.AreEqual(EmptyTask, model.Task);
        }
        public void TaskForm_SaveUserModelIsValid_ReturnsTasksIndexView()
        {
            // Arrange
            TasksController controller = new TasksController(_tasksRepository.Object, _statidataRepository.Object, _usersRepository.Object);
            var             context    = new Mock <HttpContextBase>();

            controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
            var uniquestring             = DateTime.Now.ToBinary().ToString().Substring(3, 10);
            TaskFullViewModel ProperTask = new TaskFullViewModel()
            {
                Name = uniquestring, Description = uniquestring, CardColor = "#000", FontColor = "#000", Progres = 0, Category = 1, Status = 1, Rank = 1
            };
            TaskFormViewModel ValidModel = new TaskFormViewModel()
            {
                Task = ProperTask, IsExisting = false
            };

            // Act
            var model = (RedirectToRouteResult)controller.TaskForm(ValidModel);

            // Assert
            Assert.AreEqual("Index", model.RouteValues["action"]);
        }
        public void Save(bool IsExisting, TaskFullViewModel Task, string UserId)
        {
            if (IsExisting)
            {
                var dataModel        = _db.TASK.Where(x => x.ID == Task.Id && x.USER_ID == UserId).First();
                var previousStatus   = dataModel.STATUS_ID;
                var previousDeadline = dataModel.DEADLINE_DATE;

                dataModel.ID             = Task.Id;
                dataModel.NAME           = Task.Name;
                dataModel.DESCRIPTION    = Task.Description;
                dataModel.CARD_COLOR     = Task.CardColor;
                dataModel.FONT_COLOR     = Task.FontColor;
                dataModel.DEADLINE_DATE  = Task.DeadlineDate;
                dataModel.LAST_EDIT_DATE = DateTime.Now;
                if (Task.Status == 4)
                {
                    dataModel.COMPLETION_DATE = DateTime.Now;
                }
                else
                {
                    dataModel.COMPLETION_DATE = null;
                }
                dataModel.PROGRES     = Task.Progres;
                dataModel.CATEGORY_ID = Task.Category;
                dataModel.RANK_ID     = Task.Rank;
                dataModel.STATUS_ID   = Task.Status;
                if (_db.SaveChanges() > 0)
                {
                    if (previousStatus != 4 && Task.Status == 4)
                    {
                        _statisticsRepository.SetFinishedTasks(UserId, 1);
                    }
                    if (previousStatus == 4 && Task.Status != 4)
                    {
                        _statisticsRepository.SetFinishedTasks(UserId, -1);
                    }
                    if (previousDeadline == null && Task.DeadlineDate != null)
                    {
                        _statisticsRepository.SetTasksWithDeadline(UserId, 1);
                    }
                    if (previousDeadline != null && Task.DeadlineDate == null)
                    {
                        _statisticsRepository.SetTasksWithDeadline(UserId, -1);
                    }
                    if (Task.DeadlineDate != null && Task.DeadlineDate > DateTime.Now && Task.Status == 4)
                    {
                        _statisticsRepository.SetTasksFinishedBeforeDeadline(UserId, 1);
                    }
                    if (Task.DeadlineDate != null && Task.DeadlineDate > DateTime.Now && previousStatus == 4 && Task.Status != 4)
                    {
                        _statisticsRepository.SetTasksFinishedBeforeDeadline(UserId, -1);
                    }
                }
            }
            else
            {
                var dataModel = new TASK()
                {
                    NAME          = Task.Name,
                    DESCRIPTION   = Task.Description,
                    CARD_COLOR    = Task.CardColor,
                    FONT_COLOR    = Task.FontColor,
                    CREATION_DATE = DateTime.Now,
                    DEADLINE_DATE = Task.DeadlineDate,
                    PROGRES       = Task.Progres,
                    CATEGORY_ID   = Task.Category,
                    RANK_ID       = Task.Rank,
                    STATUS_ID     = Task.Status,
                    USER_ID       = UserId
                };
                if (Task.Status == 4)
                {
                    dataModel.COMPLETION_DATE = DateTime.Now;
                }
                _db.TASK.Add(dataModel);
                if (_db.SaveChanges() > 0)
                {
                    _statisticsRepository.SetCreatedTasks(UserId);
                    _statisticsRepository.SetLastTaskCreation(UserId);
                    if (Task.DeadlineDate != null)
                    {
                        _statisticsRepository.SetTasksWithDeadline(UserId, 1);
                    }
                }
            }
        }