Esempio n. 1
0
        public async Task <GetInvoiceForEditOutput> GetInvoiceForEdit(EntityDto input)
        {
            var result = new InvoiceEditDto();
            var header = await Repository
                         .GetAllIncluding(x => x.Customer, x => x.Salesman)
                         .FirstOrDefaultAsync(x => x.Id == input.Id);

            if (header != null)
            {
                ObjectMapper.Map(header, result);
                var details = await _invoiceDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.InvoiceHeaderId == header.Id)
                              .ToListAsync();

                result.InvoiceDetails = ObjectMapper.Map <List <InvoiceEditDetailsDto> >(details);
            }

            var invoiceEditDto = ObjectMapper.Map <InvoiceEditDto>(result);

            return(new GetInvoiceForEditOutput
            {
                EditInvoice = invoiceEditDto
            });
        }
Esempio n. 2
0
        protected override void DataPortal_Update()
        {
            SimpleAuditTrail();
            var dto = new InvoiceEditDto();

            dto.InvoiceId     = InvoiceId;
            dto.InvoiceNumber = InvoiceNumber;
            dto.CustomerId    = CustomerId;
            dto.InvoiceDate   = ReadProperty(InvoiceDateProperty);
            dto.ChangeDate    = ChangeDate;
            dto.ChangeUser    = ChangeUser;
            dto.RowVersion    = RowVersion;
            using (var dalManager = DalFactoryInvoices.GetManager())
            {
                var args = new DataPortalHookArgs(dto);
                OnUpdatePre(args);
                var dal = dalManager.GetProvider <IInvoiceEditDal>();
                using (BypassPropertyChecks)
                {
                    var resultDto = dal.Update(dto);
                    LoadProperty(RowVersionProperty, resultDto.RowVersion);
                    args = new DataPortalHookArgs(resultDto);
                }
                OnUpdatePost(args);
                // flushes all pending data operations
                FieldManager.UpdateChildren(this);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Updates in the database all changes made to the InvoiceEdit object.
        /// </summary>
        /// <param name="invoiceEdit">The Invoice Edit DTO.</param>
        /// <returns>The updated <see cref="InvoiceEditDto"/>.</returns>
        public InvoiceEditDto Update(InvoiceEditDto invoiceEdit)
        {
            using (var ctx = ConnectionManager <SqlConnection> .GetManager("Invoices"))
            {
                using (var cmd = new SqlCommand("dbo.UpdateInvoiceEdit", ctx.Connection))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@InvoiceId", invoiceEdit.InvoiceId).DbType             = DbType.Guid;
                    cmd.Parameters.AddWithValue("@InvoiceNumber", invoiceEdit.InvoiceNumber).DbType     = DbType.String;
                    cmd.Parameters.AddWithValue("@CustomerId", invoiceEdit.CustomerId).DbType           = DbType.StringFixedLength;
                    cmd.Parameters.AddWithValue("@InvoiceDate", invoiceEdit.InvoiceDate.DBValue).DbType = DbType.Date;
                    cmd.Parameters.AddWithValue("@ChangeDate", invoiceEdit.ChangeDate.DBValue).DbType   = DbType.DateTime2;
                    cmd.Parameters.AddWithValue("@ChangeUser", invoiceEdit.ChangeUser).DbType           = DbType.Int32;
                    cmd.Parameters.AddWithValue("@RowVersion", invoiceEdit.RowVersion).DbType           = DbType.UInt64;
                    cmd.Parameters.Add("@NewRowVersion", SqlDbType.BigInt).Direction = ParameterDirection.Output;
                    var rowsAffected = cmd.ExecuteNonQuery();
                    if (rowsAffected == 0)
                    {
                        throw new DataNotFoundException("InvoiceEdit");
                    }

                    invoiceEdit.RowVersion = BitConverter.GetBytes(((long)cmd.Parameters["@NewRowVersion"].Value));
                }
            }
            return(invoiceEdit);
        }
        /// <summary>
        /// 编辑Invoice
        /// </summary>

        protected virtual async Task Update(InvoiceEditDto input)
        {
            //TODO:更新前的逻辑判断,是否允许更新

            var entity = await _entityRepository.GetAsync(input.Id.Value);

            input.MapTo(entity);

            // ObjectMapper.Map(input, entity);
            await _entityRepository.UpdateAsync(entity);
        }
        /// <summary>
        /// 新增Invoice
        /// </summary>

        protected virtual async Task <InvoiceEditDto> Create(InvoiceEditDto input)
        {
            //TODO:新增前的逻辑判断,是否允许新增

            // var entity = ObjectMapper.Map <Invoice>(input);
            var entity = input.MapTo <Invoice>();


            entity = await _entityRepository.InsertAsync(entity);

            return(entity.MapTo <InvoiceEditDto>());
        }
Esempio n. 6
0
        /// <summary>
        /// Loads a <see cref="InvoiceEdit"/> object from the given <see cref="InvoiceEditDto"/>.
        /// </summary>
        /// <param name="data">The InvoiceEditDto to use.</param>
        private void Fetch(InvoiceEditDto data)
        {
            // Value properties
            LoadProperty(InvoiceIdProperty, data.InvoiceId);
            LoadProperty(InvoiceNumberProperty, data.InvoiceNumber);
            LoadProperty(CustomerIdProperty, data.CustomerId);
            LoadProperty(InvoiceDateProperty, data.InvoiceDate);
            LoadProperty(CreateDateProperty, data.CreateDate);
            LoadProperty(CreateUserProperty, data.CreateUser);
            LoadProperty(ChangeDateProperty, data.ChangeDate);
            LoadProperty(ChangeUserProperty, data.ChangeUser);
            LoadProperty(RowVersionProperty, data.RowVersion);
            var args = new DataPortalHookArgs(data);

            OnFetchRead(args);
        }
Esempio n. 7
0
        public async Task <InvoiceEditDto> GetInvoiceAsync(int invoiceId)
        {
            var result   = new InvoiceEditDto();
            var invoices = await Repository
                           .GetAllIncluding(x => x.Customer, x => x.Salesman)
                           .FirstOrDefaultAsync(x => x.Id == invoiceId);

            if (invoices != null)
            {
                ObjectMapper.Map(invoices, result);
                var details = await _invoiceDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.InvoiceHeaderId == invoices.Id)
                              .ToListAsync();

                result.InvoiceDetails = ObjectMapper.Map <List <InvoiceEditDetailsDto> >(details);
            }

            return(result);
        }
        /// <summary>
        /// 获取编辑 Invoice
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>

        public async Task <GetInvoiceForEditOutput> GetForEdit(NullableIdDto <int> input)
        {
            var            output = new GetInvoiceForEditOutput();
            InvoiceEditDto editDto;

            if (input.Id.HasValue)
            {
                var entity = await _entityRepository.GetAsync(input.Id.Value);

                editDto = entity.MapTo <InvoiceEditDto>();

                //invoiceEditDto = ObjectMapper.Map<List<invoiceEditDto>>(entity);
            }
            else
            {
                editDto = new InvoiceEditDto();
            }

            output.Invoice = editDto;
            return(output);
        }
Esempio n. 9
0
 /// <summary>
 /// Inserts a new InvoiceEdit object in the database.
 /// </summary>
 /// <param name="invoiceEdit">The Invoice Edit DTO.</param>
 /// <returns>The new <see cref="InvoiceEditDto"/>.</returns>
 public InvoiceEditDto Insert(InvoiceEditDto invoiceEdit)
 {
     using (var ctx = ConnectionManager <SqlConnection> .GetManager("Invoices"))
     {
         using (var cmd = new SqlCommand("dbo.AddInvoiceEdit", ctx.Connection))
         {
             cmd.CommandType = CommandType.StoredProcedure;
             cmd.Parameters.AddWithValue("@InvoiceId", invoiceEdit.InvoiceId).DbType             = DbType.Guid;
             cmd.Parameters.AddWithValue("@InvoiceNumber", invoiceEdit.InvoiceNumber).DbType     = DbType.String;
             cmd.Parameters.AddWithValue("@CustomerId", invoiceEdit.CustomerId).DbType           = DbType.StringFixedLength;
             cmd.Parameters.AddWithValue("@InvoiceDate", invoiceEdit.InvoiceDate.DBValue).DbType = DbType.Date;
             cmd.Parameters.AddWithValue("@CreateDate", invoiceEdit.CreateDate.DBValue).DbType   = DbType.DateTime2;
             cmd.Parameters.AddWithValue("@CreateUser", invoiceEdit.CreateUser).DbType           = DbType.Int32;
             cmd.Parameters.AddWithValue("@ChangeDate", invoiceEdit.ChangeDate.DBValue).DbType   = DbType.DateTime2;
             cmd.Parameters.AddWithValue("@ChangeUser", invoiceEdit.ChangeUser).DbType           = DbType.Int32;
             cmd.Parameters.Add("@NewRowVersion", SqlDbType.BigInt).Direction = ParameterDirection.Output;
             cmd.ExecuteNonQuery();
             invoiceEdit.RowVersion = (byte[])cmd.Parameters["@NewRowVersion"].Value;
         }
     }
     return(invoiceEdit);
 }
Esempio n. 10
0
        private InvoiceEditDto Fetch(IDataReader data)
        {
            var invoiceEdit = new InvoiceEditDto();

            using (var dr = new SafeDataReader(data))
            {
                if (dr.Read())
                {
                    invoiceEdit.InvoiceId     = dr.GetGuid("InvoiceId");
                    invoiceEdit.InvoiceNumber = dr.GetString("InvoiceNumber");
                    invoiceEdit.CustomerId    = dr.GetString("CustomerId");
                    invoiceEdit.InvoiceDate   = dr.GetSmartDate("InvoiceDate", true);
                    invoiceEdit.CreateDate    = dr.GetSmartDate("CreateDate", true);
                    invoiceEdit.CreateUser    = dr.GetInt32("CreateUser");
                    invoiceEdit.ChangeDate    = dr.GetSmartDate("ChangeDate", true);
                    invoiceEdit.ChangeUser    = dr.GetInt32("ChangeUser");
                    invoiceEdit.RowVersion    = dr.GetValue("RowVersion") as byte[];
                }
                FetchChildren(dr);
            }
            return(invoiceEdit);
        }
 /// <summary>
 /// Inserts a new InvoiceEdit object in the database.
 /// </summary>
 /// <param name="invoiceEdit">The Invoice Edit DTO.</param>
 /// <returns>The new <see cref="InvoiceEditDto"/>.</returns>
 public InvoiceEditDto Insert(InvoiceEditDto invoiceEdit)
 {
     using (var ctx = ConnectionManager <OracleConnection> .GetManager("Invoices"))
     {
         using (var cmd = new OracleCommand("dbo.AddInvoiceEdit", ctx.Connection))
         {
             cmd.CommandType = CommandType.StoredProcedure;
             cmd.Parameters.Add("@InvoiceId", invoiceEdit.InvoiceId).DbType             = DbType.Guid;
             cmd.Parameters.Add("@InvoiceNumber", invoiceEdit.InvoiceNumber).DbType     = DbType.String;
             cmd.Parameters.Add("@CustomerId", invoiceEdit.CustomerId).DbType           = DbType.StringFixedLength;
             cmd.Parameters.Add("@InvoiceDate", invoiceEdit.InvoiceDate.DBValue).DbType = DbType.Date;
             cmd.Parameters.Add("@CreateDate", invoiceEdit.CreateDate.DBValue).DbType   = DbType.DateTime2;
             cmd.Parameters.Add("@CreateUser", invoiceEdit.CreateUser).DbType           = DbType.Int32;
             cmd.Parameters.Add("@ChangeDate", invoiceEdit.ChangeDate.DBValue).DbType   = DbType.DateTime2;
             cmd.Parameters.Add("@ChangeUser", invoiceEdit.ChangeUser).DbType           = DbType.Int32;
             cmd.Parameters.Add("@NewRowVersion", OracleDbType.TimeStamp).Direction     = ParameterDirection.Output;
             cmd.ExecuteNonQuery();
             invoiceEdit.RowVersion = BitConverter.GetBytes(((DateTime)cmd.Parameters["@NewRowVersion"].Value).Ticks);
         }
     }
     return(invoiceEdit);
 }