Ejemplo n.º 1
0
        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>();
        }
Ejemplo n.º 4
0
        // 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);
        }