public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Task task = db.Task.Find(id);

            if (task == null)
            {
                return(HttpNotFound());
            }

            var taskEditModel = new TaskEditModel
            {
                TaskId          = task.TaskId,
                TaskName        = task.TaskName,
                TaskDescription = task.TaskDescription,
                IsDone          = task.IsDone,
                SprintId        = task.SprintId
            };


            ViewBag.SprintId = new SelectList(db.Sprint, "SprintId", "SprintStart", task.SprintId);
            return(View(taskEditModel));
        }
Exemplo n.º 2
0
        public void Edit_Post_ValidationFailed()
        {
            // Arrange
            var taskRepoMock = new Mock <IRepository <Task> >();
            var controller   = new HomeController(taskRepoMock.Object);
            var inModel      = new TaskEditModel {
                Id = 1, ParentId = 2, Name = "3"
            };

            controller.ModelState.AddModelError("", "");
            taskRepoMock.Verify(r => r.Save(), Times.Never);

            // Act
            var rez = controller.Edit(inModel);

            // Assert
            rez.ShouldBeOfType <ViewResult>();
            var modelTemp = ((ViewResult)rez).Model;

            modelTemp.ShouldNotBeNull();
            modelTemp.ShouldBeOfType <TaskEditModel>();
            var model = (TaskEditModel)modelTemp;

            model.Id.ShouldBe(1);
            model.ParentId.ShouldBe(2);
            model.Name.ShouldBe("3");
        }
Exemplo n.º 3
0
        private void WarnDateTimeOutOfRange(ref TaskEditModel model)
        {
            if (model.StartDateTime.HasValue || model.EndDateTime.HasValue)
            {
                var campaignEvent = GetEventBy(model.EventId);
                var timeZoneInfo  = TimeZoneInfo.FindSystemTimeZoneById(campaignEvent.Campaign.TimeZoneId);

                DateTimeOffset?convertedStartDateTime = null;
                if (model.StartDateTime.HasValue)
                {
                    var startDateValue      = model.StartDateTime.Value;
                    var startDateTimeOffset = timeZoneInfo.GetUtcOffset(startDateValue);
                    convertedStartDateTime = new DateTimeOffset(startDateValue.Year, startDateValue.Month, startDateValue.Day, startDateValue.Hour, startDateValue.Minute, 0, startDateTimeOffset);
                }

                DateTimeOffset?convertedEndDateTime = null;
                if (model.EndDateTime.HasValue)
                {
                    var endDateValue      = model.EndDateTime.Value;
                    var endDateTimeOffset = timeZoneInfo.GetUtcOffset(endDateValue);
                    convertedEndDateTime = new DateTimeOffset(endDateValue.Year, endDateValue.Month, endDateValue.Day, endDateValue.Hour, endDateValue.Minute, 0, endDateTimeOffset);
                }

                if ((convertedStartDateTime < campaignEvent.StartDateTime || convertedEndDateTime > campaignEvent.EndDateTime) &&
                    (model.IgnoreTimeRangeWarning == false))
                {
                    ModelState.AddModelError("", "Although valid, task time is out of range for event time from " +
                                             campaignEvent.StartDateTime.DateTime.ToString("g") + " to " + campaignEvent.EndDateTime.DateTime.ToString("g") + " " + campaignEvent.Campaign.TimeZoneId);
                    ModelState.Remove("IgnoreTimeRangeWarning");
                    model.IgnoreTimeRangeWarning = true;
                }
            }
        }
Exemplo n.º 4
0
        public void Edit_Post_Success()
        {
            // Arrange
            var taskRepoMock = new Mock <IRepository <Task> >();
            var controller   = new HomeController(taskRepoMock.Object);
            var inModel      = new TaskEditModel {
                Id = 1, Name = "a1"
            };
            var callbackTask = new Task {
                Id = 1, ParentId = 2, Name = "test"
            };

            taskRepoMock.Setup(r => r.GetByID(1)).Returns(callbackTask);
            taskRepoMock.Setup(r => r.Save()).Verifiable();

            // Act
            var rez = controller.Edit(inModel);

            // Assert
            taskRepoMock.VerifyAll();
            callbackTask.ShouldNotBeNull();
            callbackTask.Name.ShouldBe("a1");

            rez.ShouldBeOfType <RedirectToRouteResult>();
            var routeResult = (RedirectToRouteResult)rez;

            routeResult.RouteValues.Count.ShouldBe(2);
            routeResult.RouteValues["action"].ShouldBe("Index");
            routeResult.RouteValues["id"].ShouldBe(2);
        }
Exemplo n.º 5
0
        public void Edit_Post_ErrorNotHandledText()
        {
            // Arrange
            var taskRepoMock = new Mock <IRepository <Task> >();
            var controller   = new HomeController(taskRepoMock.Object);
            var inModel      = new TaskEditModel {
                Id = 1, Name = "a1"
            };
            var callbackTask = new Task {
                Id = 1, ParentId = 2, Name = "test"
            };

            taskRepoMock.Setup(r => r.GetByID(1)).Returns(callbackTask);
            var ex   = new Exception("Wrong exception message");
            var dbEx = new System.Data.Entity.Infrastructure.DbUpdateException("", new Exception("", ex));

            taskRepoMock.Setup(r => r.Save()).Throws(dbEx);

            // Act
            Should.Throw <System.Data.Entity.Infrastructure.DbUpdateException>(() => { controller.Edit(inModel); });

            // Assert
            taskRepoMock.VerifyAll();
            callbackTask.ShouldNotBeNull();
            callbackTask.Name.ShouldBe("a1");
            controller.ModelState.Count.ShouldBe(0);
        }
        public async Task <IActionResult> TaskEdit(int?id1, int?id2, string data)
        {
            if (id1 == null)
            {
                return(NotFound());
            }

            var fromDateAsDateTime = DateTime.Parse(data);
            var uslugaprojekt      = await _s16693context.UslugaProjekt.FirstOrDefaultAsync(x => x.IdProjekt == id1& x.IdUsluga == id2& x.DataPrzypisaniaZadania == fromDateAsDateTime);

            if (uslugaprojekt == null)
            {
                return(NotFound());
            }

            var pakiet = await _s16693context.ProjektPakiet.FirstOrDefaultAsync(x => x.IdProjekt == id1 && x.DataZakonczeniaWspolpracy == null);

            var pU = await _s16693context.PakietUsluga.Where(x => x.IdPakiet == pakiet.IdPakiet).Include(u => u.IdUslugaNavigation).ToListAsync();

            List <Usluga> uslugas = new List <Usluga>();

            foreach (var item in pU)
            {
                uslugas.Add(await _s16693context.Usluga.FirstOrDefaultAsync(x => x.IdUsluga == item.IdUsluga));
            }

            var tEM = new TaskEditModel
            {
                UslugaProjekt = uslugaprojekt,
                uslugas       = uslugas
            };

            return(View(tEM));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> Edit(int id, TaskEditModel taskEditModel)
        {
            var allTask = _context.AllTask.Find(taskEditModel.Id);

            if (id != allTask.Id)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(taskEditModel));
            }
            try
            {
                allTask.Title       = taskEditModel.Title;
                allTask.Description = taskEditModel.Description;
                //allTask.UserId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
                _context.Update(allTask);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AllTaskExists(allTask.Id))
                {
                    return(NotFound());
                }

                throw;
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 8
0
        private void WarnDateTimeOutOfRange(ref TaskEditModel model)
        {
            if (model.StartDateTime.HasValue || model.EndDateTime.HasValue)
            {
                var          activity = _dataAccess.GetActivity(model.ActivityId);
                TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(activity.Campaign.TimeZoneId);

                DateTimeOffset?convertedStartDateTime = null;
                if (model.StartDateTime.HasValue)
                {
                    var startDateValue      = model.StartDateTime.Value;
                    var startDateTimeOffset = timeZone.GetUtcOffset(startDateValue);
                    convertedStartDateTime = new DateTimeOffset(startDateValue.Year, startDateValue.Month, startDateValue.Day, startDateValue.Hour, startDateValue.Minute, 0, startDateTimeOffset);
                }

                DateTimeOffset?convertedEndDateTime = null;
                if (model.EndDateTime.HasValue)
                {
                    var endDateValue      = model.EndDateTime.Value;
                    var endDateTimeOffset = timeZone.GetUtcOffset(endDateValue);
                    convertedEndDateTime = new DateTimeOffset(endDateValue.Year, endDateValue.Month, endDateValue.Day, endDateValue.Hour, endDateValue.Minute, 0, endDateTimeOffset);
                }

                if ((convertedStartDateTime < activity.StartDateTime || convertedEndDateTime > activity.EndDateTime) &&
                    (model.IgnoreTimeRangeWarning == false))
                {
                    ModelState.AddModelError("", "Although valid, task time is out of range for activity time from " +
                                             activity.StartDateTime.DateTime.ToString("g") + " to " + activity.EndDateTime.DateTime.ToString("g") + " " + activity.Campaign.TimeZoneId.ToString());
                    ModelState.Remove("IgnoreTimeRangeWarning");
                    model.IgnoreTimeRangeWarning = true;
                }
            }
        }
Exemplo n.º 9
0
        public ActionResult Edit(TaskEditModel model)
        {
            if (ModelState.IsValid)
            {
                var task = _taskRepo.GetByID(model.Id);
                task.Name = model.Name;

                _taskRepo.Update(task);
                try
                {
                    _taskRepo.Save();
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException ex)
                {
                    var msg = ex.InnerException?.InnerException?.Message;
                    if (msg != null && msg.StartsWith("Cannot insert duplicate key row in object 'dbo.Task' with unique index 'IX_ParentId_Name'"))
                    {
                        ModelState.AddModelError("", NameUniquenessMessage);
                        model.ParentId = task.ParentId;
                        return(View(model));
                    }

                    throw;
                }
                return(RedirectToAction("Index", new { Id = task.ParentId }));
            }
            return(View(model));
        }
Exemplo n.º 10
0
        // GET: AllTasks/Edit/5
        public async Task <IActionResult> Edit(int?id, TaskEditModel taskEditModel)
        {
            if (id is null or 0)
            {
                return(NotFound());
            }

            //Проверяем, есть ли задача с таким ID.
            taskEditModel.Id = (int)id;
            var allTask = await _context.AllTask.FindAsync(taskEditModel.Id);

            if (allTask == null)
            {
                return(NotFound());
            }
            //Проверяем, относятся ли данные к тому пользователю, который авторзован.
            if (allTask.UserId != User.FindFirstValue(ClaimTypes.NameIdentifier))
            {
                return(NotFound());
            }
            //Передаем в модель представления данные, которые нужно редактировать.
            taskEditModel.Title       = allTask.Title;
            taskEditModel.Description = allTask.Description;
            return(View(taskEditModel));
        }
Exemplo n.º 11
0
        public TaskListItemViewModel Create(TaskEditModel editModel)
        {
            TaskDefinition definition = _taskDefinitionDAO.Get(editModel.DefinitionId);

            TimeSpan allowedExposureTime = new TimeSpanFactory().CreateFromStrings(editModel.Hours, editModel.Minutes);

            Task task = new Task()
            {
                Title                  = editModel.Title,
                Role                   = _roleDAO.Get(editModel.RoleId),
                NoiseProtection        = _noiseProtectionDAO.Get(editModel.NoiseProtectionId),
                NoiseLevelGuideline    = Convert.ToDecimal(editModel.NoiseLevelGuideline.Trim(), new CultureInfo("en-US")),
                Frequency              = editModel.Frequency,
                AllowedExposureMinutes = Convert.ToInt32(allowedExposureTime.TotalMinutes),
                TaskDefinition         = definition,
                ButtonPressed          = editModel.ButtonPressed,
                CultureName            = editModel.SelectedCultureName,
            };

            definition.Tasks.Add(task);

            _taskDefinitionDAO.Store(definition);

            TaskListItemViewModel viewModel = CreateTaskListItemViewModel(task);

            return(viewModel);
        }
Exemplo n.º 12
0
        public async Task EditPostReturnsHttpUnauthorizedResultWhenModelStateIsValidAndUserIsNotAnOrganizationAdminUser()
        {
            var startDateTime = DateTimeOffset.Now.AddDays(-1);
            var endDateTime   = DateTimeOffset.Now.AddDays(1);
            var model         = new TaskEditModel {
                StartDateTime = startDateTime, EndDateTime = endDateTime, OrganizationId = 1
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ActivityByActivityIdQuery>())).Returns(new Activity
            {
                Campaign = new Campaign {
                    TimeZoneId = "Eastern Standard Time"
                },
                StartDateTime = startDateTime.AddDays(-1),
                EndDateTime   = endDateTime.AddDays(1)
            });

            var sut = new TaskController(mediator.Object);

            sut.SetDefaultHttpContext();

            var result = await sut.Edit(model);

            Assert.IsType <HttpUnauthorizedResult>(result);
        }
Exemplo n.º 13
0
        public async Task EditPostSendsEditTaskCommandAsyncWhenModelStateIsValidAndUserIsOrganizationAdmin()
        {
            const int organizationId   = 1;
            var       taskSummaryModel = new TaskSummaryModel {
                OrganizationId = organizationId
            };
            var startDateTime = DateTimeOffset.Now.AddDays(-1);
            var endDateTime   = DateTimeOffset.Now.AddDays(1);

            var model = new TaskEditModel {
                StartDateTime = startDateTime, EndDateTime = endDateTime, OrganizationId = organizationId
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ActivityByActivityIdQuery>())).Returns(new Activity
            {
                Campaign = new Campaign {
                    TimeZoneId = "Eastern Standard Time"
                }, StartDateTime = startDateTime.AddDays(-1), EndDateTime = endDateTime.AddDays(1)
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <TaskQueryAsync>())).ReturnsAsync(taskSummaryModel);

            var sut = new TaskController(mediator.Object);

            MakeUserOrganizationAdminUser(sut, organizationId.ToString());

            await sut.Edit(model);

            mediator.Verify(x => x.SendAsync(It.Is <EditTaskCommandAsync>(y => y.Task == model)));
        }
        public void SetUpFixture()
        {
            taskService = new Mock <ITaskRemoteService>();
            var eventAgregator = new Mock <IEventAggregator>();

            taskEditStartEvent = new Mock <TaskEditStartedEvent>();
            var categoryEditStartedEvent = new Mock <CategoryEditStartedEvent>();

            eventAgregator.Setup(x => x.GetEvent <TaskEditStartedEvent>()).Returns(taskEditStartEvent.Object);
            eventAgregator.Setup(x => x.GetEvent <CategoryEditStartedEvent>()).Returns(categoryEditStartedEvent.Object);

            var mapper = new Mock <IMapper>();

            model = new TaskEditModel(taskService.Object, eventAgregator.Object, mapper.Object);

            _task = new DomainModel.Task
            {
                TaskId       = Guid.NewGuid(),
                TaskName     = "Test",
                CreationTime = DateTime.Today,
                Status       = Pinz.DomainModel.TaskStatus.TaskNotStarted,
                CategoryId   = Guid.NewGuid(),
                Category     = new Category.CategoryModel()
                {
                    Project = new ProjectModel()
                    {
                        ProjectUsers = new ObservableCollection <User>()
                    }
                }
            };
        }
Exemplo n.º 15
0
        public IActionResult Update(TaskEditModel task)
        {
            var newTask = mapper.Map <TaskBase>(task);

            taskManager.Change(newTask);
            return(RedirectToAction("Index"));
        }
Exemplo n.º 16
0
        public ActionResult Edit([Bind(Include = "TaskId,SprintId,TaskName,TaskDescription,IsDone")] TaskEditModel task)
        {
            if (!ModelState.IsValid)
            {
                return(View(task));
            }

            var taskEntity = db.Task.FirstOrDefault(x => x.TaskId == task.TaskId);

            if (taskEntity == null)
            {
                return(HttpNotFound());
            }

            taskEntity.SprintId        = task.SprintId;
            taskEntity.TaskName        = task.TaskName;
            taskEntity.TaskDescription = task.TaskDescription;
            taskEntity.IsDone          = task.IsDone;

            db.Entry(taskEntity).State = EntityState.Modified;
            db.SaveChanges();

            ViewBag.SprintId = new SelectList(db.Sprint, "SprintId", "SprintId", task.SprintId);
            return(RedirectToAction("Index"));
        }
Exemplo n.º 17
0
        public async Task <IActionResult> Edit(TaskEditModel task)
        {
            int result = await _taskData.EditTask(task.ID, task.Task, task.Description);

            if (result < 0)
            {
                return(BadRequest()); // to test without
            }
            return(Ok());
        }
        public ActionResult Edit(TaskEditModel editModel)
        {
            if (editModel.IsValid() == false)
            {
                Response.StatusCode = 500;
                return(PartialView("_ValidationErrorSummary", new ValidationErrorSummaryViewModel(editModel.GetValidationErrors())));
            }

            TaskListItemViewModel viewModel = _genericTaskService.Edit(editModel);

            return(PartialView("_TaskTableRow", viewModel));
        }
        public TaskEditView(TaskEditModel model)
        {
            InitializeComponent();
            this.DataContext = model;

            RegionContext.GetObservableContext(this).PropertyChanged += (s, e) =>
            {
                if (RegionContext.GetObservableContext(this).Value != null)
                {
                    model.Task = RegionContext.GetObservableContext(this).Value as Task;
                }
            };
        }
Exemplo n.º 20
0
        public async Task <IActionResult> TaskEdit(TaskEditModel tEM)
        {
            if (ModelState.IsValid)
            {
                _s16693context.Update(tEM.UslugaProjekt);
                await _s16693context.SaveChangesAsync();

                return(RedirectToAction("ProjectDetails", new { id = tEM.UslugaProjekt.IdProjekt }));
            }
            else if (!ModelState.IsValid)
            {
                return(View("TaskEdit", tEM));
            }
            return(View(tEM));
        }
Exemplo n.º 21
0
        public void Validate_Success()
        {
            // Arrange
            var model = new TaskEditModel
            {
                Name = "OK"
            };
            var context = new ValidationContext(model, null, null);
            var result  = new List <ValidationResult>();

            // Act
            var valid = Validator.TryValidateObject(model, context, result, true);

            // Assert
            valid.ShouldBe(true);
        }
Exemplo n.º 22
0
        /// <summary>
        /// Method for get TaskEditModel from DBModel.
        /// </summary>
        /// <param name="TaskId">Current task id</param>
        /// <returns></returns>
        public TaskEditModel GetTaskEditModel(int TaskId)
        {
            var model = _dataManager.Tasks.GetTaskById(TaskId);

            var editModel = new TaskEditModel()
            {
                Id          = model.Id,
                SolutionId  = model.SolutionId,
                task_status = model.task_status,
                TaskName    = model.TaskName,
                Description = model.Description,
                Priority    = model.Priority
            };

            return(editModel);
        }
Exemplo n.º 23
0
        public async Task <IActionResult> TaskDelay(TaskEditModel tEM)
        {
            if (ModelState.IsValid)
            {
                DateTime tmpDate = (DateTime)tEM.UslugaProjekt.DataZakonczeniaZadania;
                tEM.UslugaProjekt.DataZakonczeniaZadania = tmpDate.AddDays(7);
                tEM.UslugaProjekt.Status = "Opóźnione";
                _s16693context.Update(tEM.UslugaProjekt);
                await _s16693context.SaveChangesAsync();

                return(RedirectToAction("ProjectDetails", new { id = tEM.UslugaProjekt.IdProjekt }));
            }
            else if (!ModelState.IsValid)
            {
                return(View("TaskEdit", tEM));
            }
            return(View(tEM));
        }
Exemplo n.º 24
0
        public TaskListItemViewModel Edit(TaskEditModel editModel)
        {
            Task task = _taskDAO.Get(editModel.Id);

            TimeSpan allowedExposureTime = new TimeSpanFactory().CreateFromStrings(editModel.Hours, editModel.Minutes);

            task.Title = editModel.Title;
            task.NoiseLevelGuideline    = Convert.ToDecimal(editModel.NoiseLevelGuideline.Trim(), new CultureInfo("en-US"));
            task.AllowedExposureMinutes = Convert.ToInt32(allowedExposureTime.TotalMinutes);
            task.Role            = _roleDAO.Get(editModel.RoleId);
            task.NoiseProtection = _noiseProtectionDAO.Get(editModel.NoiseProtectionId);
            task.ButtonPressed   = editModel.ButtonPressed;
            task.Frequency       = editModel.Frequency;


            _taskDAO.Store(task);

            TaskListItemViewModel viewModel = CreateTaskListItemViewModel(task);

            return(viewModel);
        }
Exemplo n.º 25
0
        public void Edit_Post_ErrorHandled()
        {
            // Arrange
            var taskRepoMock = new Mock <IRepository <Task> >();
            var controller   = new HomeController(taskRepoMock.Object);
            var inModel      = new TaskEditModel {
                Id = 1, Name = "a1"
            };
            var callbackTask = new Task {
                Id = 1, ParentId = 2, Name = "test"
            };

            taskRepoMock.Setup(r => r.GetByID(1)).Returns(callbackTask);
            var ex   = new Exception("Cannot insert duplicate key row in object 'dbo.Task' with unique index 'IX_ParentId_Name' some other text");
            var dbEx = new System.Data.Entity.Infrastructure.DbUpdateException("", new Exception("", ex));

            taskRepoMock.Setup(r => r.Save()).Throws(dbEx);

            // Act
            var rez = controller.Edit(inModel);

            // Assert
            taskRepoMock.VerifyAll();
            callbackTask.ShouldNotBeNull();
            callbackTask.Name.ShouldBe("a1");
            controller.ModelState.Count.ShouldBe(1);
            controller.ModelState[""].Errors.Single().ErrorMessage.ShouldBe("Task name should be unique on this nesting level");

            rez.ShouldBeOfType <ViewResult>();
            var modelTemp = ((ViewResult)rez).Model;

            modelTemp.ShouldNotBeNull();
            modelTemp.ShouldBeOfType <TaskEditModel>();
            var model = (TaskEditModel)modelTemp;

            model.Id.ShouldBe(1);
            model.ParentId.ShouldBe(2);
            model.Name.ShouldBe("a1");
        }
Exemplo n.º 26
0
        public async Task EditPostReturnsCorrectViewAndViewModelWhenEndDateTimeIsLessThanStartDateTimeAndModelStateIsInvalid()
        {
            var model = new TaskEditModel {
                EndDateTime = DateTimeOffset.Now.AddDays(-1), StartDateTime = DateTimeOffset.Now.AddDays(1)
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ActivityByActivityIdQuery>())).Returns(new Activity {
                Campaign = new Campaign {
                    TimeZoneId = "Eastern Standard Time"
                }
            });

            var sut    = new TaskController(mediator.Object);
            var result = await sut.Edit(model) as ViewResult;

            var modelResult = result.ViewData.Model as TaskEditModel;

            Assert.IsType <ViewResult>(result);
            Assert.Equal(modelResult, model);
        }
Exemplo n.º 27
0
        public async Task CreatePostRedirectsToCorrectAction()
        {
            const int organizationId   = 1;
            var       taskSummaryModel = new TaskSummaryModel {
                OrganizationId = organizationId
            };
            var       startDateTime   = DateTimeOffset.Now.AddDays(-1);
            var       endDateTime     = DateTimeOffset.Now.AddDays(1);
            const int taskEditModelId = 1;
            var       model           = new TaskEditModel {
                Id = taskEditModelId, StartDateTime = startDateTime, EndDateTime = endDateTime, OrganizationId = organizationId
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ActivityByActivityIdQuery>())).Returns(new Activity
            {
                Campaign = new Campaign {
                    TimeZoneId = "Eastern Standard Time"
                },
                StartDateTime = startDateTime.AddDays(-1),
                EndDateTime   = endDateTime.AddDays(1)
            });
            mediator.Setup(x => x.SendAsync(It.IsAny <TaskQueryAsync>())).ReturnsAsync(taskSummaryModel);

            var routeValues = new Dictionary <string, object> {
                ["id"] = model.Id
            };

            var sut = new TaskController(mediator.Object);

            MakeUserOrganizationAdminUser(sut, organizationId.ToString());

            var result = await sut.Create(taskEditModelId, model) as RedirectToActionResult;

            Assert.Equal(result.ActionName, nameof(TaskController.Details));
            Assert.Equal(result.ControllerName, "Activity");
            Assert.Equal(result.RouteValues, routeValues);
        }
Exemplo n.º 28
0
        public IActionResult Create(int activityId)
        {
            var activity = _dataAccess.GetActivity(activityId);

            if (activity == null || !User.IsOrganizationAdmin(activity.Campaign.ManagingOrganizationId))
            {
                return(HttpUnauthorized());
            }
            var viewModel = new TaskEditModel()
            {
                ActivityId     = activity.Id,
                ActivityName   = activity.Name,
                CampaignId     = activity.CampaignId,
                CampaignName   = activity.Campaign.Name,
                OrganizationId = activity.Campaign.ManagingOrganizationId,
                TimeZoneId     = activity.Campaign.TimeZoneId,
                StartDateTime  = activity.StartDateTime,
                EndDateTime    = activity.EndDateTime,
            };

            return(View("Edit", viewModel));
        }
Exemplo n.º 29
0
        public async Task EditGetReturnsCorrectViewModelAndView()
        {
            const int organizationId = 1;
            var       taskEditModel  = new TaskEditModel {
                OrganizationId = organizationId
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <EditTaskQueryAsync>())).ReturnsAsync(taskEditModel);

            var sut = new TaskController(mediator.Object);

            MakeUserOrganizationAdminUser(sut, organizationId.ToString());

            var result = await sut.Edit(It.IsAny <int>()) as ViewResult;

            var modelResult = result.ViewData.Model as TaskEditModel;

            Assert.IsType <ViewResult>(result);
            Assert.IsType <TaskEditModel>(modelResult);
            Assert.Equal(modelResult, taskEditModel);
        }
Exemplo n.º 30
0
        public async Task <IActionResult> Edit(TaskEditModel model)
        {
            if (model.EndDateTime < model.StartDateTime)
            {
                ModelState.AddModelError(nameof(model.EndDateTime), "Ending time cannot be earlier than the starting time");
            }

            WarnDateTimeOutOfRange(ref model);

            if (ModelState.IsValid)
            {
                if (!User.IsOrganizationAdmin(model.OrganizationId))
                {
                    return(HttpUnauthorized());
                }

                await _mediator.SendAsync(new EditTaskCommandAsync { Task = model });

                return(RedirectToAction(nameof(Details), "Task", new { id = model.Id }));
            }

            return(View(model));
        }