Example #1
0
        public async Task HandleAsync(CreateLyricInput input, ICreateLyricOutputHandler <T> output)
        {
            var author = await _userRepository.GetByUsernameAsync(input.AuthorName);

            if (author == null)
            {
                output.BadRequest("The given author does not exist");
                return;
            }

            var dbLyric = new Lyric
            {
                CreatedOn = DateTime.UtcNow,
                AuthorId  = author.Id,
                Singer    = input.Singer,
                Text      = input.Text,
                Title     = input.Title,
            };

            try
            {
                await _lyricRepository.CreateAsync(dbLyric);

                output.Success(new CreateLyricOutput(dbLyric.Id));
            }
            catch (Exception)
            {
                output.BadRequest("Creating lyric failed.");
            }
        }