public async Task DeleteShareholder(ShareholderDTO shareholder)
        {
            var shareholderMapped = ShareholderEntityToDtoMapper.Instance.MapBack(shareholder);

            unitOfWork.ShareholderRepository.Delete(shareholderMapped);
            await unitOfWork.Save();
        }
        public async Task <ApiDataResponse <ShareholderDTO> > AddShareholder(ShareholderDTO shareholder)
        {
            var result = await shareholderService.AddShareholder(shareholder);

            if (result.IsError)
            {
                return(new ApiDataResponse <ShareholderDTO>(400, new ApiErrorResponse()
                {
                    Message = result.Message
                }));
            }
            return(new ApiDataResponse <ShareholderDTO>(shareholder));
        }
        public async Task <ValidationModel> UpdateShareholder(ShareholderDTO shareholder)
        {
            var shareholderMapped = ShareholderEntityToDtoMapper.Instance.MapBack(shareholder);
            var result            = await ValidateShareholder(shareholderMapped);

            if (result == null)
            {
                unitOfWork.ShareholderRepository.Update(shareholderMapped);
                await unitOfWork.Save();

                return(new ValidationModel("Succesfully added person to shareholder", false));
            }
            else
            {
                return(result);
            }
        }
        public async Task <ApiDataResponse <int> > UpdateShareholder(int id, ShareholderDTO shareholder)
        {
            if (id != shareholder.Id)
            {
                return(ApiDataResponse <int> .BadRequest);
            }
            var currentShareholder = await shareholderService.GetShareholderById(id);

            if (currentShareholder == null)
            {
                return(ApiDataResponse <int> .NotFound);
            }
            var result = await shareholderService.UpdateShareholder(shareholder);

            if (result.IsError)
            {
                return(new ApiDataResponse <int>(400, new ApiErrorResponse()
                {
                    Message = result.Message
                }));
            }
            return(new ApiDataResponse <int>(id));
        }