public async Task <IActionResult> GetEditModal(string id) { var query = new GetFinancialProjectByIdQuery { ProjectId = id }; var project = await Mediator.Send(query); var model = new EditFinancialProjectModel { Name = project.Title, Description = project.Description, AddUserModel = await GetAddUserModel(), Id = id }; model.AddUserModel.ExistingUsers = project.Users; foreach (var projectUser in project.Users) { var duplicate = model.AddUserModel.UserSelectListItems.FirstOrDefault(x => x.Value == projectUser.Id); if (duplicate != null) { model.AddUserModel.UserSelectListItems?.Remove(duplicate); } } return(PartialView("Partial/EditFinancialProjectModal", model)); }
public void Handle_InvalidProjectId_ShouldThrowNotFoundException() { var query = new GetFinancialProjectByIdQuery { ProjectId = "asdasdas" }; FluentActions.Invoking(async() => await SendAsync(query)).Should().Throw <NotFoundException>(); }
public void Handle_EmptyProjectId_ShouldThrowValidationException() { var query = new GetFinancialProjectByIdQuery { ProjectId = "" }; FluentActions.Invoking(async() => await SendAsync(query)).Should().Throw <ValidationException>(); }
// GET public async Task <IActionResult> Index(string id) { var query = new GetFinancialProjectByIdQuery { ProjectId = id }; var model = await Mediator.Send(query); model.Users = model.Users.Where(x => x.Id != _currentUserService.UserId).ToList(); return(View(model)); }
public async Task Handle_ValidProjectId_ShouldReturnProject() { var createCommand = new CreateFinancialProjectCommand { Title = "test", Users = new List <ApplicationUser> { User, SecondUser } }; var project = await SendAsync(createCommand); var receiptId = await CreateReceipt(project.Id); var createReceipt = new CreateReceiptCommand { FinancialProjectId = project.Id, Location = "Title", DateVisited = DateTime.Today.AddDays(-5), }; await SendAsync(createReceipt); var receiptItemCommand = new CreateReceiptItemCommand { Count = 5, Price = 2, Name = "test", ItemGroup = (int)ItemGroup.Essentials, ReceiptId = receiptId, UserIds = new List <string> { SecondUser.Id } }; var receiptItemId = await SendAsync(receiptItemCommand); var query = new GetFinancialProjectByIdQuery { ProjectId = project.Id }; var model = await SendAsync(query); model.Should().NotBeNull(); model.Receipts.First().Id.Should().Be(receiptId); model.Receipts.Count.Should().Be(2); model.Receipts.First().Location.Should().Be("Title"); model.Receipts.First().DateVisited.Should().BeCloseTo(DateTime.Now, 10000); model.Receipts.First().Items.First().Id.Should().Be(receiptItemId); model.Receipts.First().Items.First().Users.FirstOrDefault(x => x.Id == SecondUser.Id).Should().NotBeNull(); model.Receipts.First().Items.First().ItemGroup.Value.Should().Be(receiptItemCommand.ItemGroup); model.Users.FirstOrDefault(x => x.Id == SecondUser.Id).Owed.Should().Be(-10); model.Id.Should().Be(project.Id); model.Created.Should().BeCloseTo(DateTime.Now, 1000); model.Users.FirstOrDefault(x => x.Id == User.Id).Should().NotBeNull(); model.Title.Should().Be(project.Title); model.LastModified.Should().Be(null); }