Example #1
0
        public async Task <NetflixTitleDto> Create(NetflixTitleDto dto)
        {
            try
            {
                dto.Id = Guid.NewGuid();

                var netFlixTitleDomain = new NetflixTitleBuilder()
                                         .WithTitle(dto.Title)
                                         .WithDirector(dto.Director)
                                         .WithCountry(dto.Country)
                                         .WithDurationMin(dto.DurationMin)
                                         .WithCast(dto.Cast)
                                         .WithId(dto.Id)
                                         .Build();

                if (!netFlixTitleDomain.IsValid())
                {
                    return(new NetflixTitleDto
                    {
                        ErrorMessage = netFlixTitleDomain.ErrorMessages.FirstOrDefault()
                    });
                }

                await _cassandraContext.InsertAsync(netFlixTitleDomain);
            }
            catch (Exception ex)
            {
                dto.ErrorMessage = $"Exceção não tratada: {ex.Message}";
            }

            return(dto);
        }
        public void WithoutId_IsInvalid()
        {
            var domain = new NetflixTitleBuilder()
                         .WithCast("cast example")
                         .WithDescription("description example")
                         .WithTitle("title example")
                         .Build();

            Assert.False(domain.IsValid());
        }
        public void WithoutDurationMin_IsValid()
        {
            var domain = new NetflixTitleBuilder()
                         .WithDescription("description example")
                         .WithTitle("title example")
                         .WithDirector("director example")
                         .WithCast("cast example")
                         .WithId(Guid.NewGuid())
                         .Build();

            Assert.True(domain.IsValid());
        }