public async Task <string> Order(string input) { string[] inputSplited = input.Split(','); if (!ValidateInput(inputSplited)) { throw new InvalidInputException("Invalid parameters!"); } var dayTime = Enum.Parse <DayTime>(inputSplited[0]); inputSplited = inputSplited.Where((source, index) => index != 0).ToArray(); var output = _dayTimeStrategy.CalculateOrder(inputSplited, dayTime); var order = BuildOrder(input, output); await _orderWriteRepository.Add(order); return(output); }