public async Task <IActionResult> Search([FromBody] SearchMessagesRequest request)
        {
            try
            {
                var thisUserId = ClaimsExtractor.GetUserIdClaim(User.Claims);

                var messages = await messagesService.SearchForMessages(
                    request.deviceId,
                    request.searchString,
                    request.offset,
                    request.count,
                    thisUserId);

                return(Ok(new ResponseApiModel <List <Message> >
                {
                    IsSuccessfull = true,
                    Response = messages
                }));
            }
            catch (InvalidDataException ex)
            {
                return(BadRequest(new ResponseApiModel <bool>
                {
                    IsSuccessfull = false,
                    ErrorMessage = ex.Message
                }));
            }
            catch (UnauthorizedAccessException ex)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden, new ResponseApiModel <bool>
                {
                    IsSuccessfull = false,
                    ErrorMessage = ex.Message
                }));
            }
            catch (KeyNotFoundException ex)
            {
                return(NotFound(new ResponseApiModel <bool>
                {
                    IsSuccessfull = false,
                    ErrorMessage = ex.Message
                }));
            }
            catch (Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ResponseApiModel <bool>
                {
                    IsSuccessfull = false
                }));
            }
        }
Esempio n. 2
0
 public SearchMessagesRequestHandler(Request request, ClientConnection clientConnection, ILoadMessagesService loadMessagesService)
 {
     this.request             = (SearchMessagesRequest)request;
     this.clientConnection    = clientConnection;
     this.loadMessagesService = loadMessagesService;
 }
 public void SearchMessages(SearchMessagesRequest searchMessagesRequest)
 {
     SendRequest(searchMessagesRequest.ToXML());
 }