Esempio n. 1
0
        public CrudModule(IDataContext dataContext, IValidator widgetValidator, IEventHub eventHub, ICrudService crudService, ISettings settings)
        {
            Post($"/api/v1/{settings.EntityName}/", async parameters =>
            {
                var rtn = await crudService.Add(dataContext, MakeModel(), widgetValidator);
                if (rtn.Success)
                {
                    await eventHub.OnCreated(rtn.Result);
                }
                return(rtn);
            });

            Put($"/api/v1/{settings.EntityName}/", async parameters =>
            {
                var rtn = await crudService.Update(dataContext, MakeModel(), widgetValidator);
                if (rtn.Success)
                {
                    await eventHub.OnUpdated(rtn.Result);
                }
                return(rtn);
            });

            Delete($"/api/v1/{settings.EntityName}/", async parameters =>
            {
                var rtn = await crudService.Delete(dataContext, MakeModel(), widgetValidator);
                if (rtn.Success)
                {
                    await eventHub.OnDeleted(rtn.Result);
                }
                return(rtn);
            });
        }