Esempio n. 1
0
        public IActionResult Get(CatChargeCriteria criteria, int pageNumber, int pageSize)
        {
            var data   = catChargeService.Paging(criteria, pageNumber, pageSize, out int rowCount);
            var result = new { data, totalItems = rowCount, pageNumber, pageSize };

            return(Ok(result));
        }
Esempio n. 2
0
        private IQueryable <CatChargeModel> QueryCriteria(CatChargeCriteria criteria)
        {
            Expression <Func <CatChargeModel, bool> > query = null;

            if (criteria.All == null)
            {
                query = x => (x.ChargeNameEn ?? "").IndexOf(criteria.ChargeNameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.ChargeNameVn ?? "").IndexOf(criteria.ChargeNameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Type ?? "").IndexOf(criteria.Type ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.ServiceTypeId ?? "").Contains(criteria.ServiceTypeId ?? "", StringComparison.OrdinalIgnoreCase) &&
                        (x.Active == criteria.Active || criteria.Active == null);
            }
            else
            {
                query = x => ((x.ChargeNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.ChargeNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.Type ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.ServiceTypeId ?? "").Contains(criteria.All ?? "", StringComparison.OrdinalIgnoreCase)) &&
                        (x.Active == criteria.Active || criteria.Active == null);
            }
            var list       = Get(query);
            var currencies = currencyService.Get();
            var units      = catUnitService.Get();

            list = list.Join(currencies, x => x.CurrencyId, y => y.Id, (x, y) => new { x, y.CurrencyName })
                   .Join(units, x => x.x.UnitId, y => y.Id, (x, y) => new CatChargeModel
            {
                Id               = x.x.Id,
                Code             = x.x.Code,
                ChargeNameVn     = x.x.ChargeNameVn,
                ChargeNameEn     = x.x.ChargeNameEn,
                ServiceTypeId    = x.x.ServiceTypeId,
                Type             = x.x.Type,
                CurrencyId       = x.x.CurrencyId,
                UnitPrice        = x.x.UnitPrice,
                UnitId           = x.x.UnitId,
                Vatrate          = x.x.Vatrate,
                IncludedVat      = x.x.IncludedVat,
                UserCreated      = x.x.UserCreated,
                DatetimeCreated  = x.x.DatetimeCreated,
                UserModified     = x.x.UserModified,
                DatetimeModified = x.x.DatetimeModified,
                Active           = x.x.Active,
                InactiveOn       = x.x.InactiveOn,
                currency         = y.UnitNameEn,
                unit             = y.UnitNameEn,
                OfficeId         = x.x.OfficeId,
                GroupId          = x.x.GroupId,
                CompanyId        = x.x.CompanyId,
                DepartmentId     = x.x.DepartmentId
            });
            return(list);
        }
        public async Task <IActionResult> ExportCharge(CatChargeCriteria catChargeCriteria)
        {
            Helper helper      = new Helper();
            var    accessToken = Request.Headers["Authorization"].ToString();

            var responseFromApi = await HttpServiceExtension.PostAPI(catChargeCriteria, aPis.CatalogueAPI + Urls.Catelogue.CatchargeUrl, accessToken);

            var dataObjects = responseFromApi.Content.ReadAsAsync <List <CatCharge> >();  //Make sure to add a reference to System.Net.Http.Formatting.dll

            var stream = helper.CreateChargeExcelFile(dataObjects.Result);

            return(new FileHelper().ExportExcel(stream, FilesNames.ChargeName));
        }
Esempio n. 4
0
        public IQueryable <CatChargeModel> QueryExport(CatChargeCriteria criteria)
        {
            IQueryable <CatChargeModel> data = null;

            ICurrentUser _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            var          rangeSearch = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.List);

            if (rangeSearch == PermissionRange.None)
            {
                return(data);
            }
            data = QueryByPermission(criteria, rangeSearch);
            return(data);
        }
Esempio n. 5
0
        public IQueryable <CatChargeModel> QueryByPermission(CatChargeCriteria criteria, PermissionRange range)
        {
            IQueryable <CatChargeModel> data = null;
            var list = QueryCriteria(criteria);

            switch (range)
            {
            case PermissionRange.All:
                data = list;
                break;

            case PermissionRange.Owner:
                data = list.Where(x => x.UserCreated == currentUser.UserID && x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Group:
                data = list.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Department:
                data = list.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Office:
                data = list.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Company:
                data = list.Where(x => x.CompanyId == currentUser.CompanyID || x.UserCreated == currentUser.UserID);
                break;

            default:
                break;
            }

            return(data);
        }
Esempio n. 6
0
 public IQueryable <CatChargeModel> Query(CatChargeCriteria criteria)
 {
     return(QueryCriteria(criteria));
 }
Esempio n. 7
0
        public IQueryable <CatChargeModel> Paging(CatChargeCriteria criteria, int page, int size, out int rowsCount)
        {
            ICurrentUser _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            var          rangeSearch = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.List);

            if (rangeSearch == PermissionRange.None)
            {
                rowsCount = 0;
                return(null);
            }

            Expression <Func <CatCharge, bool> > query = null;

            if (string.IsNullOrEmpty(criteria.All))
            {
                query = x => (x.ChargeNameEn ?? "").IndexOf(criteria.ChargeNameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.ChargeNameVn ?? "").IndexOf(criteria.ChargeNameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Type ?? "").IndexOf(criteria.Type ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.ServiceTypeId ?? "").IndexOf(criteria.ServiceTypeId ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Active == criteria.Active || criteria.Active == null)
                ;
            }
            else
            {
                query = x => ((x.ChargeNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.ChargeNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.Type ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.ServiceTypeId ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                        (x.Active == criteria.Active || criteria.Active == null);
            }

            // Query with Permission Range.
            switch (rangeSearch)
            {
            case PermissionRange.Owner:
                query = query.And(x => x.UserCreated == currentUser.UserID && x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Group:
                query = query.And(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Department:
                query = query.And(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Office:
                query = query.And(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Company:
                query = query.And(x => x.CompanyId == currentUser.CompanyID || x.UserCreated == currentUser.UserID);
                break;

            default:
                break;
            }
            var data = DataContext.Paging(query, page, size, x => x.DatetimeModified, false, out rowsCount);

            var datamap = data.ProjectTo <CatChargeModel>(mapper.ConfigurationProvider);

            return(datamap);
        }
Esempio n. 8
0
        public IActionResult QueryExport(CatChargeCriteria searchObject)
        {
            IQueryable <CatChargeModel> data = catChargeService.QueryExport(searchObject);

            return(Ok(data));
        }
Esempio n. 9
0
        public IActionResult Get(CatChargeCriteria criteria)
        {
            var data = catChargeService.Query(criteria);

            return(Ok(data));
        }