Example #1
0
        protected override void DataPortal_Update()
        {
            var dto = new CustomerEditDto();

            dto.CustomerId   = CustomerId;
            dto.Name         = Name;
            dto.FiscalNumber = FiscalNumber;
            dto.AddressLine1 = AddressLine1;
            dto.AddressLine2 = AddressLine2;
            dto.ZipCode      = ZipCode;
            dto.State        = State;
            dto.Country      = Country;
            using (var dalManager = DalFactoryInvoices.GetManager())
            {
                var args = new DataPortalHookArgs(dto);
                OnUpdatePre(args);
                var dal = dalManager.GetProvider <ICustomerEditDal>();
                using (BypassPropertyChecks)
                {
                    var resultDto = dal.Update(dto);
                    args = new DataPortalHookArgs(resultDto);
                }
                OnUpdatePost(args);
            }
        }
        /// <summary>
        /// 新增Customer
        /// </summary>

        protected virtual async Task <CustomerEditDto> CreateCustomerAsync(CustomerEditDto input)
        {
            var temp = await _customerRepository.CountAsync(c => c.Key == input.Key);

            if (temp > 0)
            {
                throw new UserFriendlyException("该用户已经注册");
            }
            var entity = ObjectMapper.Map <Customer>(input);
            var family = await _familyRepository.FirstOrDefaultAsync(c => !c.IsSecret);

            if (family == null)
            {
                var code = Guid.NewGuid().ToString("D").Split('-').Last();
                family = await _familyRepository.InsertAsync(new Family()
                {
                    IsSecret = false,
                    Name     = code,
                    Key      = code
                });
            }
            entity.Family = family.Key;
            var count = await _customerRepository.CountAsync(c => c.Family == family.Key);

            entity.FamilyCode = count + 1;
            entity.Title      = FamilyConsts.GetTitle(entity.FamilyCode.Value);
            entity            = await _customerRepository.InsertAsync(entity);

            return(entity.MapTo <CustomerEditDto>());
        }
        private void Add(CustomerEditDto dto)
        {
            ValidateEditDto(dto);

            if (DataDbContext.Set <Customer>().Any(c => c.MobilePhoneNumber != null && c.MobilePhoneNumber == dto.MobilePhoneNumber && c.RealName == dto.RealName))
            {
                throw new Exception($"错误,用户名:{dto.RealName},手机号:{dto.MobilePhoneNumber}的用户已经存在,请检查后重试!");
            }

            var customer = dto.MapTo <Customer>();

            if (dto.CustomerCategoryId > 0)
            {
                var category = DataDbContext.Set <CustomerCategory>().FirstOrDefault(cc => cc.Id == dto.CustomerCategoryId);
                if (category == null)
                {
                    throw new Exception($"错误,Id={dto.CustomerCategoryId} 的客户分类不存在!");
                }

                customer.CustomerCategory = category;
            }
            customer.CreatorTime    = DateTime.Now;
            customer.LastModifyTime = DateTime.Now;
            DataDbContext.Set <Customer>().Add(customer);
            DataDbContext.SaveChanges();
        }
Example #4
0
 /// <summary>
 /// Updates in the database all changes made to the CustomerEdit object.
 /// </summary>
 /// <param name="customerEdit">The Customer Edit DTO.</param>
 /// <returns>The updated <see cref="CustomerEditDto"/>.</returns>
 public CustomerEditDto Update(CustomerEditDto customerEdit)
 {
     using (var ctx = ConnectionManager <OracleConnection> .GetManager("Invoices"))
     {
         GetQueryUpdateCustomerEdit(customerEdit);
         using (var cmd = new OracleCommand(updateCustomerEditInlineQuery, ctx.Connection))
         {
             cmd.CommandType = CommandType.Text;
             cmd.Parameters.Add("@CustomerId", customerEdit.CustomerId).DbType = DbType.StringFixedLength;
             cmd.Parameters.Add("@Name", customerEdit.Name).DbType             = DbType.String;
             cmd.Parameters.Add("@FiscalNumber", customerEdit.FiscalNumber == null ? (object)DBNull.Value : customerEdit.FiscalNumber).DbType = DbType.String;
             cmd.Parameters.Add("@AddressLine1", customerEdit.AddressLine1 == null ? (object)DBNull.Value : customerEdit.AddressLine1).DbType = DbType.String;
             cmd.Parameters.Add("@AddressLine2", customerEdit.AddressLine2 == null ? (object)DBNull.Value : customerEdit.AddressLine2).DbType = DbType.String;
             cmd.Parameters.Add("@ZipCode", customerEdit.ZipCode == null ? (object)DBNull.Value : customerEdit.ZipCode).DbType       = DbType.String;
             cmd.Parameters.Add("@State", customerEdit.State == null ? (object)DBNull.Value : customerEdit.State).DbType             = DbType.String;
             cmd.Parameters.Add("@Country", customerEdit.Country == null ? (object)DBNull.Value : customerEdit.Country.Value).DbType = DbType.Byte;
             var rowsAffected = cmd.ExecuteNonQuery();
             if (rowsAffected == 0)
             {
                 throw new DataNotFoundException("CustomerEdit");
             }
         }
     }
     return(customerEdit);
 }
Example #5
0
        /// <summary>
        /// 新增客户信息
        /// </summary>
        protected virtual async Task <CustomerEditDto> CreateCustomerAsync(CustomerEditDto input)
        {
            var entity = input.MapTo <Customer>();

            entity = await _customerRepository.InsertAsync(entity);

            return(entity.MapTo <CustomerEditDto>());
        }
Example #6
0
        /// <summary>
        /// 编辑客户信息
        /// </summary>
        protected virtual async Task UpdateCustomerAsync(CustomerEditDto input)
        {
            var entity = await _customerRepository.GetAsync(input.Id.Value);

            input.MapTo(entity);

            await _customerRepository.UpdateAsync(entity);
        }
Example #7
0
        public async Task <CustomerDto> GetCustomer([FromBody] CustomerEditDto customerDto)
        {
            _customerQuery.FilterByName = true;
            _customerQuery.FirstName    = customerDto.Firstname;
            _customerQuery.LastName     = customerDto.Lastname;

            return(await _customerUnitOfWork.CustomerRepository.GetCustomer(_customerQuery));
        }
        public virtual async Task <CustomerDto> CreateAsync(CustomerEditDto customer)
        {
            var entity = ObjectMapper.Map <CustomerEditDto, Domain.Entities.Customer>(customer);

            using var uow = UnitOfWorkManager.Begin(new AbpUnitOfWorkOptions());
            var result = await _customerRepository.InsertAsync(entity);

            return(ObjectMapper.Map <Domain.Entities.Customer, CustomerDto>(result));
        }
        public virtual async Task <CustomerDto> UpdateAsync(Guid id, CustomerEditDto customer)
        {
            var entity = await _customerRepository.GetAsync(c => c.Id == id);

            entity.Update(customer.Name, customer.Phone, customer.Address, customer.IdNo);

            var updateCustomerResult = await _customerRepository.UpdateAsync(entity, false);

            return(ObjectMapper.Map <Domain.Entities.Customer, CustomerDto>(updateCustomerResult));
        }
Example #10
0
        public async Task <ActionResult <CustomerDto> > Put([FromBody] CustomerEditDto value)
        {
            if (value.Id == Guid.Empty)
            {
                throw new Exception("Unable to edit a Customer without ID");
            }
            var res = await _service.Save(value);

            return(res);
        }
 public void Save(CustomerEditDto dto)
 {
     if (dto.UpdateId > 0)
     {
         Update(dto);
     }
     else
     {
         Add(dto);
     }
 }
Example #12
0
        public IHttpActionResult UpdateCustomer(int id, CustomerEditDto customerEditDto)
        {
            var customerInDb = _context.Customers.SingleOrDefault(c => c.Id == id);

            if (customerInDb == null)
            {
                return(NotFound());
            }

            Mapper.Map(customerEditDto, customerInDb);
            _context.SaveChanges();
            return(Ok());
        }
Example #13
0
        protected async Task CreateCustomerAsync(CustomerEditDto input)
        {
            var flag = await _customerManager.CheckCodeAsync(null, input.Code);

            if (flag)
            {
                var aa = input.MapTo <Customer>();
                await _customerRepository.InsertAsync(aa);
            }
            else
            {
                throw new UserFriendlyException($"客户[{input.Code}]已存在!");
            }
        }
Example #14
0
        /// <summary>
        /// Loads a <see cref="CustomerEdit"/> object from the given <see cref="CustomerEditDto"/>.
        /// </summary>
        /// <param name="data">The CustomerEditDto to use.</param>
        private void Fetch(CustomerEditDto data)
        {
            // Value properties
            LoadProperty(CustomerIdProperty, data.CustomerId);
            LoadProperty(NameProperty, data.Name);
            LoadProperty(FiscalNumberProperty, data.FiscalNumber);
            LoadProperty(AddressLine1Property, data.AddressLine1);
            LoadProperty(AddressLine2Property, data.AddressLine2);
            LoadProperty(ZipCodeProperty, data.ZipCode);
            LoadProperty(StateProperty, data.State);
            LoadProperty(CountryProperty, data.Country);
            var args = new DataPortalHookArgs(data);

            OnFetchRead(args);
        }
Example #15
0
        protected async Task UpdateCustomerAsync(CustomerEditDto input)
        {
            var flag = await _customerManager.CheckCodeAsync(input.Id, input.Code);

            if (flag)
            {
                var entity = await _customerRepository.GetAsync(input.Id.Value);

                await _customerRepository.UpdateAsync(input.MapTo(entity));
            }
            else
            {
                throw new UserFriendlyException($"客户[{input.Code}]已存在!");
            }
        }
        private void ValidateEditDto(CustomerEditDto dto)
        {
            if (string.IsNullOrWhiteSpace(dto.RealName))
            {
                throw new Exception("错误,客户真实姓名不能为空!");
            }

            if (!string.IsNullOrWhiteSpace(dto.MobilePhoneNumber))
            {
                if (!Validator.IsMobile(dto.MobilePhoneNumber))
                {
                    throw new Exception($"错误,{dto.MobilePhoneNumber} 不是正确的手机号!");
                }
            }
        }
Example #17
0
        /// <summary>
        /// 客户注册
        /// </summary>
        /// <returns></returns>
        public async Task Register(CustomerEditDto input)
        {
            if (!input.Password.Equals(input.RepeatPassword))
            {
                throw new UserFriendlyException("两次密码不一致");
            }
            var count =
                await
                _customerRepository.CountAsync(c => c.Account.Equals(input.Account) || c.Email.Equals(input.Email));

            if (count > 0)
            {
                throw new UserFriendlyException("该账户或邮箱已被注册,请重试");
            }
            var model = input.MapTo <Customer>();
            await _customerRepository.InsertAsync(model);
        }
Example #18
0
        /// <summary>
        /// 用户modify
        /// </summary>
        /// <returns></returns>
        public async Task Modify(CustomerEditDto input)
        {
            if (!input.Password.Equals(input.RepeatPassword))
            {
                throw new UserFriendlyException("两次密码不一致");
            }
            var count =
                await
                _customerRepository.CountAsync(c => (c.Account.Equals(input.Account) || c.Email.Equals(input.Email)) && c.Id != input.Id.Value);

            if (count > 0)
            {
                throw new UserFriendlyException("该账户或邮箱已被注册,请重试");
            }
            var model = input.MapTo <Customer>();
            await _customerRepository.UpdateAsync(model);
        }
Example #19
0
        public CustomerEditDto GetCustomerForEdit(NullableIdDto input)
        {
            CustomerEditDto editDto;

            if (input.Id.HasValue) //Editing existing?
            {
                var customer = _customerRespository.Get(input.Id.Value);
                editDto = customer.MapTo <CustomerEditDto>();
            }
            else
            {
                editDto = new CustomerEditDto()
                {
                    RecordCharge = Convert.ToDecimal(SettingManager.GetSettingValue(AppSettings.General.RecordChargeFee))
                };
            }

            return(editDto);
        }
Example #20
0
        public static Customer ToEntity(this CustomerEditDto e)
        {
            if (e == null)
            {
                return(null);
            }

            var res = new Customer();

            res.Id                           = e.Id;
            res.Address                      = e.Address;
            res.HouseNumber                  = e.HouseNumber;
            res.City                         = e.City;
            res.Country                      = e.Country;
            res.State                        = e.State;
            res.PostalCode                   = e.PostalCode;
            res.BirthDate                    = e.BirthDate;
            res.FirstName                    = e.FirstName;
            res.FiscalCode                   = e.FiscalCode;
            res.IdType                       = e.IdType;
            res.LastName                     = e.LastName;
            res.MembershipFee                = e.MembershipFee;
            res.MembershipFeeExpiryDate      = e.MembershipFeeExpiryDate;
            res.MembershipLastPayDate        = e.MembershipLastPayDate;
            res.Note                         = res.Note;
            res.TutorBirthDate               = e.TutorBirthDate;
            res.TutorFirstName               = e.TutorFirstName;
            res.TutorFiscalCode              = e.TutorFiscalCode;
            res.TutorLastName                = e.TutorLastName;
            res.PhoneNumber                  = e.PhoneNumber;
            res.PhoneNumberAlternative       = e.PhoneNumberAlternative;
            res.TutorPhoneNumber             = e.TutorPhoneNumber;
            res.Email                        = e.Email;
            res.TutorEmail                   = e.TutorEmail;
            res.TutorType                    = e.TutorType;
            res.Gender                       = e.Gender;
            res.BirthPlace                   = e.BirthPlace;
            res.BirthProvince                = e.BirthProvince;
            res.FullName                     = $"{e.LastName} {e.FirstName}";
            res.MedicalCertificateExpiration = e.MedicalCertificateExpiration;
            return(res);
        }
Example #21
0
        public async Task <GetCustomerForEditOutput> GetCustomerForEdit(NullableIdInput <long> input)
        {
            CustomerEditDto customerEditDto;

            if (!input.Id.HasValue)
            {
                customerEditDto = new CustomerEditDto();
            }
            else
            {
                IRepository <Customer, long> repository = this._customerRepository;
                Customer async = await repository.GetAsync(input.Id.Value);

                customerEditDto = async.MapTo <CustomerEditDto>();
            }
            return(new GetCustomerForEditOutput()
            {
                Customer = customerEditDto
            });
        }
Example #22
0
        private CustomerEditDto Fetch(IDataReader data)
        {
            var customerEdit = new CustomerEditDto();

            using (var dr = new SafeDataReader(data))
            {
                if (dr.Read())
                {
                    customerEdit.CustomerId   = dr.GetString("CustomerId");
                    customerEdit.Name         = dr.GetString("Name");
                    customerEdit.FiscalNumber = dr.IsDBNull("FiscalNumber") ? null : dr.GetString("FiscalNumber");
                    customerEdit.AddressLine1 = dr.IsDBNull("AddressLine1") ? null : dr.GetString("AddressLine1");
                    customerEdit.AddressLine2 = dr.IsDBNull("AddressLine2") ? null : dr.GetString("AddressLine2");
                    customerEdit.ZipCode      = dr.IsDBNull("ZipCode") ? null : dr.GetString("ZipCode");
                    customerEdit.State        = dr.IsDBNull("State") ? null : dr.GetString("State");
                    customerEdit.Country      = (byte?)dr.GetValue("Country");
                }
            }
            return(customerEdit);
        }
Example #23
0
        /// <summary>
        /// 通过Id获取客户信息信息进行编辑或修改
        /// </summary>
        public async Task <GetCustomerForEditOutput> GetCustomerForEditAsync(NullableIdDto <int> input)
        {
            var output = new GetCustomerForEditOutput();

            CustomerEditDto customerEditDto;

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

                customerEditDto = entity.MapTo <CustomerEditDto>();
            }
            else
            {
                customerEditDto = new CustomerEditDto();
            }

            output.Customer = customerEditDto;
            return(output);
        }
Example #24
0
 /// <summary>
 /// Inserts a new CustomerEdit object in the database.
 /// </summary>
 /// <param name="customerEdit">The Customer Edit DTO.</param>
 /// <returns>The new <see cref="CustomerEditDto"/>.</returns>
 public CustomerEditDto Insert(CustomerEditDto customerEdit)
 {
     using (var ctx = ConnectionManager <OracleConnection> .GetManager("Invoices"))
     {
         GetQueryAddCustomerEdit(customerEdit);
         using (var cmd = new OracleCommand(addCustomerEditInlineQuery, ctx.Connection))
         {
             cmd.CommandType = CommandType.Text;
             cmd.Parameters.Add("@CustomerId", customerEdit.CustomerId).DbType = DbType.StringFixedLength;
             cmd.Parameters.Add("@Name", customerEdit.Name).DbType             = DbType.String;
             cmd.Parameters.Add("@FiscalNumber", customerEdit.FiscalNumber == null ? (object)DBNull.Value : customerEdit.FiscalNumber).DbType = DbType.String;
             cmd.Parameters.Add("@AddressLine1", customerEdit.AddressLine1 == null ? (object)DBNull.Value : customerEdit.AddressLine1).DbType = DbType.String;
             cmd.Parameters.Add("@AddressLine2", customerEdit.AddressLine2 == null ? (object)DBNull.Value : customerEdit.AddressLine2).DbType = DbType.String;
             cmd.Parameters.Add("@ZipCode", customerEdit.ZipCode == null ? (object)DBNull.Value : customerEdit.ZipCode).DbType       = DbType.String;
             cmd.Parameters.Add("@State", customerEdit.State == null ? (object)DBNull.Value : customerEdit.State).DbType             = DbType.String;
             cmd.Parameters.Add("@Country", customerEdit.Country == null ? (object)DBNull.Value : customerEdit.Country.Value).DbType = DbType.Byte;
             cmd.ExecuteNonQuery();
         }
     }
     return(customerEdit);
 }
Example #25
0
        public async Task <CustomerDto> Save(CustomerEditDto dto)
        {
            Customer res;

            CheckDuplicatedFiscalCode(dto.FiscalCode, dto.Id);
            if (dto.Id != Guid.Empty)
            {
                _logger.LogDebug($"Calling Update Customer for id=[{dto.Id}]");
                //edit
                res = await this.GetInner(dto.Id);

                if (res == null)
                {
                    throw new NotFoundException($"Customer with id={dto.Id} not exists!");
                }
                res.Address                 = dto.Address;
                res.HouseNumber             = dto.HouseNumber;
                res.BirthDate               = dto.BirthDate;
                res.IdType                  = dto.IdType;
                res.LastName                = dto.LastName;
                res.Email                   = dto.Email;
                res.FirstName               = dto.FirstName;
                res.FiscalCode              = dto.FiscalCode;
                res.MembershipFee           = dto.MembershipFee;
                res.MembershipFeeExpiryDate = dto.MembershipFeeExpiryDate;
                res.MembershipLastPayDate   = dto.MembershipLastPayDate;
                res.Note                         = dto.Note;
                res.PhoneNumber                  = dto.PhoneNumber;
                res.PhoneNumberAlternative       = dto.PhoneNumberAlternative;
                res.TutorBirthDate               = dto.TutorBirthDate;
                res.TutorEmail                   = dto.TutorEmail;
                res.TutorFirstName               = dto.TutorFirstName;
                res.TutorFiscalCode              = dto.TutorFiscalCode;
                res.TutorLastName                = dto.TutorLastName;
                res.TutorPhoneNumber             = dto.TutorPhoneNumber;
                res.TutorType                    = dto.TutorType;
                res.City                         = dto.City;
                res.Country                      = dto.Country;
                res.State                        = dto.State;
                res.PostalCode                   = dto.PostalCode;
                res.MedicalCertificateExpiration = dto.MedicalCertificateExpiration;
                res.Gender                       = dto.Gender;
                res.BirthPlace                   = dto.BirthPlace;
                res.BirthProvince                = dto.BirthProvince;
                res.FullName                     = $"{dto.LastName} {dto.FirstName}";

                _dbCtx.Customers.Update(res);
                _dbCtx.SaveChanges();
            }
            else
            {
                //insert
                res    = dto.ToEntity();
                res.Id = Guid.NewGuid();
                _logger.LogDebug($"Calling Insert Customer for id=[{res.Id}] (temp id, not created yet!)");
                await _dbCtx.Customers.AddAsync(res);

                _dbCtx.SaveChanges();
            }
            return(res.ToDto());
        }
Example #26
0
 public CreateOrUpdateCustomerViewModel(CustomerEditDto output)
 {
     output.MapTo(this);
 }
Example #27
0
 partial void GetQueryAddCustomerEdit(CustomerEditDto customerEdit);
Example #28
0
 protected async Task CreateCustomerAsync(CustomerEditDto input)
 {
     await _customerRepository.InsertAsync(input.MapTo <Customer>());
 }
Example #29
0
 public Customer ToCustomer(CustomerEditDto c)
 {
     return(new Customer());
 }
Example #30
0
 partial void GetQueryUpdateCustomerEdit(CustomerEditDto customerEdit);