예제 #1
0
        public virtual async Task <OrganizationPart> Update(OrganizationPart data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            await using var transaction = await _context.Database
                                          .BeginTransactionAsync()
                                          .ConfigureAwait(false);

            try
            {
                _context.OrganizationParts.Update(data);
                await _context.SaveChangesAsync().ConfigureAwait(false);

                await transaction.CommitAsync().ConfigureAwait(false);

                return(data);
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync().ConfigureAwait(false);

                throw new Exception(e.Message);
            }
        }
        public override async Task <OrganizationPart> Update(OrganizationPart data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            var isExist = await IsPartExist(data.LeftHandPart, data.RightHandPart)
                          .ConfigureAwait(false);

            if (!isExist)
            {
                return(await base.Update(data).ConfigureAwait(false));
            }

            throw new OperationCanceledException(
                      $"Unable to update part number because {data.LeftHandPart} - {data.RightHandPart} already exist in the database"
                      );
        }
예제 #3
0
        public async Task <IActionResult> PutMachine(OrganizationPart data)
        {
            if (data == null)
            {
                return(BadRequest());
            }

            try
            {
                var result = await _service.Update(data).ConfigureAwait(false);

                return(Ok(result));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }