示例#1
0
        public async Task <EntityTransactionResult <ServerNodeViewModel> > CreateAsync(ServerNodeViewModel model, VanguardUser user, CancellationToken cancellationToken = default)
        {
            if (await AnyAsync(t => t.Name == model.Name, cancellationToken))
            {
                return(EntityTransactionResult <ServerNodeViewModel> .Failure(EntityTransactionError.CreateUniqueError("Name", model.Name)));
            }

            var entity = new ServerNode
            {
                Name      = model.Name,
                PublicKey = model.PublicKey,
                User      = user
            };

            var result = await _context.ServerNodes.AddAsync(entity, cancellationToken);

            if (await _context.SaveChangesAsync(cancellationToken) == 0)
            {
                return(EntityTransactionResult <ServerNodeViewModel> .Failure(EntityTransactionError.CreateNoResultsError()));
            }

            return(EntityTransactionResult <ServerNodeViewModel> .Success(await ToViewModelAsync(result.Entity, cancellationToken)));
        }