public async Task AddLibrary(LibraryDto input)
        {
            List <string> errorList = new List <string>();

            var library = new Library
            {
                Name       = input.Name,
                DistrictId = input.DistrictId,
                ProvinceId = input.ProvinceId
            };

            LibraryValidator validator        = new LibraryValidator();
            ValidationResult validationResult = validator.Validate(library);

            if (!validationResult.IsValid)
            {
                foreach (var failure in validationResult.Errors)
                {
                    errorList.Add(string.Format("{0}", failure.ErrorMessage));
                }
                string errorString = string.Join(" ", errorList.ToArray());
                throw new UserFriendlyException(errorString);
            }
            await _libraryRepository.InsertAsync(library);
        }
        public async Task UpdateLibrary(LibraryDto input)
        {
            List <string> errorList = new List <string>();

            var data = await GetLibraryById(input.Id);

            data.Name       = input.Name;
            data.DistrictId = input.DistrictId;
            data.ProvinceId = input.ProvinceId;

            LibraryValidator validator        = new LibraryValidator();
            ValidationResult validationResult = validator.Validate(data);

            if (!validationResult.IsValid)
            {
                foreach (var failure in validationResult.Errors)
                {
                    errorList.Add(string.Format("{0}", failure.ErrorMessage));
                }
                string errorString = string.Join(" ", errorList.ToArray());
                throw new UserFriendlyException(errorString);
            }

            await _libraryRepository.UpdateAsync(data);
        }