예제 #1
0
        public async Task <Guid> Create(Sheet sheetRequest)
        {
            var sheet = SheetAggregate.CreateFromSheetDto(sheetRequest);
            await _sheetAggregateRepo.Add(sheet);

            return(sheet.Id);
        }
예제 #2
0
        public async Task Approve(Guid sheetId)
        {
            var sheet = await _sheetAggregateRepo.GetItem(sheetId);

            SheetAggregate.ApproveSheet(sheetId, sheet);
            await _sheetAggregateRepo.Update(sheetId, sheet);
        }
예제 #3
0
        public async Task <Guid> Create(SheetCreateRequest request)
        {
            var sheet = SheetAggregate.CreateFromRequest(request);

            await _repo.Add(sheet);

            return(sheet.Id);
        }
예제 #4
0
        public void IncludeUpdateTest()
        {
            var sheetBuilder   = new SheetAggregateBuilder();
            var sheetAggregate = sheetBuilder.CreateRandomSheet();
            var sheet          = SheetAggregate.Update(sheetAggregate.Id, sheetAggregate);

            sheetAggregate.Should().BeEquivalentTo(sheet);
        }
예제 #5
0
        public void ApproveSheetTest()
        {
            var builder = new SheetAggregateBuilder();
            var sheet   = builder.CreateRandomSheet();

            sheet = SheetAggregate.ApproveSheet(sheet.Id, sheet);

            sheet.IsApproved.Should().BeTrue();
            sheet.ApprovedDate.Should().BeExactly(TimeSpan.FromSeconds(DateTimeOffset.Now.ToUnixTimeSeconds()));
        }
예제 #6
0
        public void SheetAggregate_ShouldBeDeleted()
        {
            //Arrange
            var request = AggregatesRequestBuilder.CreateRandomSheetCreateRequest();
            var sheet   = SheetAggregate.CreateFromRequest(request);

            //Act
            sheet.MarkAsDeleted();

            //Assert
            sheet.IsDeleted.Should().BeTrue();
        }
예제 #7
0
        public void CreateTest()
        {
            var builder = new SheetAggregateBuilder();
            var sheet   = SheetAggregate.Create(
                builder.amountForRandomSheets,
                builder.SheetContractId,
                DateTime.Now,
                builder.SheetEmployeeId,
                builder.SheetServiceId);

            sheet.Should().As <SheetAggregate>();
        }
예제 #8
0
        public void SheetAggregate_ShouldBeApproved()
        {
            //Arrange
            var request = AggregatesRequestBuilder.CreateRandomSheetCreateRequest();
            var sheet   = SheetAggregate.CreateFromRequest(request);

            //Act
            sheet.ApproveSheet();

            //Assert
            sheet.IsApproved.Should().BeTrue();
            sheet.ApprovedDate.Should().BeCloseTo(DateTime.Now);
        }
예제 #9
0
        public void SheetAggregate_CreateRandomFromRequest()
        {
            //Arrange
            var request = AggregatesRequestBuilder.CreateRandomSheetCreateRequest();

            //Act
            var sheet = SheetAggregate.CreateFromRequest(request);

            // Assert
            sheet.Amount.Amount.Should().Be(request.Amount);
            sheet.ContractId.Should().Be(request.ContractId);
            sheet.EmployeeId.Should().Be(request.EmployeeId);
            sheet.ServiceId.Should().Be(request.ServiceId);
            sheet.Date.Should().Be(request.Date);
        }
예제 #10
0
        public SheetAggregate CreateRandomSheet()
        {
            var config = new MapperConfiguration(cfg => cfg.CreateMap <SheetDto, Sheet>());
            var mapper = new Mapper(config);


            var sheetDto = new SheetDto()
            {
                Amount     = amountForRandomSheets,
                ContractId = SheetContractId,
                Date       = DateTime.Now,
                EmployeeId = SheetEmployeeId,
                ServiceId  = SheetServiceId
            };

            var result = SheetAggregate.CreateFromSheetDto(mapper.Map <SheetDto, Sheet>(sheetDto));

            return(result);
        }
예제 #11
0
        public void InvoiceAggregate_CalculateSomeSum_AfterIncludeSomeSheets()
        {
            //Arrange
            var invoiceRequest = AggregatesRequestBuilder.CreateRandomInvoiceCreateRequest();
            var invoice        = InvoiceAggregate.CreateFromRequest(invoiceRequest);

            var sheets      = new List <SheetAggregate>();
            var sheetsCount = 3;

            for (int i = 0; i < sheetsCount; i++)
            {
                var sheetRequest = AggregatesRequestBuilder.CreateRandomSheetCreateRequest();
                sheets.Add(SheetAggregate.CreateFromRequest(sheetRequest));
            }

            //Act
            invoice.IncludeSheets(sheets);

            //Assert
            invoice.Sum.Amount.Should().BeGreaterThan(0);
            invoice.Sheets.Count.Should().Be(sheetsCount);
        }
예제 #12
0
 public async Task Update(Guid id, SheetRequest sheetRequest)
 {
     var sheet = SheetAggregate.CreateFromSheetRequest(sheetRequest);
     await _sheetRepo.Update(sheet);
 }
예제 #13
0
 public async Task Update(SheetAggregate item)
 {
     _context.Sheets.Update(item);
     await _context.SaveChangesAsync();
 }
예제 #14
0
        public async Task Add(SheetAggregate item)
        {
            await _context.Sheets.AddAsync(item);

            await _context.SaveChangesAsync();
        }