can you please explain this a little bit more, having explored the samples like the Blogging modules.
I can't see a reason why the API have to be implemented in *.HTTPApi
as they are all being implemented, so wouldn't it be better to just automagiclly create them ?
hmmmm thats not good .... it would be good if that was documented somewhere
Why, ABP create them automatically right?? if i follow the BookStore Tutorial then it is all automatic no need to create API Controller
If i have to create a APIController in what project ?
API are not automatically generated
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Acme.Software.SimpleTask.Tasks
{
public interface ITaskAppService : IApplicationService
{
Task<ListResultDto<TaskDto>> GetAllAsync(GetAllTasksInput input);
}
}
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
namespace Acme.Software.SimpleTask.Tasks
{
public class TaskAppService : SimpleTaskAppService, ITaskAppService
{
private readonly IRepository<Task, Guid> _taskRepository;
public TaskAppService(IRepository<Task, Guid> taskRepository)
{
_taskRepository = taskRepository;
}
public async Task<ListResultDto<TaskDto>> GetAllAsync(GetAllTasksInput input)
{
var tasks = await AsyncExecuter.ToListAsync(_taskRepository
.WhereIf(input.State.HasValue, t => t.State == input.State.Value)
.OrderByDescending(t => t.CreationTime)
);
return new ListResultDto<TaskDto>(ObjectMapper.Map<List<Task>, List<TaskDto>>(tasks));
}
}
}
Solution Structure is as follws
[01:42:45 ERR] Error occured while adding the module Volo.AuditLogging.Uiwith source-code to the solution "431ca24a-8d94-4fbf-b22b-810fb47d684b".. System.ArgumentNullException: Value cannot be null. (Parameter 'path') at System.IO.Path.GetFullPath(String path) at System.IO.DirectoryInfo..ctor(String path) at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.RemoveProjectByPostFix(ModuleWithMastersInfo module, String moduleSolutionFile, String targetFolder, String postFix) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 209 at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.RemoveUnnecessaryProjectsAsync(String solutionDirectory, ModuleWithMastersInfo module, String[] projectFiles) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 167 at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.AddAsync(String solutionFile, String moduleName, String startupProject, String version, Boolean skipDbMigrations, Boolean withSourceCode, Boolean addSourceCodeToSolutionFile, Boolean newTemplate, Boolean newProTemplate) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 102 at Volo.Abp.Cli.Commands.AddModuleCommand.ExecuteAsync(CommandLineArgs commandLineArgs) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Commands\AddModuleCommand.cs:line 59 at Volo.Abp.Suite.Controllers.AbpSuiteController.AddModuleAsync(AddModuleInput input)
ABP Framework version: v3.3.0
UI type: MVC
Tiered (MVC) or Identity Server Seperated (Angular): no
Exception message and stack trace:
Steps to reproduce the issue:
the folder which the solution is in is actually C:\Amazing\Projects\3-3-0\Amazing.BookStore