public static EmailTemplate ToEntity(this EmailTemplateEditCreateRequest dto) { return(new EmailTemplate { Id = dto.Id, EmailLabel = dto.Name }); }
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); }
protected override async Task <EmailTemplateDetailsCreateResponse> AddItemAsync(EmailTemplateEditCreateRequest request) { var entity = request.ToEntity(); entity.Id = Guid.NewGuid(); var newEntity = await repository.AddAsync(entity); return(newEntity.ToDto()); }
protected override async Task <EmailTemplateDetailsCreateResponse> EditItemAsync(EmailTemplateEditCreateRequest request) { var entity = request.ToEntity(); await repository.UpdateAsync(entity); return(entity.ToDto()); }
public override async Task <ActionResult> Edit([FromBody] EmailTemplateEditCreateRequest request) { return(await DoEditAsync(request)); }
public override async Task <ActionResult <EmailTemplateDetailsCreateResponse> > Create([FromBody] EmailTemplateEditCreateRequest request) { return(await DoCreateAsync(request)); }