コード例 #1
0
        public List <CatPlaceImportModel> CheckValidImport(List <CatPlaceImportModel> list, CatPlaceTypeEnum placeType)
        {
            string placeTypeName = PlaceTypeEx.GetPlaceType(placeType);
            List <CatPlaceImportModel> results = null;

            switch (placeType)
            {
            case CatPlaceTypeEnum.Warehouse:
                results = CheckWarehouseValidImport(list, placeTypeName);
                break;

            case CatPlaceTypeEnum.Port:
                results = CheckPortIndexValidImport(list, placeTypeName);
                break;

            case CatPlaceTypeEnum.Province:
                results = CheckProvinceValidImport(list, placeTypeName);
                break;

            case CatPlaceTypeEnum.District:
                results = CheckDistrictValidImport(list, placeTypeName);
                break;

            case CatPlaceTypeEnum.Ward:
                results = CheckWardValidImport(list, placeTypeName);
                break;
            }
            return(results);
        }
コード例 #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 IQueryable <CatPartnerModel> GetBy(CatPartnerGroupEnum partnerGroup)
        {
            string group = PlaceTypeEx.GetPartnerGroup(partnerGroup);
            IQueryable <CatPartnerModel> data = Get().Where(x => (x.PartnerGroup ?? "").IndexOf(group ?? "", StringComparison.OrdinalIgnoreCase) >= 0);

            return(data);
        }
コード例 #4
0
        public IActionResult GetBy(CatChargeType type)
        {
            string chargeType = PlaceTypeEx.GetChargeType(type);
            var    data       = catChargeService.GetBy(chargeType);

            return(Ok(data));
        }
コード例 #5
0
        private IQueryable <sp_GetCatPlace> QueryCriteria(CatPlaceCriteria criteria)
        {
            string placetype = PlaceTypeEx.GetPlaceType(criteria.PlaceType);
            var    list      = GetBy(placetype);

            if (criteria.All == null)
            {
                list = list.Where(x => ((x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.NameEn ?? "").IndexOf(criteria.NameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.NameVn ?? "").IndexOf(criteria.NameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.CountryNameEN ?? "").IndexOf(criteria.CountryNameEN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.CountryNameVN ?? "").IndexOf(criteria.CountryNameVN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.DistrictNameEN ?? "").IndexOf(criteria.DistrictNameEN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.DistrictNameVN ?? "").IndexOf(criteria.DistrictNameVN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  (x.CountryID == criteria.CountryId || criteria.CountryId == null) &&
                                  (x.ProvinceID == criteria.ProvinceId || criteria.ProvinceId == null) &&
                                  (x.DistrictID == criteria.DistrictId || criteria.DistrictId == null) &&
                                  ((x.ProvinceNameEN ?? "").IndexOf(criteria.ProvinceNameEN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.ProvinceNameVN ?? "").IndexOf(criteria.ProvinceNAmeVN ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  ((x.Address ?? "").IndexOf(criteria.Address ?? "", StringComparison.OrdinalIgnoreCase) >= 0) &&
                                  ((x.ModeOfTransport ?? "").IndexOf(criteria.ModeOfTransport ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                                  (x.AreaNameEN ?? "").IndexOf(criteria.AreaNameEN ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                                  (x.AreaNameVN ?? "").IndexOf(criteria.AreaNameVN ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                                  (x.FlightVesselNo ?? "").Contains(criteria.FlightVesselNo ?? "", StringComparison.OrdinalIgnoreCase) == true &&
                                  (x.Active == criteria.Active || criteria.Active == null)
                                  )?.AsQueryable();
            }
            else
            {
                list = list.Where(x => (
                                      ((x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.NameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.NameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.CountryNameEN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.CountryNameVN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.DistrictNameEN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.DistrictNameVN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.ProvinceNameEN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.ProvinceNameVN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      ((x.Address ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      (x.AreaNameEN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                      (x.AreaNameVN ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                                      ((x.ModeOfTransport ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) ||
                                      (x.FlightVesselNo ?? "").Contains(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) == true
                                      ) &&
                                  (x.Active == criteria.Active || criteria.Active == null)
                                  )?.AsQueryable();
            }
            return(list);
        }
コード例 #6
0
        public IQueryable <sp_GetCatPlace> Get(CatPlaceCriteria criteria)
        {
            var countries = countryRepository.Get();

            string placetype = PlaceTypeEx.GetPlaceType(criteria.PlaceType);

            // Join left với country.
            var places = from x in DataContext.Get(x => (x.PlaceTypeId == placetype || string.IsNullOrEmpty(placetype) &&
                                                         (x.Active == criteria.Active || criteria.Active == null)) &&
                                                   (x.ModeOfTransport.IndexOf(criteria.ModeOfTransport, StringComparison.OrdinalIgnoreCase) > -1) || string.IsNullOrEmpty(criteria.ModeOfTransport))
                         join coun in countries on x.CountryId equals coun.Id into coun2
                         from coun in coun2.DefaultIfEmpty()
                         select new sp_GetCatPlace
            {
                ID               = x.Id,
                Code             = x.Code,
                NameVn           = x.NameVn,
                NameEn           = x.NameEn,
                DisplayName      = x.DisplayName,
                Address          = x.Address,
                DistrictID       = x.DistrictId,
                DistrictNameEN   = string.Empty,
                DistrictNameVN   = string.Empty,
                ProvinceID       = x.ProvinceId,
                ProvinceNameEN   = string.Empty,
                ProvinceNameVN   = string.Empty,
                CountryNameEN    = coun.NameEn,
                CountryNameVN    = coun.NameVn,
                CountryID        = x.CountryId,
                AreaID           = x.AreaId,
                LocalAreaID      = x.LocalAreaId,
                ModeOfTransport  = x.ModeOfTransport,
                PlaceTypeID      = x.PlaceTypeId,
                Note             = x.Note,
                UserCreated      = x.UserCreated,
                DatetimeCreated  = x.DatetimeCreated,
                UserModified     = x.UserModified,
                DatetimeModified = x.DatetimeModified,
                Active           = x.Active
            };

            return(places);
        }
コード例 #7
0
        public IQueryable <CatPartnerModel> GetMultiplePartnerGroup(PartnerMultiCriteria criteria)
        {
            IQueryable <CatPartnerModel> data = Get();

            if (criteria == null)
            {
                return(data);
            }
            List <string> grpCodes = new List <string>();

            if (criteria.PartnerGroups != null)
            {
                foreach (var grp in criteria.PartnerGroups)
                {
                    string group = PlaceTypeEx.GetPartnerGroup(grp);
                    grpCodes.Add(group);
                }
                Expression <Func <CatPartnerModel, bool> > query = null;
                foreach (var group in grpCodes.Distinct())
                {
                    if (query == null)
                    {
                        query = x => (x.PartnerGroup ?? "").IndexOf(group ?? "", StringComparison.OrdinalIgnoreCase) >= 0;
                    }
                    else
                    {
                        query = query.Or(x => (x.PartnerGroup ?? "").IndexOf(group ?? "", StringComparison.OrdinalIgnoreCase) >= 0);
                    }
                }
                query = criteria.Active != null?query.And(x => x.Active == criteria.Active) : query;

                data = data.Where(query);
            }
            else
            {
                data = data.Where(x => x.Active == criteria.Active || criteria.Active == null);
            }
            return(data);
        }
コード例 #8
0
        public List <CatPartnerImportModel> CheckValidImport(List <CatPartnerImportModel> list)
        {
            var partners     = Get().ToList();
            var users        = sysUserRepository.Get().ToList();
            var countries    = countryService.Get().ToList();
            var provinces    = placeService.Get(x => x.PlaceTypeId == PlaceTypeEx.GetPlaceType(CatPlaceTypeEnum.Province)).ToList();
            var branchs      = placeService.Get(x => x.PlaceTypeId == PlaceTypeEx.GetPlaceType(CatPlaceTypeEnum.Branch)).ToList();
            var salemans     = sysUserRepository.Get().ToList();
            var offices      = officeRepository.Get().ToList();
            var regexItem    = new Regex("^[a-zA-Z0-9-]+$");
            var paymentTerms = new List <string> {
                "All", "Prepaid", "Collect"
            };
            var services = API.Common.Globals.CustomData.Services;

            var allGroup      = DataEnums.PARTNER_GROUP;
            var partnerGroups = allGroup.Split(";");

            list.ForEach(item =>
            {
                if (string.IsNullOrEmpty(item.TaxCode))
                {
                    item.TaxCodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_TAXCODE_EMPTY]);
                    item.IsValid      = false;
                }
                else
                {
                    string taxCode       = item.TaxCode.Replace(" ", "");
                    var asciiBytesCount  = Encoding.ASCII.GetByteCount(taxCode);
                    var unicodBytesCount = Encoding.UTF8.GetByteCount(taxCode);
                    if (asciiBytesCount != unicodBytesCount || !regexItem.IsMatch(taxCode))
                    {
                        item.TaxCodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_TAXCODE_INVALID], item.TaxCode);
                        item.IsValid      = false;
                    }
                    else if (list.Count(x => x.TaxCode == taxCode) > 1)
                    {
                        item.TaxCodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_TAXCODE_DUPLICATED]);
                        item.IsValid      = false;
                    }
                    else
                    {
                        if (partners.Any(x => x.TaxCode == taxCode))
                        {
                            item.TaxCodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_TAXCODE_EXISTED], item.TaxCode);
                            item.IsValid      = false;
                        }
                    }
                }
                if (string.IsNullOrEmpty(item.PartnerGroup))
                {
                    item.PartnerGroupError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_GROUP_EMPTY]);
                    item.IsValid           = false;
                }
                else
                {
                    item.PartnerGroup = item.PartnerGroup.ToUpper();
                    if (item.PartnerGroup == DataEnums.AllPartner)
                    {
                        item.PartnerGroup = allGroup;
                    }
                    else
                    {
                        var groups = item.PartnerGroup.Split(";").Select(x => x.Trim());
                        var group  = partnerGroups.Intersect(groups);
                        if (group == null)
                        {
                            item.PartnerGroupError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_GROUP_NOT_FOUND], item.PartnerGroup);
                            item.IsValid           = false;
                        }
                        else
                        {
                            item.PartnerGroup = String.Join(";", groups);
                        }
                    }
                    item = GetSaleManInfo(item, salemans, offices, services);
                }
                if (string.IsNullOrEmpty(item.PartnerNameEn))
                {
                    item.PartnerNameEnError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_NAME_EN_EMPTY]);
                    item.IsValid            = false;
                }
                if (string.IsNullOrEmpty(item.PartnerNameVn))
                {
                    item.PartnerNameVnError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_NAME_VN_EMPTY]);
                    item.IsValid            = false;
                }
                if (string.IsNullOrEmpty(item.ShortName))
                {
                    item.ShortNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_SHORT_NAME_EMPTY]);
                    item.IsValid        = false;
                }
                if (string.IsNullOrEmpty(item.AddressEn))
                {
                    item.AddressEnError = stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_ADDRESS_BILLING_EN_NOT_FOUND];
                    item.IsValid        = false;
                }
                if (string.IsNullOrEmpty(item.AddressVn))
                {
                    item.AddressVnError = stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_ADDRESS_BILLING_VN_NOT_FOUND];
                    item.IsValid        = false;
                }
                if (string.IsNullOrEmpty(item.CountryBilling))
                {
                    if (!string.IsNullOrEmpty(item.CityBilling))
                    {
                        item.CityBillingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_PROVINCE_REQUIRED_COUNTRY], item.CityBilling);
                        item.IsValid          = false;
                    }
                }
                else
                {
                    string countryBilling = item.CountryBilling?.ToLower();
                    var country           = countries.FirstOrDefault(i => i.NameEn.ToLower() == countryBilling);
                    if (country != null)
                    {
                        item.CountryId = country.Id;
                        if (!string.IsNullOrEmpty(item.CityBilling))
                        {
                            string cityBilling = item.CityBilling.ToLower();
                            var province       = provinces.FirstOrDefault(i => i.NameEn.ToLower() == cityBilling && i.CountryId == country.Id);
                            if (province == null)
                            {
                                item.CityBillingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_PROVINCE_BILLING_NOT_FOUND], item.CityBilling);
                                item.IsValid          = false;
                            }
                            else
                            {
                                item.ProvinceId = province.Id;
                            }
                        }
                    }
                    else
                    {
                        item.CountryBillingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_COUNTRY_BILLING_NOT_FOUND], item.CountryBilling);
                        item.IsValid             = false;
                    }
                }
                if (string.IsNullOrEmpty(item.CountryShipping))
                {
                    if (!string.IsNullOrEmpty(item.CityShipping))
                    {
                        item.CityShippingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_PROVINCE_REQUIRED_COUNTRY], item.CityShipping);
                        item.IsValid           = false;
                    }
                }
                else
                {
                    string countShipping = item.CountryShipping?.ToLower();
                    var country          = countries.FirstOrDefault(i => i.NameEn.ToLower() == countShipping);
                    if (country != null)
                    {
                        item.CountryShippingId = country.Id;
                        if (!string.IsNullOrEmpty(item.CityShipping))
                        {
                            string cityShipping = item.CityShipping.ToLower();
                            var province        = provinces.FirstOrDefault(i => i.NameEn.ToLower() == cityShipping && i.CountryId == country.Id);
                            if (province == null)
                            {
                                item.CityShippingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_PROVINCE_SHIPPING_NOT_FOUND], item.CityShipping);
                                item.IsValid           = false;
                            }
                            else
                            {
                                item.ProvinceShippingId = province.Id;
                            }
                        }
                    }
                    else
                    {
                        item.CountryShippingError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PARTNER_COUNTRY_SHIPPING_NOT_FOUND], item.CountryShipping);
                        item.IsValid = false;
                    }
                }
            });
            return(list);
        }
コード例 #9
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);
        }
コード例 #10
0
        private List <CatPlaceImportModel> CheckWarehouseValidImport(List <CatPlaceImportModel> list, string placeTypeName)
        {
            var countries  = countryRepository.Get().ToList();
            var provinces  = DataContext.Get(x => x.PlaceTypeId == PlaceTypeEx.GetPlaceType(CatPlaceTypeEnum.Province)).ToList();
            var districts  = DataContext.Get(x => x.PlaceTypeId == PlaceTypeEx.GetPlaceType(CatPlaceTypeEnum.District)).ToList();
            var warehouses = DataContext.Get(x => x.PlaceTypeId == placeTypeName).ToList();
            var results    = new List <CatPlaceImportModel>();

            foreach (var item in list)
            {
                var result = CheckCatplaceValidImport(warehouses, results, item);
                result.PlaceTypeId = placeTypeName;
                if (string.IsNullOrEmpty(item.Address))
                {
                    result.AddressError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_ADDRESS_EMPTY];
                    result.IsValid      = false;
                }
                else
                {
                    result.Address = item.Address;
                }
                if (string.IsNullOrEmpty(item.CountryName))
                {
                    result.CountryNameError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_COUNTRY_NAME_EMPTY];
                    result.IsValid          = false;
                }
                else
                {
                    var country = countries.FirstOrDefault(i => i.NameEn.ToLower() == item.CountryName.ToLower());
                    if (country == null)
                    {
                        result.CountryNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_COUNTRY_NOT_FOUND], item.CountryName);
                        result.IsValid          = false;
                    }
                    else
                    {
                        result.CountryId = country.Id;
                        if (!string.IsNullOrEmpty(item.ProvinceName))
                        {
                            var province = provinces.FirstOrDefault(i => i.NameEn.ToLower() == item.ProvinceName.ToLower() && (i.CountryId == country.Id || country == null));
                            if (province == null)
                            {
                                result.ProvinceNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_PROVINCE_NOT_FOUND], item.ProvinceName, item.CountryName);
                                result.IsValid           = false;
                            }
                            else
                            {
                                result.ProvinceId = province.Id;
                                if (!string.IsNullOrEmpty(item.DistrictName))
                                {
                                    var district = districts.FirstOrDefault(i => i.NameEn.ToLower() == item.DistrictName.ToLower() && (i.ProvinceId == province.Id || province == null));
                                    if (district == null)
                                    {
                                        result.DistrictNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_DISTRICT_NOT_FOUND], item.DistrictName, item.ProvinceName);
                                        result.IsValid           = false;
                                    }
                                    else
                                    {
                                        result.DistrictId = district.Id;
                                    }
                                }
                            }
                        }
                    }
                }
                result.PlaceTypeId = placeTypeName;
                results.Add(result);
            }
            return(results);
        }
コード例 #11
0
        private List <CatPlaceImportModel> CheckDistrictValidImport(List <CatPlaceImportModel> list, string placeTypeName)
        {
            var countries = countryRepository.Get();
            var places    = Get();
            var provinces = places.Where(x => x.PlaceTypeId == PlaceTypeEx.GetPlaceType(CatPlaceTypeEnum.Province)).ToList();
            var districts = places.Where(x => x.PlaceTypeId == placeTypeName).ToList();

            list.ForEach(item =>
            {
                item.PlaceTypeId = placeTypeName;
                if (string.IsNullOrEmpty(item.Code))
                {
                    item.CodeError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_CODE_EMPTY];
                    item.IsValid   = false;
                }

                if (string.IsNullOrEmpty(item.NameEn))
                {
                    item.NameEnError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_NAME_EN_EMPTY];
                    item.IsValid     = false;
                }
                if (string.IsNullOrEmpty(item.NameVn))
                {
                    item.NameVnError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_NAME_LOCAL_EMPTY];
                    item.IsValid     = false;
                }
                if (string.IsNullOrEmpty(item.CountryName))
                {
                    item.CountryNameError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_COUNTRY_NAME_EMPTY];
                    item.IsValid          = false;
                }
                if (string.IsNullOrEmpty(item.ProvinceName))
                {
                    item.ProvinceNameError = stringLocalizer[CatalogueLanguageSub.MSG_PLACE_PROVINCE_NAME_EMPTY];
                    item.IsValid           = false;
                }
                else
                {
                    if (!string.IsNullOrEmpty(item.CountryName))
                    {
                        var country = countries.FirstOrDefault(i => i.NameEn.ToLower() == item.CountryName.ToLower());
                        if (country == null)
                        {
                            item.CountryNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_COUNTRY_NOT_FOUND], item.CountryName);
                            item.IsValid          = false;
                        }
                        else
                        {
                            item.CountryId = country.Id;
                            var province   = provinces.FirstOrDefault(i => i.NameEn.ToLower() == item.ProvinceName.ToLower() && (i.CountryId == country.Id || country == null));

                            if (province == null)
                            {
                                item.ProvinceNameError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_PROVINCE_NOT_FOUND], item.ProvinceName, item.CountryName);
                                item.IsValid           = false;
                            }
                            else
                            {
                                item.ProvinceId = province.Id;

                                var district = districts.FirstOrDefault(i => i.Code.ToLower() == item.Code.ToLower());
                                if (district != null)
                                {
                                    item.CodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_CODE_EXISTED], item.Code);
                                    item.IsValid   = false;
                                }
                                else
                                {
                                    var countNew = list.Count(i => i.Code.ToLower() == item.Code.ToLower());
                                    if (countNew > 1)
                                    {
                                        item.CodeError = string.Format(stringLocalizer[CatalogueLanguageSub.MSG_PLACE_CODE_DUPLICATE], item.Code);
                                        item.IsValid   = false;
                                    }
                                }
                            }
                        }
                    }
                }
            });
            return(list);
        }