/// <summary> /// Creates the <see cref="Gender"/> object. /// </summary> /// <param name="value">The <see cref="Gender"/> object.</param> /// <returns>A refreshed <see cref="Gender"/> object.</returns> public Task <Gender> CreateAsync(Gender value) { return(ManagerInvoker.Default.InvokeAsync(this, async() => { ExecutionContext.Current.OperationType = OperationType.Create; EntityBase.CleanUp(value); if (_createOnPreValidateAsync != null) { await _createOnPreValidateAsync(value).ConfigureAwait(false); } MultiValidator.Create() .Add(value.Validate(nameof(value)).Mandatory().Entity(new ReferenceDataValidator <Gender>())) .Additional((__mv) => _createOnValidate?.Invoke(__mv, value)) .Run().ThrowOnError(); if (_createOnBeforeAsync != null) { await _createOnBeforeAsync(value).ConfigureAwait(false); } var __result = await GenderDataSvc.CreateAsync(value).ConfigureAwait(false); if (_createOnAfterAsync != null) { await _createOnAfterAsync(__result).ConfigureAwait(false); } Cleaner.Clean(__result); return __result; })); }
#pragma warning restore CS0649 #endregion /// <summary> /// Gets the <see cref="Gender"/> object that matches the selection criteria. /// </summary> /// <param name="id">The <see cref="Gender"/> identifier.</param> /// <returns>The selected <see cref="Gender"/> object where found; otherwise, <c>null</c>.</returns> public Task <Gender> GetAsync(Guid id) { return(ManagerInvoker.Default.InvokeAsync(this, async() => { ExecutionContext.Current.OperationType = OperationType.Read; EntityBase.CleanUp(id); if (_getOnPreValidateAsync != null) { await _getOnPreValidateAsync(id).ConfigureAwait(false); } MultiValidator.Create() .Add(id.Validate(nameof(id)).Mandatory()) .Additional((__mv) => _getOnValidate?.Invoke(__mv, id)) .Run().ThrowOnError(); if (_getOnBeforeAsync != null) { await _getOnBeforeAsync(id).ConfigureAwait(false); } var __result = await GenderDataSvc.GetAsync(id).ConfigureAwait(false); if (_getOnAfterAsync != null) { await _getOnAfterAsync(__result, id).ConfigureAwait(false); } Cleaner.Clean(__result); return __result; })); }