public void CreatePattern(ContractTariffViewModel pattern)
        {
            if (pattern != null)
            {
                var iloop    = 1;
                var patterns = pattern.TarrifPatterns;

                foreach (var patternM in patterns.Select(pat => new ContractTariffPattern_M
                {
                    CustomerMainC = pattern.CustomerMainC,
                    CustomerSubC = pattern.CustomerSubC,
                    ApplyD = pattern.ApplyD,
                    DepartureC = pat.DepartureC,
                    DestinationC = pat.DestinationC,
                    ContainerSizeI = pat.ContainerSizeI,
                    UnitPrice = pat.UnitPrice,
                    CommodityC = pat.CommodityC,
                    CommodityN = pat.CommodityN,
                    CalculateByTon = pat.CalculateByTon,
                    DisplayLineNo = iloop++
                }))
                {
                    _contractTariffPatternRepository.Add(patternM);
                }
            }

            SaveContactTariffPattern();
        }
        public ContractTariffViewModel GetContractTariffPattern(string customerMainC, string customerSubC, DateTime applyD)
        {
            var tarriffs = (from p in _contractTariffPatternRepository.GetAllQueryable()
                            join dp in _locationRepository.GetAllQueryable() on p.DepartureC equals dp.LocationC
                            join ds in _locationRepository.GetAllQueryable() on p.DestinationC equals ds.LocationC
                            where p.CustomerMainC == customerMainC &&
                            p.CustomerSubC == customerSubC && p.ApplyD == applyD
                            select new TariffPatternViewModel
            {
                DepartureC = p.DepartureC,
                DepartureN = dp.LocationN,
                DestinationC = p.DestinationC,
                DestinationN = ds.LocationN,
                ContainerSizeI = p.ContainerSizeI,
                UnitPrice = p.UnitPrice,
                DisplayLineNo = p.DisplayLineNo,
                CommodityC = p.CommodityC,
                CommodityN = p.CommodityN,
                CalculateByTon = p.CalculateByTon,
            }).OrderBy("DisplayLineNo asc, ContainerSizeI asc").ToList();

            var model = new ContractTariffViewModel
            {
                CustomerMainC = customerMainC,
                CustomerSubC  = customerSubC,
                CustomerN     =
                    _customerRepository.Query(i => i.CustomerMainC == customerMainC && i.CustomerSubC == customerSubC)
                    .Select(i => i.CustomerN)
                    .FirstOrDefault(),
                ApplyD         = applyD,
                TarrifPatterns = tarriffs
            };

            if (tarriffs.Count > 0)
            {
                model.PatternIndex = FindIndex(customerMainC, customerSubC, applyD);
            }

            return(model);
        }
 public void Put(ContractTariffViewModel pattern)
 {
     _contractTariffPatternService.UpdatePattern(pattern);
 }
 public void Post(ContractTariffViewModel pattern)
 {
     _contractTariffPatternService.CreatePattern(pattern);
 }