/// <summary> /// Calculates the word count. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <Result <CalculateWordCountResponse> > CalculateWordCount(CalculateWordCountRequest request) { _logger.LogTrace($"ReaderBusinessLogic: Entering CalculateWordCount method: {@request}", request); Result <CalculateWordCountResponse> response = new Result <CalculateWordCountResponse>(); if (!IsRequestValid <CalculateWordCountRequest, CalculateWordCountRequestValidator, CalculateWordCountResponse>(request, ref response)) { return(response); } try { var dataRequest = _mapper.Map <CalculateWordCountRequest, DataModel.Requests.CalculateWordCountRequest>(request); var dataResponse = await _calculationService.CalculateWordCount(dataRequest); response.Data = _mapper.Map <DataModel.Responses.CalculateWordCountResponse, CalculateWordCountResponse>(dataResponse); } catch (Exception ex) { _logger.LogError(ex, $"ReaderBusinessLogic: Error in CalculateWordCount: {@request}", request); response.ErrorMessage = _sharedLocalizer["FrendlyErrorMessage"]; } return(response); }
public async Task <CalculateWordCountResponse> CalculateWordCount(CalculateWordCountRequest request) { var result = new CalculateWordCountResponse(); var text = request.InputText; int count = 0; int i = 0; int ind = 0; while (i < text.Length) { if (text[i] == ' ' || text[i] == '\n' || text[i] == '\t') { ind = 0; } else if (ind == 0) { ind = 1; count++; } i++; } result.TotalWordCount = count; return(result); }
/// <summary> /// Calculates the word count from file. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <Result <CalculateWordCountResponse> > CalculateWordCountFromFile(Stream stream) { _logger.LogTrace($"ReaderBusinessLogic: Entering CalculateWordCountFromFile method: {@stream}", stream.ToString()); Result <CalculateWordCountResponse> response = new Result <CalculateWordCountResponse>(); try { string textDataFromFile = String.Empty; using (var streamreader = new StreamReader(stream)) { textDataFromFile = streamreader.ReadToEnd(); } var requestData = new CalculateWordCountRequest { InputText = textDataFromFile }; return(await CalculateWordCount(requestData)); } catch (Exception ex) { _logger.LogError(ex, $"ReaderBusinessLogic: Error in CalculateWordCount: {@stream}", stream.ToString()); response.ErrorMessage = _sharedLocalizer["FrendlyErrorMessage"]; } return(response); }
/// <summary> /// Calculates the word count from database. /// </summary> /// <returns></returns> public async Task <Result <CalculateWordCountResponse> > CalculateWordCountFromDB() { _logger.LogTrace($"ReaderBusinessLogic: Entering CalculateWordCountFromDB method"); Result <CalculateWordCountResponse> response = new Result <CalculateWordCountResponse>(); try { var textFromDB = await _textRepository.GetByIdAsync(1); var requestData = new CalculateWordCountRequest { InputText = textFromDB.TextData }; return(await CalculateWordCount(requestData)); } catch (Exception ex) { _logger.LogError(ex, $"ReaderBusinessLogic: Error in CalculateWordCount"); response.ErrorMessage = _sharedLocalizer["FrendlyErrorMessage"]; } return(response); }
public async Task <IActionResult> CalculateWordCount([FromBody] CalculateWordCountRequest request) { return(Ok(await _readerBusinessLogic.CalculateWordCount(request))); }