private async Task <ApiDocumentResponseModel> CreateRecord(ApiClient client) { var model = new ApiDocumentRequestModel(); model.SetProperties(2, BitConverter.GetBytes(2), 2, "B", "B", "B", true, DateTime.Parse("1/1/1988 12:00:00 AM"), 2, "B", 2, "B"); CreateResponse <ApiDocumentResponseModel> result = await client.DocumentCreateAsync(model); result.Success.Should().BeTrue(); return(result.Record); }
public virtual async Task <IActionResult> Create([FromBody] ApiDocumentRequestModel model) { CreateResponse <ApiDocumentResponseModel> result = await this.DocumentService.Create(model); if (result.Success) { return(this.Created($"{this.Settings.ExternalBaseUrl}/api/Documents/{result.Record.Rowguid}", result)); } else { return(this.StatusCode(StatusCodes.Status422UnprocessableEntity, result)); } }
public virtual async Task <CreateResponse <ApiDocumentResponseModel> > Create( ApiDocumentRequestModel model) { CreateResponse <ApiDocumentResponseModel> response = new CreateResponse <ApiDocumentResponseModel>(await this.DocumentModelValidator.ValidateCreateAsync(model)); if (response.Success) { var bo = this.BolDocumentMapper.MapModelToBO(default(Guid), model); var record = await this.DocumentRepository.Create(this.DalDocumentMapper.MapBOToEF(bo)); response.SetRecord(this.BolDocumentMapper.MapBOToModel(this.DalDocumentMapper.MapEFToBO(record))); } return(response); }
private async Task <ApiDocumentRequestModel> PatchModel(Guid id, JsonPatchDocument <ApiDocumentRequestModel> patch) { var record = await this.DocumentService.Get(id); if (record == null) { return(null); } else { ApiDocumentRequestModel request = this.DocumentModelMapper.MapResponseToRequest(record); patch.ApplyTo(request); return(request); } }
public async Task <ValidationResult> ValidateUpdateAsync(Guid id, ApiDocumentRequestModel model) { this.ChangeNumberRules(); this.Document1Rules(); this.DocumentLevelRules(); this.DocumentSummaryRules(); this.FileExtensionRules(); this.FileNameRules(); this.FolderFlagRules(); this.ModifiedDateRules(); this.OwnerRules(); this.RevisionRules(); this.StatusRules(); this.TitleRules(); return(await this.ValidateAsync(model, id)); }
public async void Create() { var mock = new ServiceMockFacade <IDocumentRepository>(); var model = new ApiDocumentRequestModel(); mock.RepositoryMock.Setup(x => x.Create(It.IsAny <Document>())).Returns(Task.FromResult(new Document())); var service = new DocumentService(mock.LoggerMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.DocumentModelValidatorMock.Object, mock.BOLMapperMockFactory.BOLDocumentMapperMock, mock.DALMapperMockFactory.DALDocumentMapperMock); CreateResponse <ApiDocumentResponseModel> response = await service.Create(model); response.Should().NotBeNull(); mock.ModelValidatorMockFactory.DocumentModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiDocumentRequestModel>())); mock.RepositoryMock.Verify(x => x.Create(It.IsAny <Document>())); }
public async void Delete() { var mock = new ServiceMockFacade <IDocumentRepository>(); var model = new ApiDocumentRequestModel(); mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <Guid>())).Returns(Task.CompletedTask); var service = new DocumentService(mock.LoggerMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.DocumentModelValidatorMock.Object, mock.BOLMapperMockFactory.BOLDocumentMapperMock, mock.DALMapperMockFactory.DALDocumentMapperMock); ActionResponse response = await service.Delete(default(Guid)); response.Should().NotBeNull(); mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <Guid>())); mock.ModelValidatorMockFactory.DocumentModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <Guid>())); }
public virtual async Task <UpdateResponse <ApiDocumentResponseModel> > Update( Guid rowguid, ApiDocumentRequestModel model) { var validationResult = await this.DocumentModelValidator.ValidateUpdateAsync(rowguid, model); if (validationResult.IsValid) { var bo = this.BolDocumentMapper.MapModelToBO(rowguid, model); await this.DocumentRepository.Update(this.DalDocumentMapper.MapBOToEF(bo)); var record = await this.DocumentRepository.Get(rowguid); return(new UpdateResponse <ApiDocumentResponseModel>(this.BolDocumentMapper.MapBOToModel(this.DalDocumentMapper.MapEFToBO(record)))); } else { return(new UpdateResponse <ApiDocumentResponseModel>(validationResult)); } }
public void MapResponseToRequest() { var mapper = new ApiDocumentModelMapper(); var model = new ApiDocumentResponseModel(); model.SetProperties(Guid.Parse("8420cdcf-d595-ef65-66e7-dff9f98764da"), 1, BitConverter.GetBytes(1), 1, "A", "A", "A", true, DateTime.Parse("1/1/1987 12:00:00 AM"), 1, "A", 1, "A"); ApiDocumentRequestModel response = mapper.MapResponseToRequest(model); response.ChangeNumber.Should().Be(1); response.Document1.Should().BeEquivalentTo(BitConverter.GetBytes(1)); response.DocumentLevel.Should().Be(1); response.DocumentSummary.Should().Be("A"); response.FileExtension.Should().Be("A"); response.FileName.Should().Be("A"); response.FolderFlag.Should().Be(true); response.ModifiedDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM")); response.Owner.Should().Be(1); response.Revision.Should().Be("A"); response.Status.Should().Be(1); response.Title.Should().Be("A"); }
public virtual async Task <IActionResult> Update(Guid id, [FromBody] ApiDocumentRequestModel model) { ApiDocumentRequestModel request = await this.PatchModel(id, this.DocumentModelMapper.CreatePatch(model)); if (request == null) { return(this.StatusCode(StatusCodes.Status404NotFound)); } else { UpdateResponse <ApiDocumentResponseModel> result = await this.DocumentService.Update(id, request); if (result.Success) { return(this.Ok(result)); } else { return(this.StatusCode(StatusCodes.Status422UnprocessableEntity, result)); } } }
public virtual BODocument MapModelToBO( Guid rowguid, ApiDocumentRequestModel model ) { BODocument boDocument = new BODocument(); boDocument.SetProperties( rowguid, model.ChangeNumber, model.Document1, model.DocumentLevel, model.DocumentSummary, model.FileExtension, model.FileName, model.FolderFlag, model.ModifiedDate, model.Owner, model.Revision, model.Status, model.Title); return(boDocument); }
public void CreatePatch() { var mapper = new ApiDocumentModelMapper(); var model = new ApiDocumentRequestModel(); model.SetProperties(1, BitConverter.GetBytes(1), 1, "A", "A", "A", true, DateTime.Parse("1/1/1987 12:00:00 AM"), 1, "A", 1, "A"); JsonPatchDocument <ApiDocumentRequestModel> patch = mapper.CreatePatch(model); var response = new ApiDocumentRequestModel(); patch.ApplyTo(response); response.ChangeNumber.Should().Be(1); response.Document1.Should().BeEquivalentTo(BitConverter.GetBytes(1)); response.DocumentLevel.Should().Be(1); response.DocumentSummary.Should().Be("A"); response.FileExtension.Should().Be("A"); response.FileName.Should().Be("A"); response.FolderFlag.Should().Be(true); response.ModifiedDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM")); response.Owner.Should().Be(1); response.Revision.Should().Be("A"); response.Status.Should().Be(1); response.Title.Should().Be("A"); }
public virtual async Task <IActionResult> Patch(Guid id, [FromBody] JsonPatchDocument <ApiDocumentRequestModel> patch) { ApiDocumentResponseModel record = await this.DocumentService.Get(id); if (record == null) { return(this.StatusCode(StatusCodes.Status404NotFound)); } else { ApiDocumentRequestModel model = await this.PatchModel(id, patch); UpdateResponse <ApiDocumentResponseModel> result = await this.DocumentService.Update(id, model); if (result.Success) { return(this.Ok(result)); } else { return(this.StatusCode(StatusCodes.Status422UnprocessableEntity, result)); } } }