public async Task <IActionResult> GetAllCustomers()
        {
            ActionResult       result;
            var                input = new GetCustomersInput();
            GetCustomersOutput output;

            try
            {
                output = await this._facadeOrchestratorCustomer.GetCustomersAsync(input);

                if (output.Success)
                {
                    result = Ok(output.Customers);
                }
                else
                {
                    result = BadRequest(output.GetJoinedErrors());
                }
            }
            catch (Exception ex)
            {
                result = BadRequest(ex);
            }

            return(result);
        }
Пример #2
0
        //public ListResultDto<GetCustomerForSelectDto> GetCustomerByLocation(string location)
        //{
        //    var list = _customnerRepository.GetAll()
        //        .Where(x => x.Area.Contains(location))
        //        .ToList();

        //    return new ListResultDto<GetCustomerForSelectDto>(list.MapTo<List<GetCustomerForSelectDto>>());
        //}

        public PagedResultDto <CustomerDto> GetCustomers(GetCustomersInput input)
        {
            var customerQuery = _customnerRepository.GetAll();

            var workOrderQuery = _workOrderBillRepository
                                 .GetAll()
                                 .GroupBy(e => e.Customer)
                                 .Select(e => e.OrderByDescending(o => o.CreationTime).FirstOrDefault())
            ;
            DateTime?dt    = null;
            var      query = from customer in customerQuery
                             join workorder in workOrderQuery on customer.Id equals workorder.CustomerId into temp
                             from tt in temp.DefaultIfEmpty()
                             select new CustomerDto()
            {
                LastServiceTime = tt == null ? dt : tt.ServiceTime,
                Id   = customer.Id,
                Name = customer.Name
            };


            var list = query.OrderBy("Name")
                       .PageBy(input)
                       .ToList();
            var recordCount = list.Count;

            // var billList = list.MapTo<List<GetNewAccessoryUseDto>>();
            return(new PagedResultDto <CustomerDto>(recordCount, list));
        }
Пример #3
0
        public async Task <PagedResultDto <CustomerListDto> > GetPagedCustomerAsync(GetCustomersInput input)
        {
            var query         = _customerRepository.GetAll();
            var supplierCount = await query.CountAsync();

            var suppliers = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            var dtos = suppliers.MapTo <List <CustomerListDto> >();

            return(new PagedResultDto <CustomerListDto>(supplierCount, dtos));
        }
        public async Task <PagedResultOutput <CustomerListDto> > GetCustomerToList(GetCustomersInput input)
        {
            var lst = list.AsQueryable().WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.FirstName.Contains(input.Filter)).
                      OrderBy(input.Sorting).PageBy(input);

            var dtos = lst.MapTo <List <CustomerListDto> >();

            return(new PagedResultOutput <CustomerListDto>(
                       list.Count,
                       dtos
                       ));
        }
Пример #5
0
        public GetCustomersOutput GetCustomers(GetCustomersInput input)
        {
            var query = _customerRepository.GetAll();

            /*
             * if (input.State.HasFlag(1))
             * {
             *
             * }
             */
            return(new GetCustomersOutput
            {
                Customers = Mapper.Map <List <CustomerDto> >(query.ToList())
            });
        }
        public ListResultOutput <CustomerListDto> GetCustomers(GetCustomersInput input)
        {
            var customers = this.customerRepository
                            .GetAll()

                            .WhereIf(
                input.Filter != null,
                p => p.FirstName.Contains(input.Filter) ||
                p.LastName.Contains(input.Filter) ||
                p.EmailAddress.Contains(input.Filter)
                )
                            .OrderBy(p => p.FirstName)
                            .ThenBy(p => p.LastName)
                            .ToList();

            return(new ListResultOutput <CustomerListDto>(customers.MapTo <List <CustomerListDto> >()));
        }
        /// <summary>
        /// 获取所有客户
        /// </summary>
        /// <returns></returns>
        public async Task <PagedResultDto <CustomerListDto> > GetCustomers(GetCustomersInput input)
        {
            var query = _customerManager
                        .Customeres
                        .WhereIf(!input.Name.IsNullOrWhiteSpace(), r => r.Name.Contains(input.Name))
                        .WhereIf(!input.PhoneNumber.IsNullOrWhiteSpace(), r => r.PhoneNumber.Contains(input.PhoneNumber))
                        .WhereIf(input.ConsumesForm > 0, r => r.TotalConsumes > input.ConsumesForm)
                        .WhereIf(input.ConsumesTo > 0, r => r.TotalConsumes < input.ConsumesTo);

            var customerCount = await query.CountAsync();

            var customers = await query
                            .OrderBy(input.Sorting)
                            .PageBy(input)
                            .ToListAsync();

            var catalogyListDtos = ObjectMapper.Map <List <CustomerListDto> >(customers);

            return(new PagedResultDto <CustomerListDto>(
                       customerCount,
                       catalogyListDtos));
        }
Пример #8
0
        /// <summary>
        /// 获取Customer的分页列表信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <CustomerListDto> > GetPagedCustomers(GetCustomersInput input)
        {
            var query = _customerRepository.GetAll();

            query = query.WhereIf(!input.Name.IsNullOrWhiteSpace(), c => c.Name.Contains(input.Name))
                    .WhereIf(!input.Family.IsNullOrWhiteSpace(), c => c.Family.Contains(input.Family))
                    .WhereIf(input.Level.HasValue, c => c.FamilyCode.Value == input.Level.Value);
            var customerCount = await query.CountAsync();

            var customers = await query
                            .OrderBy(input.Sorting)
                            .PageBy(input)
                            .ToListAsync();

            //var customerListDtos = ObjectMapper.Map<List <CustomerListDto>>(customers);
            var customerListDtos = customers.MapTo <List <CustomerListDto> >();

            return(new PagedResultDto <CustomerListDto>(
                       customerCount,
                       customerListDtos
                       ));
        }
Пример #9
0
        public async Task <PagedResultOutput <CustomerListDto> > GetCustomers(GetCustomersInput input)
        {
            PagedResultOutput <CustomerListDto> pagedResultOutput;
            ParameterExpression parameterExpression;

            if (input.Filter.Contains("id:"))
            {
                string filter             = input.Filter;
                char[] chrArray           = new char[] { ':' };
                long   theId              = long.Parse(filter.Split(chrArray)[1]);
                IQueryable <Customer> all = _customerRepository.GetAll();
                var customers             = all.Where(m => m.Id == theId);
                int num = await customers.CountAsync <Customer>();

                List <Customer> listAsync = await customers.OrderBy <Customer>(input.Sorting, new object[0]).PageBy <Customer>(input).ToListAsync <Customer>();

                pagedResultOutput = new PagedResultOutput <CustomerListDto>(num, listAsync.MapTo <List <CustomerListDto> >());
            }
            else
            {
                IQueryable <Address> addresses = this._addressRepository.GetAll();
                var addresses1 = addresses.Include(i => i.Country);
                var addresses2 = addresses1.Include(i => i.CountryRegion);
                var addresses3 = addresses2.Where(m => (int?)m.TenantId == AbpSession.TenantId && m.OwnerType == "Customer");
                var addresses4 = addresses3.WhereIf(!input.Filter.IsNullOrEmpty(),
                                                    p => p.Type.Contains(input.Filter) ||
                                                    p.Type.Contains(input.Filter) ||
                                                    p.PrimaryAddress.Contains(input.Filter) ||
                                                    p.SecondaryAddress.Contains(input.Filter) ||
                                                    p.City.Contains(input.Filter) ||
                                                    p.PostalCode.Contains(input.Filter) ||
                                                    p.ContactName.Contains(input.Filter) ||
                                                    p.Country.Code.Contains(input.Filter) ||
                                                    p.Country.Name.Contains(input.Filter) ||
                                                    p.CountryRegion.Code.Contains(input.Filter) ||
                                                    p.CountryRegion.Name.Contains(input.Filter));

                var collection = await addresses4.Select(s => new
                {
                    CustomerId = s.OwnerId
                }).ToListAsync();

                IQueryable <Phone> phones = this._phoneRepository.GetAll();
                var phones1 = phones.Where(m => (int?)m.TenantId == AbpSession.TenantId && m.OwnerType == "Customer");
                var phones2 = phones.WhereIf(!input.Filter.IsNullOrEmpty(),
                                             p => p.Type.Contains(input.Filter) ||
                                             p.PhoneNumber.Contains(input.Filter));
                var listAsync1 = await phones2.Select(p => new
                {
                    CustomerId = p.OwnerId
                }).ToListAsync();

                IQueryable <Customer> all1 = this._customerRepository.GetAll();
                var customers1             = all1.WhereIf(!input.Filter.IsNullOrEmpty(), p =>
                                                          p.FirstName.Contains(input.Filter) ||
                                                          p.LastName.Contains(input.Filter) ||
                                                          p.BusinessName.Contains(input.Filter) ||
                                                          p.Email.Contains(input.Filter));
                var listAsync2 = await customers1.Select(s => new
                {
                    CustomerId = s.Id
                }).ToListAsync();

                List <long> list = (
                    from s in collection
                    select s.CustomerId).ToList();
                IEnumerable <long> nums = list.Union((
                                                         from s in listAsync1
                                                         select s.CustomerId).ToList());
                nums.Union((
                               from s in listAsync2
                               select s.CustomerId).ToList());
                var all2 = _customerRepository.GetAll();
                parameterExpression = Expression.Parameter(typeof(Customer), "m");
                var customers2 = all2.Where(m => nums.Contains(m.Id));
                int matchCount = await customers2.CountAsync();

                List <Customer> listAsync3 = await customers2.OrderBy <Customer>(input.Sorting, new object[0]).PageBy <Customer>(input).ToListAsync <Customer>();

                pagedResultOutput = new PagedResultOutput <CustomerListDto>(matchCount, listAsync3.MapTo <List <CustomerListDto> >());
            }
            return(pagedResultOutput);
        }
Пример #10
0
        /// <summary>
        /// 根据查询条件获取客户资料管理分页列表
        /// </summary>
        public async Task <PagedResultDto <CustomersListDto> > GetPagedCustomerssAsync(GetCustomersInput input)
        {
            var query = _customersRepository.GetAll();
            //TODO:根据传入的参数添加过滤条件

            var customersCount = await query.CountAsync();

            var customerss = await query
                             .OrderBy(input.Sorting)
                             .PageBy(input)
                             .ToListAsync();

            var customersListDtos = customerss.MapTo <List <CustomersListDto> >();

            return(new PagedResultDto <CustomersListDto>(
                       customersCount,
                       customersListDtos
                       ));
        }
Пример #11
0
 public ActionResult Index(GetCustomersInput input)
 {
     return(base.View());
 }
Пример #12
0
        public async Task <GetCustomersOutput> GetCustomersAsync(GetCustomersInput input)
        {
            GetCustomersOutput output = await Orchestrator.Execute <GetCustomers, GetCustomersInput, GetCustomersOutput, GetCustomersValidator>(_customerManager, input);

            return(output);
        }
Пример #13
0
        public async Task <PartialViewResult> CreateOrUpdateSpecificPriceModal(long productId, long?id = null)
        {
            int? nullable;
            bool flag;
            bool flag1;
            ISpecificPriceAppService specificPriceAppService = this._specificPriceAppService;
            NullableIdInput <long>   nullableIdInput         = new NullableIdInput <long>()
            {
                Id = id
            };
            GetProductSpecificPriceForEditOutput productSpecificPriceForEdit = await specificPriceAppService.GetProductSpecificPriceForEdit(nullableIdInput);

            CreateOrUpdateSpecificPriceModalViewModel createOrUpdateSpecificPriceModalViewModel = new CreateOrUpdateSpecificPriceModalViewModel(productSpecificPriceForEdit);
            Product product = await this._productAppService.GetProduct(productId);

            createOrUpdateSpecificPriceModalViewModel.BaseCost       = new decimal?(product.FinalPrice);
            createOrUpdateSpecificPriceModalViewModel.QuantitySoldIn = product.QuantitySoldIn;
            if (productSpecificPriceForEdit.SpecificPrice.ForCustomerId.HasValue)
            {
                ICustomerAppService customerAppService = this._customerAppService;
                GetCustomersInput   getCustomersInput  = new GetCustomersInput()
                {
                    MaxResultCount = 1,
                    Sorting        = "FirstName",
                    SkipCount      = 0
                };
                long value = productSpecificPriceForEdit.SpecificPrice.ForCustomerId.Value;
                getCustomersInput.Filter = string.Concat("id:", value.ToString());
                PagedResultOutput <CustomerListDto> customers = await customerAppService.GetCustomers(getCustomersInput);

                createOrUpdateSpecificPriceModalViewModel.CurrentlySelectedCustomerName = string.Concat(customers.Items[0].FullName, " - ", customers.Items[0].Email);
            }
            List <SelectListItem> selectListItems = new List <SelectListItem>();

            using (HttpClient httpClient = new HttpClient())
            {
                UrlHelper url = this.Url;
                nullable = (createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ForCountryId.HasValue ? createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ForCountryId : new int?(0));
                string str = url.RouteUrl("DefaultApiWithAction", new { httproute = "", controller = "Generic", action = "GetCountriesAsSelectListItems", countryId = 0, selectedCountryId = nullable }, this.Request.Url.Scheme);
                using (HttpResponseMessage async = await httpClient.GetAsync(str))
                {
                    if (async.IsSuccessStatusCode)
                    {
                        string str1 = await async.Content.ReadAsStringAsync();

                        selectListItems = JsonConvert.DeserializeObject <List <SelectListItem> >(str1);
                    }
                }
            }
            List <SelectListItem> selectListItems1 = selectListItems;
            SelectListItem        selectListItem   = new SelectListItem()
            {
                Text     = "",
                Value    = "",
                Disabled = false
            };

            selectListItems1.Insert(0, selectListItem);
            this.ViewData["Countries"] = selectListItems.AsEnumerable <SelectListItem>();
            List <OrganizationUnitDto> organizationUnitsByProperty = await this._organizationUnitAppService.GetOrganizationUnitsByProperty("SpecificPricesEnabled", "true");

            List <SelectListItem> selectListItems2 = new List <SelectListItem>();

            foreach (OrganizationUnitDto organizationUnitDto in organizationUnitsByProperty)
            {
                List <SelectListItem> selectListItems3 = selectListItems2;
                SelectListItem        selectListItem1  = new SelectListItem();
                string displayName = organizationUnitDto.DisplayName;
                int    memberCount = organizationUnitDto.MemberCount;
                selectListItem1.Text     = string.Format("{0} ({1} {2})", displayName, memberCount.ToString(), this.L("OUMemberCount"));
                selectListItem1.Value    = organizationUnitDto.Id.ToString();
                selectListItem1.Disabled = false;
                selectListItem1.Group    = null;
                flag = (!createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ForOrganizationalUnitId.HasValue || createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ForOrganizationalUnitId.Value != organizationUnitDto.Id ? false : true);
                selectListItem1.Selected = flag;
                selectListItems3.Add(selectListItem1);
            }
            SelectListItem selectListItem2 = new SelectListItem()
            {
                Text     = "",
                Value    = "",
                Disabled = false
            };

            selectListItems2.Insert(0, selectListItem2);
            this.ViewData["OrganizationUnits"] = selectListItems2.AsEnumerable <SelectListItem>();
            IRepository <ProductOption, long> repository = this._productOptionRepository;
            List <ProductOption> allListAsync            = await repository.GetAllListAsync((ProductOption x) => x.ProductId == product.Id && x.IsActive);

            List <ProductOption>  productOptions   = allListAsync;
            List <SelectListItem> selectListItems4 = new List <SelectListItem>();

            foreach (ProductOption productOption in productOptions)
            {
                List <SelectListItem> selectListItems5 = selectListItems4;
                SelectListItem        selectListItem3  = new SelectListItem()
                {
                    Text     = productOption.Name,
                    Value    = productOption.Id.ToString(),
                    Disabled = false,
                    Group    = null
                };
                flag1 = (!createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ProductOptionId.HasValue || createOrUpdateSpecificPriceModalViewModel.SpecificPrice.ProductOptionId.Value != productOption.Id ? false : true);
                selectListItem3.Selected = flag1;
                selectListItems5.Add(selectListItem3);
            }
            SelectListItem selectListItem4 = new SelectListItem()
            {
                Text     = "",
                Value    = "",
                Disabled = false
            };

            selectListItems4.Insert(0, selectListItem4);
            this.ViewData["ProductOptions"] = selectListItems4.AsEnumerable <SelectListItem>();
            return(this.PartialView("_CreateOrUpdateSpecificPriceModal", createOrUpdateSpecificPriceModalViewModel));
        }