public Tuple <Author, AuthorValidation> CreateAuthor(Author author)
        {
            AuthorValidation validation = new AuthorValidation(author);

            if (validation.IsValid)
            {
                string authorFirstName = author.FirstName;
                if (author.FirstName != null)
                {
                    author.FirstName = authorFirstName.Substring(0, 1).ToUpper() + authorFirstName.Substring(1);
                }
                string authorLastName = author.LastName;
                author.LastName = authorLastName.Substring(0, 1).ToUpper() + authorLastName.Substring(1);
                AUTHOR repoAUTHOR = _Repo.CreateAuthor(Mapper.Map <Author, AUTHOR>(author));
                if (repoAUTHOR == null)
                {
                    validation.FailedToCreateAuthor(nameof(author.FirstName));
                }
                else
                {
                    Author newAuthor = Mapper.Map <Author>(repoAUTHOR);
                    if (newAuthor != null)
                    {
                        return(new Tuple <Author, AuthorValidation>(newAuthor, validation));
                    }
                    validation.FailedToCreateAuthor(nameof(author.LastName));
                }
            }
            return(new Tuple <Author, AuthorValidation>(null, validation));
        }
        public Tuple <Author, AuthorValidation> EditAuthor(Author author)
        {
            AuthorValidation validation = new AuthorValidation(author);

            if (validation.IsValid)
            {
                string authorFirstName = author.FirstName;
                if (author.FirstName != null)
                {
                    author.FirstName = authorFirstName.Substring(0, 1).ToUpper() + authorFirstName.Substring(1);
                }
                string authorLastName = author.LastName;
                author.LastName = authorLastName.Substring(0, 1).ToUpper() + authorLastName.Substring(1);
                AUTHOR repoAUTHOR = _Repo.EditAuthor(Mapper.Map <Author, AUTHOR>(author));
                if (repoAUTHOR != null)
                {
                    Author editedAuthor = Mapper.Map <AUTHOR, Author>(repoAUTHOR);
                    if (editedAuthor != null)
                    {
                        return(new Tuple <Author, AuthorValidation>(editedAuthor, validation));
                    }
                }
                else
                {
                    validation.DoesNotExistOnServer(nameof(author.LastName));
                }
            }
            return(new Tuple <Author, AuthorValidation>(null, validation));
        }
Exemple #3
0
        public int AddAuthor(Author author)
        {
            AuthorValidation validation = new AuthorValidation(author);

            validation.FirstNameIsValid = validation.AuthorFirstNameValidation();
            validation.LastNameIsValid  = validation.AuthorLastNameValidation();
            if (!validation.exceptionList.Any())
            {
                return(_authorDao.AddAuthor(author));
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                foreach (var item in validation.exceptionList)
                {
                    sb.Append(item + Environment.NewLine);
                }
                throw new AuthorValidationException(sb.ToString());
            }
        }