public async Task <IActionResult> Delete([FromRoute] int id) { var user = await GetUser(); var todo = await _todoService.GetById(id); if (todo == null) { return(BadRequest("Invalid id")); } if (user.Id != todo.User.Id) { return(Forbid()); } todo = await _todoService.Delete(id); var response = new TodoResponse() { Title = todo.Title, Description = todo.Description, IsComplete = todo.IsComplete, LastUpdate = todo.LastUpdate }; return(Ok(response)); }
public static void WriteToConsole(this TodoResponse todoResponse) { if (!todoResponse.IsSuccess) { Console.WriteLine("Error: " + todoResponse.ErrorMessage); } if (todoResponse.Operation == EnumOperation.List || todoResponse.Operation == EnumOperation.ListCompleted) { if (todoResponse.TaskList != null && todoResponse.TaskList.Any()) { var table = new ConsoleTable("NAME", "COMPLETED"); todoResponse.TaskList.ForEach(item => { table.AddRow(item.Title, GetCompleteChar(item.IsCompleted)); }); table.Write(Format.Minimal); } else { string listMode = todoResponse.Operation == EnumOperation.ListCompleted ? " completed " : " "; Console.WriteLine($"No{listMode}tasks exist"); } } }
/* //Comment/Uncomment this block to enable in memory cache for 10 seconds * [CacheOutput(ClientTimeSpan = 10, ServerTimeSpan = 10)] */ /// <summary> /// GET Api method to return all the todo items from database /// </summary> /// <returns>TodoResponse objct</returns> /// GET: api/ToDo public TodoResponse GetToDoes() { TodoResponse todoResponse = new TodoResponse(); ResponseHeader responseHeader = new ResponseHeader(); ResponseBody responseBody = new ResponseBody(); List <ToDo> lstTodo = new List <ToDo>(); List <Error> errorlist = new List <Error>(); HttpStatusCode statusCode = HttpStatusCode.OK; string statusMessage = AppConstants.Success; try { lstTodo = _repository.getAllTodo(); } catch (Exception ex) { statusCode = HttpStatusCode.NotModified; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + ex.Message; errorlist.Add(new Error(strErrorMsg, AppConstants.SYSTEM_EXEPTION)); Logger.WriteLog(strErrorMsg + AppConstants.Stack_Trace + ex.StackTrace); } responseHeader.statusMessage = statusMessage; responseHeader.statusCode = statusCode; responseHeader.error = errorlist; responseBody.todo = lstTodo; todoResponse.responseHeader = responseHeader; todoResponse.responseBody = responseBody; return(todoResponse); }
/// <summary> /// Gets a collection of Todos. /// </summary> /// <param name="request">The Todo Request message</param> /// <param name="context">The context for the RPC call</param> /// <returns>A Todo Response containing a collection of available Todos</returns> public override Task <TodoResponse> GetTodos(TodoRequest request, ServerCallContext context) { var response = new TodoResponse(); response.Todos.AddRange(_todos.Where(t => t.UserId == request.UserId)); return(Task.FromResult(response)); }
public void Test_DeleteToDo() { MockTodoRepository mockToDoObj = new MockTodoRepository(); ToDoController tc = new ToDoController(mockToDoObj); TodoResponse apiToDoResponse = tc.DeleteToDo(2); Assert.AreEqual(AppConstants.Success, apiToDoResponse.responseHeader.statusMessage); Assert.AreEqual(HttpStatusCode.OK, apiToDoResponse.responseHeader.statusCode); }
public void Test_GetToDo_By_Id_Throws_eception() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.getTodoById(It.IsAny <int>())).Throws(new Exception()); ToDoController tc = new ToDoController(mockRepository.Object); TodoResponse response = tc.GetToDo(2); Assert.AreEqual(response.responseHeader.error[0].errorCode, AppConstants.SYSTEM_EXEPTION); Assert.IsTrue(response.responseHeader.error[0].errorMessage.Contains("System.Exception")); }
public TodoResponse GetToDo(int id) { TodoResponse todoResponse = new TodoResponse(); ResponseHeader responseHeader = new ResponseHeader(); ResponseBody responseBody = new ResponseBody(); List <Error> errorlist = new List <Error>(); string statusMessage = string.Empty; HttpStatusCode statusCode; try { ToDo toDo = _repository.getTodoById(id); if (toDo == null) { statusMessage = AppConstants.Error; statusCode = HttpStatusCode.NotFound; // multiple values can go into the error message depending on different conditions errorlist.Add(new Error(string.Format(AppConstants.TODO_NOT_FOUND_MSG, id), AppConstants.TODO_NOT_FOUND)); } else { statusMessage = AppConstants.Success; statusCode = HttpStatusCode.OK; List <ToDo> lstToDo = new List <ToDo>(); lstToDo.Add(toDo); responseBody.todo = lstToDo; } } catch (Exception Ex) { statusCode = HttpStatusCode.NotModified; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + Ex.Message; Logger.WriteLog(strErrorMsg + AppConstants.Stack_Trace + Ex.StackTrace); errorlist.Add(new Error(strErrorMsg, AppConstants.SYSTEM_EXEPTION)); } //Write to log file if error is present if (errorlist.Count > 0) { //logging error messaages errorlist.ForEach(error => Logger.WriteLog(AppConstants.Error + "in GetToDo() for ID : " + id + AppConstants.Error_Code + error.errorCode + AppConstants.Error_Message + error.errorMessage)); //foreach (var error in errorlist) //{ // Logger.WriteLog(AppConstants.Error + "in GetToDo() for ID : " + id + AppConstants.Error_Code + error.errorCode + AppConstants.Error_Message + error.errorMessage); //} } responseHeader.statusCode = statusCode; responseHeader.statusMessage = statusMessage; responseHeader.error = errorlist; todoResponse.responseHeader = responseHeader; todoResponse.responseBody = responseBody; return(todoResponse); }
public void Test_UpdateToDo_Add() { MockTodoRepository mockToDoObj = new MockTodoRepository(); ToDoController tc = new ToDoController(mockToDoObj); ToDo toDoITem = new ToDo { SlNo = 0, Item = "Insert Test", Description = "Test the Post api" }; TodoResponse apiToDoResponse = tc.AddNewToDo(toDoITem); Assert.AreEqual(AppConstants.Success, apiToDoResponse.responseHeader.statusMessage); Assert.AreEqual(HttpStatusCode.OK, apiToDoResponse.responseHeader.statusCode); }
public void Test_PutToDo_Edit() { MockTodoRepository mockToDoObj = new MockTodoRepository(); ToDoController tc = new ToDoController(mockToDoObj); ToDo toDoITem = new ToDo { SlNo = 0, Item = "Edit Test", Description = "Test the Put api" }; TodoResponse apiToDoResponse = tc.PutToDo(0, toDoITem); // If edit took place, header will have success message Assert.AreEqual(AppConstants.Success, apiToDoResponse.responseHeader.statusMessage); Assert.AreEqual(HttpStatusCode.OK, apiToDoResponse.responseHeader.statusCode); }
public void Test_PutToDo_Internal_Server_Error() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.save(It.IsAny <ToDo>())).Returns(0); ToDoController tc = new ToDoController(mockRepository.Object); ToDo toDoITem = new ToDo { SlNo = 2, Item = "Item", Description = "Desc" }; TodoResponse apiToDoResponse = tc.PutToDo(2, toDoITem); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorCode, AppConstants.SAVE_FAILED); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorMessage, AppConstants.SAVE_FAILED_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.InternalServerError); }
public void Test_UpdateToDo_Id_Empty_Input() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); ToDoController tc = new ToDoController(mockRepository.Object); ToDo toDoITem = new ToDo { SlNo = 2, Item = "", Description = "" }; TodoResponse apiToDoResponse = tc.AddNewToDo(toDoITem); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorCode, AppConstants.ITEM_EMPTY); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorMessage, AppConstants.ITEM_EMPTY_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.error[1].errorCode, AppConstants.DESCRIPTION_EMPTY); Assert.AreEqual(apiToDoResponse.responseHeader.error[1].errorMessage, AppConstants.DESCRIPTION_EMPTY_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.BadRequest); }
public void Test_GetToDoes_All() { MockTodoRepository mockToDoObj = new MockTodoRepository(); ToDoController tc = new ToDoController(mockToDoObj); // injecting mock repo into controller TodoResponse apiToDoResponse = tc.GetToDoes(); List <ToDo> ltsToDo = mockToDoObj.getAllTodo().ToList(); int iCountApi = apiToDoResponse.responseBody.todo.Count; int iCountMock = ltsToDo.Count; Assert.AreEqual(iCountApi, iCountMock); for (int i = 0; i < iCountApi; i++) { Assert.AreEqual(apiToDoResponse.responseBody.todo[i].Item, ltsToDo[i].Item); Assert.AreEqual(apiToDoResponse.responseBody.todo[i].Description, ltsToDo[i].Description); Assert.AreEqual(apiToDoResponse.responseBody.todo[i].SlNo, ltsToDo[i].SlNo); } }
public void Test_PutToDo_Id_Different() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.save(It.IsAny <ToDo>())).Returns(1); ToDoController tc = new ToDoController(mockRepository.Object); ToDo toDoITem = new ToDo { SlNo = 2, Item = "Edit Test", Description = "Test the Put api" }; TodoResponse apiToDoResponse = tc.PutToDo(0, toDoITem); // If edit took place, header will have success message Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.BadRequest); }
public void Test_PutToDo_Id_Empty_Input() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.save(It.IsAny <ToDo>())).Returns(1); ToDoController tc = new ToDoController(mockRepository.Object); ToDo toDoITem = new ToDo { SlNo = 2, Item = "", Description = "" }; TodoResponse apiToDoResponse = tc.PutToDo(2, toDoITem); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorCode, AppConstants.ITEM_EMPTY); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorMessage, AppConstants.ITEM_EMPTY_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.error[1].errorCode, AppConstants.DESCRIPTION_EMPTY); Assert.AreEqual(apiToDoResponse.responseHeader.error[1].errorMessage, AppConstants.DESCRIPTION_EMPTY_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.BadRequest); }
public async Task <ActionResult> Get([FromBody] TodoResponse todo) { try { string serializedTodo = JsonConvert.SerializeObject(todo); using (var producer = new ProducerBuilder <Null, string>(_config).Build()) { await producer.ProduceAsync("temp-topic-two", new Message <Null, string> { Value = serializedTodo }); producer.Flush(TimeSpan.FromSeconds(10)); return(Ok(true)); } } catch (Exception ex) { throw; } }
static async Task Main(string[] args) { var todoApi = RestService.For <ITodoApi>("https://localhost:44311/"); Console.WriteLine("Creating Todo Item..."); var createTodoResponse = await todoApi.CreateAsync(new CreateTodoRequest { Name = "Todo Item Created from SDK", IsCompleted = false }); TodoResponse todoResponse = createTodoResponse.Content; Console.WriteLine($"Name:{todoResponse.Name} ({todoResponse.Id})"); Console.WriteLine($"Completed: {todoResponse.IsCompleted}"); var todoItemId = todoResponse.Id; Console.WriteLine("\nUpdating Todo Item..."); var updateTodoResponse = await todoApi.UpdateAsync(todoItemId, new UpdateTodoRequest { IsCompleted = true }); todoResponse = updateTodoResponse.Content; Console.WriteLine($"Name:{todoResponse.Name} ({todoResponse.Id})"); Console.WriteLine($"Completed: {todoResponse.IsCompleted}"); Console.WriteLine("\nDeleting Todo Item..."); var deleteTodoResponse = await todoApi.DeleteAsync(todoItemId); Console.WriteLine("\nGetting All Todo Items..."); var getAllTodoResponse = await todoApi.GetAllAsync(); var todoItems = getAllTodoResponse.Content; Console.WriteLine($"Todo Items Remaining: {todoItems.Count}"); Console.ReadKey(); }
public void Test_UpdateToDo_Internal_Server_Error() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.insert(It.IsAny <ToDo>())).Returns(0); ToDoController tc = new ToDoController(mockRepository.Object); MockTodoRepository mockObj = new MockTodoRepository(); List <ToDo> getAllTodo = mockObj.getAllTodo(); mockRepository.Setup(mr => mr.getAllTodo()).Returns(getAllTodo); ToDo toDoITem = new ToDo { SlNo = 2, Item = "Item", Description = "Desc" }; TodoResponse apiToDoResponse = tc.AddNewToDo(toDoITem); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorCode, AppConstants.INSERT_FAILED); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorMessage, AppConstants.INSERT_FAILED_MSG); Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.InternalServerError); }
public void Test_UpdateToDo_Item_Already_Exist() { Mock <ITodoRepository> mockRepository = new Mock <ITodoRepository>(); mockRepository.Setup(mr => mr.save(It.IsAny <ToDo>())).Returns(1); MockTodoRepository mockObj = new MockTodoRepository(); List <ToDo> getAllTodo = mockObj.getAllTodo(); mockRepository.Setup(mr => mr.getAllTodo()).Returns(getAllTodo); ToDoController tc = new ToDoController(mockRepository.Object); ToDo toDoITem = new ToDo { SlNo = 1, Item = "Item1", Description = "Desc Item1" }; TodoResponse apiToDoResponse = tc.AddNewToDo(toDoITem); Assert.AreEqual(apiToDoResponse.responseHeader.statusMessage, AppConstants.Error); Assert.AreEqual(apiToDoResponse.responseHeader.statusCode, HttpStatusCode.Conflict); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorCode, AppConstants.TODO_ALREADY_EXIST); Assert.AreEqual(apiToDoResponse.responseHeader.error[0].errorMessage, AppConstants.TODO_ALREADY_EXIST_MSG); }
public TodoResponse PutToDo(int id, ToDo toDo) { TodoResponse todoResponse = new TodoResponse(); ResponseHeader responseHeader = new ResponseHeader(); ResponseBody responseBody = new ResponseBody(); List <Error> errorlist = new List <Error>(); HttpStatusCode statusCode; string statusMessage = string.Empty; errorlist = ValidateUtility.ValidateInput(toDo); try { if (!ModelState.IsValid) { statusCode = HttpStatusCode.BadRequest; statusMessage = AppConstants.Error; errorlist.Add(new Error(AppConstants.MODAL_STATE_INVALID, AppConstants.BAD_REQUEST)); } //Check if any of the input parameters are empty else if (errorlist.Count > 0) { statusCode = HttpStatusCode.BadRequest; statusMessage = AppConstants.Error; //add mulitple error if needed to errorlist errorlist.ForEach(e => Logger.WriteLog(e.errorMessage)); } // check if the ids in the request match else if (id != toDo.SlNo) { statusCode = HttpStatusCode.BadRequest; statusMessage = AppConstants.Error; //add mulitple error if needed to errorlist errorlist.Add(new Error(AppConstants.TODO_ID_MISMATCH_MSG, AppConstants.TODO_ID_MISMATCH)); } // Perform the Edit operation else { // Database update int result = _repository.save(toDo); // return value and check the status and handle error if (result > 0) { statusCode = HttpStatusCode.OK; statusMessage = AppConstants.Success; } else { statusCode = HttpStatusCode.InternalServerError; statusMessage = AppConstants.Error; errorlist.Add(new Error(AppConstants.SAVE_FAILED_MSG, AppConstants.SAVE_FAILED)); } } } catch (DbUpdateConcurrencyException dbEx) { // If the Id for Deletion is not present in the database if (!ToDoIdExists(id)) { statusCode = HttpStatusCode.NotFound; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + dbEx.Message; errorlist.Add(new Error(strErrorMsg, AppConstants.TODO_NOT_FOUND)); Logger.WriteLog(AppConstants.Error_Message + strErrorMsg + AppConstants.Inner_Exception + dbEx.InnerException + AppConstants.Stack_Trace + dbEx.StackTrace + AppConstants.Soure + dbEx.Source); } else { // This will be caught and handled in the ToDoCustomException handler throw; } } //Write to log file if error is present if (errorlist.Count > 0) { errorlist.ForEach(error => Logger.WriteLog(AppConstants.Error + " in PutToDo() for ID : " + id + AppConstants.Error_Code + error.errorCode + AppConstants.Error_Message + error.errorMessage)); } responseHeader.statusCode = statusCode; responseHeader.statusMessage = statusMessage; responseHeader.error = errorlist; todoResponse.responseHeader = responseHeader; responseBody.todo = _repository.getAllTodo(); todoResponse.responseBody = responseBody; return(todoResponse); }
public TodoResponse DeleteToDo(int id) { TodoResponse todoResponse = new TodoResponse(); ResponseHeader responseHeader = new ResponseHeader(); ResponseBody responseBody = new ResponseBody(); string statusMessage = string.Empty; HttpStatusCode statusCode; List <Error> errorlist = new List <Error>(); try { ToDo toDo = _repository.getTodoById(id); //If the item to delete is not present in database if (null == toDo) { statusCode = HttpStatusCode.NotFound; statusMessage = AppConstants.Error; Error error = new Error(string.Format(AppConstants.TODO_NOT_FOUND_MSG, id), AppConstants.TODO_NOT_FOUND); errorlist.Add(error); } else { // return value and check the status and handle error // Database delete takes place here if (_repository.remove(toDo) > 0) { statusCode = HttpStatusCode.OK; statusMessage = AppConstants.Success; } else { statusCode = HttpStatusCode.InternalServerError; statusMessage = AppConstants.Error; errorlist.Add(new Error(AppConstants.DELETE_FAILED_MSG, AppConstants.DELETE_FAILED)); } } } catch (Exception ex) { statusCode = HttpStatusCode.NotModified; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + ex.Message; Error error = new Error(strErrorMsg, AppConstants.TODO_DELETE_ERROR); errorlist.Add(error); Logger.WriteLog(AppConstants.Error_Message + ex.Message + AppConstants.Inner_Exception + ex.InnerException + AppConstants.Stack_Trace + ex.StackTrace + AppConstants.Soure + ex.Source); } //Write to log file if error is present if (errorlist.Count > 0) { errorlist.ForEach(error => Logger.WriteLog(AppConstants.Error + " in DeleteToDo() for ID : " + id + AppConstants.Error_Code + error.errorCode + AppConstants.Error_Message + error.errorMessage)); } responseHeader.statusCode = statusCode; responseHeader.statusMessage = statusMessage; responseHeader.error = errorlist; todoResponse.responseHeader = responseHeader; responseBody.todo = _repository.getAllTodo(); todoResponse.responseBody = responseBody; return(todoResponse); }
public GetTodoResponse(Todo todo) { Todo = new TodoResponse(todo); }
public async Task Get() { TodoService.Url = Url; TodoService.Client = Http.CreateClient(); Response = await TodoService.Get(Id); }
public async Task NewTodo() { TodoService.Url = Url; TodoService.Client = Http.CreateClient(); Response = await TodoService.Add(Request); }
[HttpPost] // Routing by explicitly specifying the HTTP Action type in the header public TodoResponse AddNewToDo(ToDo toDo) { TodoResponse todoResponse = new TodoResponse(); ResponseHeader responseHeader = new ResponseHeader(); ResponseBody responseBody = new ResponseBody(); HttpStatusCode statusCode; List <Error> errorlist = new List <Error>(); string statusMessage = string.Empty; errorlist = ValidateUtility.ValidateInput(toDo); try { if (!ModelState.IsValid) { statusCode = HttpStatusCode.BadRequest; statusMessage = AppConstants.Error; errorlist.Add(new Error(AppConstants.MODAL_STATE_INVALID, AppConstants.BAD_REQUEST)); } //Check if any of the input parameters are empty else if (errorlist.Count > 0) { statusCode = HttpStatusCode.BadRequest; statusMessage = AppConstants.Error; errorlist.ForEach(e => Logger.WriteLog(e.errorMessage)); } else { // Check if the item with same descrition is already present if (ValidateUtility.ToDoExists(_repository.getAllTodo(), toDo)) { statusCode = HttpStatusCode.Conflict; statusMessage = AppConstants.Error; Error error = new Error(AppConstants.TODO_ALREADY_EXIST_MSG, AppConstants.TODO_ALREADY_EXIST); errorlist.Add(error); Logger.WriteLog(AppConstants.TODO_ALREADY_EXIST_MSG); } //If item not present, then insert new data else { // return value and check the status and handle error // Database insertion takes place here if (_repository.insert(toDo) > 0) { statusCode = HttpStatusCode.OK; statusMessage = AppConstants.Success; } // If database insertion failed then handle the exception else { statusCode = HttpStatusCode.InternalServerError; statusMessage = AppConstants.Error; errorlist.Add(new Error(AppConstants.INSERT_FAILED_MSG, AppConstants.INSERT_FAILED)); } } } } catch (DbUpdateException dbEx) { //If To Do item is already present in database with same id if (ToDoIdExists(toDo.SlNo)) { statusCode = HttpStatusCode.Conflict; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + dbEx.Message + AppConstants.Inner_Exception + dbEx.InnerException + AppConstants.Stack_Trace + dbEx.StackTrace + AppConstants.Soure + dbEx.Source; Error error = new Error(AppConstants.TODO_ALREADY_EXIST_MSG, AppConstants.TODO_ALREADY_EXIST); errorlist.Add(error); Logger.WriteLog(strErrorMsg); } else { statusCode = HttpStatusCode.InternalServerError; statusMessage = AppConstants.Error; string strErrorMsg = AppConstants.Error_Message + dbEx.Message; errorlist.Add(new Error(AppConstants.INTERNAL_SERVER_ERROR_MSG, AppConstants.INTERNAL_SERVER_ERROR)); Logger.WriteLog(AppConstants.Error_Message + strErrorMsg + AppConstants.Inner_Exception + dbEx.InnerException + AppConstants.Stack_Trace + dbEx.StackTrace + AppConstants.Soure + dbEx.Source); } } //Write to log file if error is present if (errorlist.Count > 0) { //foreach (var error in errorlist) //{ // Logger.WriteLog(AppConstants.Error + " in PostToDo() " +AppConstants.Error_Code // + error.errorCode + AppConstants.Error_Message + error.errorMessage); //} errorlist.ForEach(error => Logger.WriteLog(AppConstants.Error + " in PostToDo() " + AppConstants.Error_Code + error.errorCode + AppConstants.Error_Message + error.errorMessage)); } responseHeader.statusCode = statusCode; responseHeader.statusMessage = statusMessage; responseHeader.error = errorlist; todoResponse.responseHeader = responseHeader; responseBody.todo = _repository.getAllTodo(); todoResponse.responseBody = responseBody; return(todoResponse); }