public virtual async Task CreateWithSpecifiedIdAsync(string id, Invoice item, CancellationToken token = default(CancellationToken)) { ServiceContract.RequireNotNullOrWhiteSpace(id, nameof(id)); ServiceContract.RequireNotNull(item, nameof(item)); ServiceContract.RequireValidated(item, nameof(item)); await CrudController.CreateWithSpecifiedIdAsync(id, item, token); }
public async Task PublishAsync(Guid id, JObject content) { ServiceContract.RequireNotNull(id, nameof(id)); ServiceContract.RequireNotDefaultValue(id, nameof(id)); await new BusinessEvents(BusinessEventsBaseUrl, _tenant, _tokenRefresher.GetServiceClient()).PublishAsync(id, content); }
public async Task <string> Create([FromBody] User user) { ServiceContract.RequireNotNull(user, nameof(user)); ServiceContract.RequireValidated(user, nameof(user)); return(await _persistance.CreateAsync(user)); }
public async Task <string> CreateAsync(Applicant item, CancellationToken token = new CancellationToken()) { ServiceContract.RequireNotNull(item, nameof(item)); ServiceContract.RequireValidated(item, nameof(item)); ServiceContract.Require(item.Id == null, $"The {nameof(item.Id)} field must be null."); return(await Capability.ApplicantService.CreateAsync(item, token)); }
public async Task <AccessToken> Token(AuthenticationCredentials credentials) { ServiceContract.RequireNotNull(credentials, nameof(credentials)); ServiceContract.RequireNotNullOrWhitespace(credentials.ClientId, nameof(credentials.ClientId)); ServiceContract.RequireNotNullOrWhitespace(credentials.ClientSecret, nameof(credentials.ClientSecret)); return(await _authenticationService.GetTokenForTenant(credentials)); }
public async Task UserCreatedAsync(UserCreatedEvent eventBody) { ServiceContract.RequireNotNull(eventBody, nameof(eventBody)); await Task.Yield(); //Remove this line throw new FulcrumNotFoundException("Method POST /User/Created/1 is not yet implemented - Part of tutorial 4"); }
public async Task UserCreatedAsync(UserCreatedEvent eventBody) { ServiceContract.RequireNotNull(eventBody, nameof(eventBody)); // TODO: implement await Task.Yield(); }
public async Task <IHttpActionResult> LogAsync(LogInstanceInformation message) { ServiceContract.RequireNotNull(message, nameof(message)); ServiceContract.RequireValidated(message, nameof(message)); await FulcrumApplication.Setup.FullLogger.LogAsync(message); return(new StatusCodeResult(HttpStatusCode.Accepted, this)); }
public async Task <IPersonProfile> UpdateAsync(ServicePersonProfile item) { ServiceContract.RequireNotNull(item, nameof(item)); ServiceContract.RequireValidated(item, nameof(item)); var personProfile = await PersonProfilesFunctionality.UpdateAsync(item); FulcrumAssert.IsNotNull(personProfile, $"{Namespace}: 56B82634-89A6-4EE4-969D-B7FFB4F9C016"); FulcrumAssert.IsValidated(personProfile, $"{Namespace}: 56B82634-89A6-4EE4-969D-B7FFB4F9C016"); return(personProfile); }
public async Task <Location> GeocodeAsync(Address address) { ServiceContract.RequireNotNull(address, nameof(address)); ServiceContract.RequireValidated(address, nameof(address)); var location = await GeocodingFunctionality.GeocodeAsync(address); FulcrumAssert.IsNotNull(location, $"{Namespace}: 56B82634-89A6-4EE4-969D-B7FFB4F9C016"); FulcrumAssert.IsValidated(location, $"{Namespace}: 56B82634-89A6-4EE4-969D-B7FFB4F9C016"); return(location); }
public async Task <string> Create([FromBody] User user) { ServiceContract.RequireNotNull(user, nameof(user)); ServiceContract.RequireValidated(user, nameof(user)); var id = await _persistance.CreateAsync(user); throw new FulcrumNotImplementedException("Method /Users is not yet implemented - Part of tutorial 3"); return(id); }
public Task CatchAllEventsAsync(string entityName, string eventName, int majorVersion, dynamic eventBody) { ServiceContract.RequireNotNullOrWhitespace(entityName, nameof(entityName)); ServiceContract.RequireNotNullOrWhitespace(eventName, nameof(eventName)); ServiceContract.RequireGreaterThanOrEqualTo(1, majorVersion, nameof(majorVersion)); ServiceContract.RequireNotNull(eventBody, nameof(eventBody)); throw new FulcrumNotImplementedException($"The event {entityName}.{eventName} version {majorVersion} is not yet supported."); }
public async Task <string> PostAsync(User user) { ServiceContract.RequireNotNull(user, nameof(user)); ServiceContract.RequireValidated(user, nameof(user)); await new BatchTranslate(_translateClient, "mobile-app", "customer-master") .Add("user.type", user.Type, translatedValue => user.Type = translatedValue) .ExecuteAsync(); return(await _customerMasterClient.AddUser(user)); }
public async Task <User> PutAsync(string id, User user) { ServiceContract.RequireNotNullOrWhitespace(id, nameof(id)); ServiceContract.RequireNotNull(user, nameof(user)); ServiceContract.RequireValidated(user, nameof(user)); await new BatchTranslate(_translateClient, "mobile-app", "customer-master") .Add("user.type", user.Type, translatedValue => user.Type = translatedValue) .ExecuteAsync(); throw new FulcrumNotImplementedException("Method PUT /Users/{id} is not yet implemented - Part of tutorial 1"); }
public async Task <HealthResponse> ServiceHealthAsync() { ServiceContract.RequireNotNull(_tenant, nameof(_tenant)); ServiceContract.RequireValidated(_tenant, nameof(_tenant)); var aggregator = new ResourceHealthAggregator(_tenant, "Api"); aggregator.AddHealthResponse(await CheckAuthentication()); aggregator.AddHealthResponse(await CheckLogging()); aggregator.AddHealthResponse(await CheckValueTranslation()); aggregator.AddHealthResponse(await CheckVisualNotificationCapability()); aggregator.AddHealthResponse(await CheckCustomerMasterCapability()); aggregator.AddHealthResponse(await CheckStatisticsCapability()); return(aggregator.GetAggregatedHealthResponse()); }
public async Task <Product> UpdateProduct(Product product) { ServiceContract.RequireNotNull(product, nameof(product)); ServiceContract.RequireValidated(product, nameof(product)); var bllProduct = ToBll(product); bllProduct = await _productFunctionality.Update(bllProduct); var result = FromBll(bllProduct); FulcrumAssert.IsNotNull(result, nameof(result)); FulcrumAssert.IsValidated(result, $"{Namespace}: 27A74E83-C31A-4A87-B8C6-1FE5A7FF9F85"); return(result); }
public async Task <Product> CreateProduct(Product product) { ServiceContract.RequireNotNull(product, nameof(product)); ServiceContract.RequireValidated(product, nameof(product)); var bllProduct = ToBll(product); bllProduct = await _productFunctionality.CreateAsync(bllProduct); var result = FromBll(bllProduct); FulcrumAssert.IsNotNull(result, nameof(result)); FulcrumAssert.IsValidated(result, $"{Namespace}: 41042A82-2D71-427F-BBBF-9CDC7545E590"); return(result); }
public void NullObject() { const string parameterName = "parameterName"; try { object nullObject = null; // ReSharper disable once ExpressionIsAlwaysNull ServiceContract.RequireNotNull(nullObject, parameterName); Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Fail("An exception should have been thrown"); } catch (FulcrumServiceContractException fulcrumException) { Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsTrue(fulcrumException.TechnicalMessage.Contains(parameterName)); } catch (Exception e) { Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Fail($"Expected a specific FulcrumException but got {e.GetType().FullName}."); } }
public async Task Publish(string entityName, string eventName, int major, int minor, JObject content) { ServiceContract.RequireNotNull(entityName, nameof(entityName)); ServiceContract.RequireNotNull(eventName, nameof(eventName)); ServiceContract.RequireGreaterThan(0, major, nameof(major)); ServiceContract.RequireGreaterThanOrEqualTo(0, minor, nameof(minor)); ServiceContract.RequireNotNull(content, nameof(content)); var correlationId = FulcrumApplication.Context.CorrelationId; var test = await _testLogic.GetAsync(correlationId); if (test != null) { try { var client = FulcrumApplication.Context.CallingClientName; var payload = JObject.FromObject(content); var result = await _integrationApiClient.TestBenchPublish(entityName, eventName, major, minor, client, payload); if (result.Verified) { await _integrationApiClient.PublishEvent(entityName, eventName, major, minor, client, payload); await _testLogic.SetStateAsync(test, StateEnum.Ok, "Event intercepted and verified with BE Test bench"); } else { var message = string.Join(", ", result.Errors) + $" | Contract: {JsonConvert.SerializeObject(result.Contract)}" + $" | Payload: {JsonConvert.SerializeObject(result.Payload)}"; await _testLogic.SetStateAsync(test, StateEnum.Failed, message); } } catch (Exception e) { await _testLogic.SetStateAsync(test, StateEnum.Failed, e.Message); } } }