コード例 #1
0
        public async Task <BlResult <ConnectionModel> > SaveAsync(ConnectionModel connectionModel)
        {
            BlResult <ConnectionModel> blResult = new BlResult <ConnectionModel>();

            try
            {
                if (connectionModel is null)
                {
                    throw new ArgumentNullException(nameof(connectionModel));
                }

                EnsureTransaction();

                var fetchedEntity = await _connectionRepository.GetByIdWithReferencAsync(connectionModel.Id);

                fetchedEntity = _mapper.Map(connectionModel, fetchedEntity);
                fetchedEntity.OverwritesId = null;

                if (connectionModel.Id > 0)
                {
                    _connectionRepository.Edit(fetchedEntity);
                }
                else
                {
                    fetchedEntity = _connectionRepository.Add(fetchedEntity);
                }

                await SaveChangesAsync();

                blResult.Success(_mapper.Map <ConnectionModel>(fetchedEntity));
            }
            catch (ArgumentNullException)
            {
                blResult.Fail(BLErrorCodeTypeEnum.ArgumentIsNull);
            }
            catch (Exception ex)
            {
                blResult.Fail(BLErrorCodeTypeEnum.Unknown, ex.Message, ex);
            }

            return(blResult);
        }