public async Task <IActionResult> AddSystemFunction([FromBody] AddSystemFunctionRequest request) { if (request.IsNull()) { return(ModelNullError()); } var identityClaims = (ClaimsIdentity)User.Identity; var model = new SysFunctionAddCommandRequest { TransferObject = request }; var result = await Mediator.Send(model); return(HandleResponse(result, r => r)); }
public async Task <OperationResult <SysFunctionAddCommandResponse> > Handle(SysFunctionAddCommandRequest request, CancellationToken cancellationToken) { var response = new SysFunctionAddCommandResponse(request.MessageId); OperationResult <SysFunctionAddCommandResponse> result; //Validate Unique Name var function = await _dbContext.SystemFunction.SingleOrDefaultAsync(u => u.Name == request.TransferObject.Name); if (function.NotNull()) { result = new OperationResult <SysFunctionAddCommandResponse>(EnumOperationResult.Duplicate, new List <ValidationError> { new ValidationError(nameof(request.TransferObject.Name), "System Function Name already exists") }); } else { function = new SystemFunction { DisplayName = request.TransferObject.DisplayName, Name = request.TransferObject.Name, SystemFunctionGroupId = request.TransferObject.GroupId }; await _dbContext.SystemFunction.AddAsync(function, cancellationToken); await _dbContext.SaveChangesAsync(cancellationToken); result = new OperationResult <SysFunctionAddCommandResponse>(EnumOperationResult.Ok, null, response); result.AddDomainEvent(new SystemFunctionAddEvent { Id = response.FunctionId, }); } return(result); }