Example #1
0
        /// <summary>
        /// Changes salutation asynchronously.
        /// </summary>
        /// <param name="request">The <see cref="SalutationChangeRequest" /> instance.</param>
        /// <returns>Returns the <see cref="SalutationChangeResponse" /> instance.</returns>
        public async Task <SalutationChangeResponse> ChangeSalutationAsync(SalutationChangeRequest request)
        {
            var handler = this._handlers.SingleOrDefault(p => p.CanHandle(request));

            if (handler == null)
            {
                return(await Task.FromResult(default(SalutationChangeResponse)));
            }

            var ev = handler.CreateEvent(request) as SalutationChangedEvent;

            PopulateBaseProperties(ev);

            SalutationChangeResponse response;

            try
            {
                await this._processor.ProcessEventsAsync(new[] { ev });

                response = new SalutationChangeResponse()
                {
                    Data = new SalutationResponseData()
                    {
                        Value = request.Value
                    }
                };
            }
            catch (Exception ex)
            {
                response = new SalutationChangeResponse()
                {
                    Error = new ResponseError()
                    {
                        Message    = ex.Message,
                        StackTrace = ex.StackTrace,
                    }
                };
            }

            return(await Task.FromResult(response));
        }
        public virtual async Task <SalutationChangeResponse> SetSalutation([FromBody] SalutationChangeRequest request)
        {
            var response = await this._service.ChangeSalutationAsync(request);

            return(response);
        }