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 }); }
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); } }
/// <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>()); }
/// <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); }
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); }
/// <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); }
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); }