protected async Task <SearchResponse <EmailTemplate> > GetItemsAsync(EmailTemplateIndexRequest request, Expression <Func <EmailTemplate, bool> > whereClause) { var orderBy = GetOrderBy(request.SortColumn, request.IsDescending); var result = await repository.GetPagedListAsync(request.Page, whereClause, orderBy); var response = new SearchResponse <EmailTemplate>(result.ToList(), result.TotalItemCount, result.PageSize); return(response); }
protected override async Task <EmailTemplateIndexResponse> GetItemsAsync(EmailTemplateIndexRequest request) { var search = request.Search; Expression <Func <EmailTemplate, bool> > whereClause = r => search == null || search == "" || r.EmailLabel.Contains(search); var items = await GetItemsAsync(request, whereClause); return(new EmailTemplateIndexResponse(items.Items, items.RecordCount, items.RowsPerPage)); }
public async Task EmailTemplateController_ShouldPerformCrudOperations() { const string EMAIL_LABEL = "IntegrationTest Name"; const string EMAIL_LABEL_UPDATED = "IntegrationTest Name Updated"; Guid defaultId = default; //ensure no remnants of failed tests await EnsureNoCrudRemnants(EMAIL_LABEL); await EnsureNoCrudRemnants(EMAIL_LABEL_UPDATED); //CREATE var createEmailTemplateRequest = new EmailTemplateEditCreateRequest { Name = EMAIL_LABEL }; var controller = classFactory.GetExport <EmailTemplateController>(); var sutDetailsCreate = await controller.Create(createEmailTemplateRequest); sutDetailsCreate.GetStatusCode().ShouldBe(StatusCodes.Status201Created); var insertedItem = sutDetailsCreate.GetValue(); var insertedItemId = insertedItem.Id; //store id for future use insertedItemId.ShouldNotBe(defaultId); //DETAILS sutDetailsCreate = await controller.Details(insertedItemId); sutDetailsCreate.GetStatusCode().ShouldBe(StatusCodes.Status200OK); insertedItem = sutDetailsCreate.GetValue(); insertedItem.ShouldNotBeNull(); insertedItem.EmailLabel.ShouldBe(EMAIL_LABEL); //EDIT var updateEmailTemplateRequest = new EmailTemplateEditCreateRequest { Id = insertedItemId, Name = EMAIL_LABEL_UPDATED, }; sutDetailsCreate = await controller.Edit(updateEmailTemplateRequest); sutDetailsCreate.GetStatusCode().ShouldBe(StatusCodes.Status200OK); //SUGGESTIONS var sutSuggestions = await controller.Suggestions(string.Empty); sutSuggestions.GetStatusCode().ShouldBe(StatusCodes.Status200OK); var suggestions = sutSuggestions.GetValue(); suggestions.ShouldNotBeNull(); suggestions.Count.ShouldBeGreaterThan(0); //INDEX var sutIndex = await controller.Index(null); sutIndex.GetStatusCode().ShouldBe(StatusCodes.Status200OK); var pagedRows = sutIndex.GetValue(); pagedRows.ShouldNotBeNull(); pagedRows.Items.Count.ShouldBeGreaterThan(0); //DELETE var sutDelete = await controller.Delete(insertedItemId, "Integration Test"); sutDelete.GetStatusCode().ShouldBe(StatusCodes.Status200OK); //Retest after Delete //INDEX search deleted row var indexRequest = new EmailTemplateIndexRequest { Search = EMAIL_LABEL_UPDATED }; sutIndex = await controller.Index(indexRequest); sutIndex.GetStatusCode().ShouldBe(StatusCodes.Status200OK); pagedRows = sutIndex.GetValue(); pagedRows.ShouldNotBeNull(); var rowCountAfterDelete = pagedRows.Items.Count; rowCountAfterDelete.ShouldBe(0); // Validate the the row has been deleted sutDetailsCreate = await controller.Details(insertedItemId); sutDetailsCreate.GetStatusCode().ShouldBe(StatusCodes.Status404NotFound); var deletedItem = sutDetailsCreate.GetValue(); deletedItem.ShouldBeNull(); await EnsureNoCrudRemnants(EMAIL_LABEL); await EnsureNoCrudRemnants(EMAIL_LABEL_UPDATED); }
public override async Task <ActionResult <EmailTemplateIndexResponse> > IndexWithParent([FromRoute] Guid parentId, EmailTemplateIndexRequest request) { return(await DoIndexAsync(parentId, request)); }
public override async Task <ActionResult <EmailTemplateIndexResponse> > Index([FromQuery] EmailTemplateIndexRequest request) { return(await DoIndexAsync(request)); }