Example #1
0
        public override async Task <PreferenceModel> UpdatePreference(UpdatePreferenceRequest request, ServerCallContext context)
        {
            Preference preference = _mapper.Map <Preference>(request.Preference);

            bool isExist = await _preferenceRepository.Get(x => x.Id == request.Preference.Id).AnyAsync();

            if (!isExist)
            {
                throw new RpcException(new Status(StatusCode.NotFound, $"Preference with ID={preference.Id} is not found."));
            }

            try
            {
                _preferenceRepository.Update(preference);
                await _preferenceRepository.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }

            PreferenceModel preferenceModel = _mapper.Map <PreferenceModel>(preference);

            return(preferenceModel);
        }
        /// <summary>
        /// updates the project preference for user
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public virtual async Task <UpdatePreferencesResponse> UpdatePreferencesAsync(UpdatePreferenceRequest model, string userName)
        {
            var uri  = BaseUri.Append($"project/{Project}/preference/{userName}");
            var body = ModelSerializer.Serialize <UpdatePreferenceRequest>(model);

            var response = await _httpClient.PutAsync(uri, new StringContent(body, Encoding.UTF8, "application/json")).ConfigureAwait(false);

            response.VerifySuccessStatusCode();
            return(ModelSerializer.Deserialize <UpdatePreferencesResponse>(await response.Content.ReadAsStringAsync().ConfigureAwait(false)));
        }