public async Task <ActionResult <ClientResource> > UpdateClient(SaveClientResource saveClientResource)
        {
            var validator        = new SaveClientResourceValidator();
            var validationResult = await validator.ValidateAsync(saveClientResource);

            // CHECK IS COMING OBJECT IS VALID
            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            // MAPPING
            var clientToUpdate = _mapper.Map <SaveClientResource, Client>(saveClientResource);

            // GET CLIENT OBJECT BY EMAIL
            var clientDatabase = await _clientService.GetWithCheckoutByEmail(saveClientResource.Email);

            // SEND TO INTERFACE AND UPDATE CLIENT
            await _clientService.UpdateClient(clientDatabase, clientToUpdate);

            // GET NEW DATA FOR CLIENT
            clientDatabase = await _clientService.GetWithCheckoutByEmail(saveClientResource.Email);

            return(Ok(_mapper.Map <Client, ClientResource>(clientDatabase)));
        }
        public async Task <ActionResult <ClientResource> > CreateClient(SaveClientResource saveClientResource)
        {
            var validator        = new SaveClientResourceValidator();
            var validationResult = await validator.ValidateAsync(saveClientResource);

            // CHECK IS COMING OBJECT IS VALID
            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            // MAPPING
            var clientToCreate = _mapper.Map <SaveClientResource, Client>(saveClientResource);

            // CREATE CLIENT
            var newClient = await _clientService.CreateClient(clientToCreate);

            // GET DATA FOR NEW CLIENT
            var databaseClient = await _clientService.GetWithCheckoutByEmail(newClient.Email);

            return(Ok(_mapper.Map <Client, ClientResource>(databaseClient)));
        }