コード例 #1
0
        public IActionResult Get(CatPartnerCriteria criteria, int page, int size)
        {
            var data   = catPartnerService.Paging(criteria, page, size, out int rowCount);
            var result = new { data, totalItems = rowCount, page, size };

            return(Ok(result));
        }
コード例 #2
0
        public IQueryable <CatPartnerViewModel> Query(CatPartnerCriteria criteria)
        {
            string partnerGroup = criteria != null?PlaceTypeEx.GetPartnerGroup(criteria.PartnerGroup) : null;

            var data = DataContext.Get(x => (x.PartnerGroup ?? "").Contains(partnerGroup ?? "", StringComparison.OrdinalIgnoreCase) &&
                                       (x.Active == criteria.Active || criteria.Active == null) &&
                                       (x.CoLoaderCode ?? "").Contains(criteria.CoLoaderCode ?? "", StringComparison.OrdinalIgnoreCase)
                                       );

            if (data == null)
            {
                return(null);
            }
            var results = data.Select(x => new CatPartnerViewModel {
                Id            = x.Id,
                PartnerGroup  = x.PartnerGroup,
                PartnerNameVn = x.PartnerNameVn,
                PartnerNameEn = x.PartnerNameEn,
                ShortName     = x.ShortName,
                TaxCode       = x.TaxCode,
                SalePersonId  = x.SalePersonId,
                Tel           = x.Tel,
                AddressEn     = x.AddressEn,
                Fax           = x.Fax,
                CoLoaderCode  = x.CoLoaderCode,
            });

            return(results);
        }
コード例 #3
0
        public async Task <IActionResult> ExportPartner(CatPartnerCriteria catPartnerCriteria)
        {
            var    accessToken     = Request.Headers["Authorization"].ToString();
            Helper helper          = new Helper();
            var    responseFromApi = await HttpServiceExtension.PostAPI(catPartnerCriteria, aPis.CatalogueAPI + Urls.Catelogue.CatPartnerUrl, accessToken);

            var dataObjects = responseFromApi.Content.ReadAsAsync <List <CatPartner> >();

            var stream = helper.CreatePartnerExcelFile(dataObjects.Result, catPartnerCriteria.PartnerType, catPartnerCriteria.Author);

            return(new FileHelper().ExportExcel(stream, FilesNames.PartnerData));
        }
コード例 #4
0
        private List <CatPartnerViewModel> QueryPaging(CatPartnerCriteria criteria)
        {
            string partnerGroup = criteria != null?PlaceTypeEx.GetPartnerGroup(criteria.PartnerGroup) : null;

            var sysUsers = sysUserRepository.Get();
            var partners = Get(x => (x.PartnerGroup ?? "").IndexOf(partnerGroup ?? "", StringComparison.OrdinalIgnoreCase) >= 0);
            var salemans = salemanRepository.Get().ToList();

            var dataSalemans = salemans.Select(x => x.PartnerId);

            if (partners == null)
            {
                return(null);
            }

            var query = (from partner in partners
                         join user in sysUsers on partner.UserCreated equals user.Id
                         join saleman in sysUsers on partner.SalePersonId equals saleman.Id into prods
                         from x in prods.DefaultIfEmpty()
                         select new { user, partner, saleman = x }
                         );

            if (criteria.All == null)
            {
                query = query.Where(x => ((x.partner.AccountNo ?? "").IndexOf(criteria.Id ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.ShortName ?? "").IndexOf(criteria.ShortName ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.PartnerNameEn ?? "").IndexOf(criteria.PartnerNameEn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.PartnerNameVn ?? "").IndexOf(criteria.PartnerNameVn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.AddressVn ?? "").IndexOf(criteria.AddressVn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.TaxCode ?? "").IndexOf(criteria.TaxCode ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.Tel ?? "").IndexOf(criteria.Tel ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.Fax ?? "").IndexOf(criteria.Fax ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.user.Username ?? "").IndexOf(criteria.UserCreated ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.AccountNo ?? "").IndexOf(criteria.AccountNo ?? "", StringComparison.OrdinalIgnoreCase) >= 0 &&
                                          (x.partner.CoLoaderCode ?? "").Contains(criteria.CoLoaderCode ?? "", StringComparison.OrdinalIgnoreCase) &&
                                          (x.partner.Active == criteria.Active || criteria.Active == null)
                                          ))?.AsQueryable();
            }
            else
            {
                query = query.Where(x =>
                                    (
                                        (x.partner.AccountNo ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.ShortName ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.PartnerNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.PartnerNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.AddressVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.TaxCode ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.Tel ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.Fax ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.user.Username ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.AccountNo ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                        (x.partner.CoLoaderCode ?? "").Contains(criteria.All ?? "", StringComparison.OrdinalIgnoreCase)
                                    ) &&
                                    (x.partner.Active == criteria.Active || criteria.Active == null))?.AsQueryable();
            }
            if (query == null)
            {
                return(null);
            }
            List <CatPartnerViewModel> results = new List <CatPartnerViewModel>();

            foreach (var item in query)
            {
                var partner = mapper.Map <CatPartnerViewModel>(item.partner);
                partner.UserCreatedName = item.user?.Username;
                partner.SalePersonName  = item.saleman?.Username;
                results.Add(partner);
            }
            return(results);
        }
コード例 #5
0
        public IQueryable <CatPartnerViewModel> Paging(CatPartnerCriteria criteria, int page, int size, out int rowsCount)
        {
            var data = QueryPaging(criteria);

            if (data == null)
            {
                rowsCount = 0;
                return(null);
            }
            var             salemans    = salemanRepository.Get().ToList();
            ICurrentUser    _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default
            PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List);

            switch (rangeSearch)
            {
            case PermissionRange.None:
                data = null;
                break;

            case PermissionRange.All:
                break;

            case PermissionRange.Owner:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ||
                                      x.UserCreated == currentUser.UserID).ToList();
                }
                else
                {
                    data = data.Where(x => x.UserCreated == currentUser.UserID).ToList();
                }
                break;

            case PermissionRange.Group:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Department:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Office:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Company:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;
            }

            if (data == null)
            {
                rowsCount = 0;
                return(null);
            }
            rowsCount = data.Select(x => x.Id).Count();
            IQueryable <CatPartnerViewModel> results = null;

            if (size > 1)
            {
                if (page < 1)
                {
                    page = 1;
                }
                results = data.OrderByDescending(x => x.DatetimeModified).Skip((page - 1) * size).Take(size).AsQueryable();
            }
            return(results);
        }
コード例 #6
0
        public IQueryable <CatPartnerViewModel> QueryExport(CatPartnerCriteria criteria)
        {
            var data = QueryPaging(criteria);

            if (data == null)
            {
                return(null);
            }
            var             salemans    = salemanRepository.Get().ToList();
            ICurrentUser    _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default
            PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List);

            switch (rangeSearch)
            {
            case PermissionRange.None:
                data = null;
                break;

            case PermissionRange.All:
                break;

            case PermissionRange.Owner:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ||
                                      x.UserCreated == currentUser.UserID).ToList();
                }
                else
                {
                    data = data.Where(x => x.UserCreated == currentUser.UserID).ToList();
                }
                break;

            case PermissionRange.Group:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Department:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Office:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Company:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;
            }

            if (data == null)
            {
                return(null);
            }
            return(data.AsQueryable());
        }
コード例 #7
0
        public IActionResult Get(CatPartnerCriteria criteria)
        {
            var results = catPartnerService.Query(criteria);

            return(Ok(results));
        }