public async Task <string> Handle(DeletePersonAssetCommand request, CancellationToken cancellationToken) { using (_context) { PersonAsset toDeletePersonAsset = new PersonAsset(); toDeletePersonAsset = await(from a in _context.PersonAsset where a.Id == request.Id select a).FirstOrDefaultAsync(); if (toDeletePersonAsset != null) { _context.PersonAsset.Remove(toDeletePersonAsset); await _context.SaveChangesAsync(cancellationToken); } } return(string.Empty); }
public async Task <List <SearchedPersonAsset> > Handle(SavePersonAssetCommand request, CancellationToken cancellationToken) { List <SearchedPersonAsset> result = new List <SearchedPersonAsset>(); if (request.Id == null || request.Id == default(decimal)) { int CurrentUserId = await _currentUser.GetUserId(); using (var transaction = _context.Database.BeginTransaction()) { try { using (_context) { PersonAsset personAsset = new PersonAsset() { PersonId = request.PersonId, AssetTypeId = request.AssetTypeId, ModifiedOn = request.ModifiedOn, ModifiedBy = request.ModifiedBy, ReferenceNo = request.ReferenceNo, CreatedOn = request.CreatedOn, CreatedBy = request.CreatedBy, Description = request.Description, Value = request.Value }; _context.PersonAsset.Add(personAsset); await _context.SaveChangesAsync(CurrentUserId, cancellationToken); result = await _mediator.Send(new Queries.SearchPersonAssetQuery() { Id = personAsset.Id }); transaction.Commit(); } } catch (Exception ex) { transaction.Rollback(); throw new Exception(); } } } else { using (_context) { PersonAsset toUpdateRecord = await(from ps in _context.PersonAsset where ps.Id == request.Id select ps).SingleOrDefaultAsync(); toUpdateRecord.PersonId = request.PersonId; toUpdateRecord.AssetTypeId = request.AssetTypeId; toUpdateRecord.ModifiedOn = request.ModifiedOn; toUpdateRecord.ModifiedBy = request.ModifiedBy; toUpdateRecord.ReferenceNo = request.ReferenceNo; toUpdateRecord.CreatedOn = request.CreatedOn; toUpdateRecord.CreatedBy = request.CreatedBy; toUpdateRecord.Description = request.Description; toUpdateRecord.Value = request.Value; await _context.SaveChangesAsync(cancellationToken); result = await _mediator.Send(new Queries.SearchPersonAssetQuery() { Id = toUpdateRecord.Id }); } } return(result); }