Exemplo n.º 1
0
        public async Task <UserPreferenceV1Result> CreateUserPreference([FromBody] UpsertUserPreferenceRequest request, [FromQuery] bool allowUpdate = false)
        {
            var methodName = $"{nameof(CreateUserPreference)}";

            Logger.LogInformation($"{methodName} request: {0}", JsonConvert.SerializeObject(request));

            request.TargetUserUID = ValidateUserUid(request.TargetUserUID);

            UserPreferenceV1Result result = null;
            var existing = await PreferenceRepo.GetUserPreference(request.TargetUserUID.Value, request.PreferenceKeyName);

            if (existing == null)
            {
                result = await WithServiceExceptionTryExecuteAsync(() =>
                                                                   RequestExecutorContainerFactory
                                                                   .Build <CreateUserPreferenceExecutor>(LoggerFactory, ServiceExceptionHandler, PreferenceRepo)
                                                                   .ProcessAsync(AutoMapperUtility.Automapper.Map <CreateUserPreferenceEvent>(request))
                                                                   ) as UserPreferenceV1Result;
            }
            else if (allowUpdate)
            {
                result = await WithServiceExceptionTryExecuteAsync(() =>
                                                                   RequestExecutorContainerFactory
                                                                   .Build <UpdateUserPreferenceExecutor>(LoggerFactory, ServiceExceptionHandler, PreferenceRepo)
                                                                   .ProcessAsync(AutoMapperUtility.Automapper.Map <UpdateUserPreferenceEvent>(request))
                                                                   ) as UserPreferenceV1Result;
            }
            else
            {
                ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest, 13);
            }

            Logger.LogResult(methodName, JsonConvert.SerializeObject(request), result);
            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Use the request to construct the expected result
        /// </summary>
        private UserPreferenceV1Result ConstructExpectedResult(UpsertUserPreferenceRequest request)
        {
            var expectedUserPref = new UserPreferenceV1Result();

            expectedUserPref.PreferenceKeyName = request.PreferenceKeyName;
            expectedUserPref.PreferenceKeyUID  = request.PreferenceKeyUID.Value;
            expectedUserPref.SchemaVersion     = request.SchemaVersion;
            expectedUserPref.PreferenceJson    = request.PreferenceJson;
            return(expectedUserPref);
        }