Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }