public async Task <IActionResult> Put([FromBody] ClientViewModel vm)
        {
            if (vm == null)
            {
                return(await ResponseProvider.ParameterErrorResponse("Request parameter is null"));
            }

            if (string.IsNullOrEmpty(vm.ClientName))
            {
                return(await ResponseProvider.ParameterErrorResponse($"Parameter's {nameof(vm.ClientName)} is null or empty"));
            }

            //checke client name
            if (await _DbContext.Clients.AnyAsync(m => m.ClientName == vm.ClientName && m.Id != vm.Id))
            {
                return(await ResponseProvider.ResourceExistResponse($"Parameter's {nameof(vm.ClientName)} is exist"));
            }

            var client = await _DbContext.Clients.FirstOrDefaultAsync(m => m.Id == vm.Id);

            //resouce is not found
            if (client == null)
            {
                return(await ResponseProvider.ResourceNotFoundResponse());
            }

            //update property
            client.ClientName         = vm.ClientName;
            client.AllowOfflineAccess = vm.AllowOfflineAccess;
            client.Enabled            = vm.Enabled;
            client.Updated            = DateTime.Now;

            var result = _DbContext.Update(client);
            await _DbContext.SaveChangesAsync();

            return(await ResponseProvider.OkResult(vm, "update success"));
        }