public async Task <object> AddEditPreference(PreferenceRequest request) { if (!ModelState.IsValid) { return(JsonResults.Error(400, ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage.ToString())); } try { var checkPreference = await _preferenceService.CheckPreference(request); if (!checkPreference) { var model = new Preference { UserId = request.UserId, ServiceId = request.ServiceId, Checked = true }; await _preferenceService.AddPreference(model); return(JsonResults.Success(GetPreferenceModel(model))); } var preference = await _preferenceService.GetPreference(request.Id); preference.ServiceId = request.ServiceId; preference.Checked = true; await _preferenceService.UpdatePreference(preference); return(JsonResults.Success(GetPreferenceModel(preference))); } catch (Exception ex) { return(JsonResults.Error(400, ex.Message)); } }