public void CreatePattern(DriverAllowancePatternViewModel pattern)
 {
     try
     {
         var unitpricemethod = Convert.ToInt64(pattern.UnitPriceMethodI);
         if (unitpricemethod == 0)
         {
             if (pattern != null)
             {
                 var iloop    = 1;
                 var patterns = pattern.TarrifPatterns;
                 foreach (var patternM in patterns.Select(pat => new DriverAllowance_M
                 {
                     CustomerMainC = pattern.CustomerMainC,
                     CustomerSubC = pattern.CustomerSubC,
                     ApplyD = pattern.ApplyD,
                     DepartureC = pat.DepartureC,
                     DestinationC = pat.DestinationC,
                     ContainerSizeI = pat.ContainerSizeI,
                     EmptyGoods = pat.EmptyGoods,
                     UnitPrice = pat.UnitPrice,
                     UnitPriceMethodI = pattern.UnitPriceMethodI,
                     ContainerSize = "",
                     Empty = 0,
                     ShortRoad = 0,
                     LongRoad = 0,
                     GradientRoad = 0,
                     DriverAllowanceId = iloop,
                     DisplayLineNo = iloop++
                 }))
                 {
                     _driverAllowanceRepository.Add(patternM);
                 }
             }
         }
         else
         {
             if (unitpricemethod == 1)
             {
                 DriverAllowance_M model = new DriverAllowance_M();
                 model.CustomerMainC     = pattern.CustomerMainC;
                 model.CustomerSubC      = pattern.CustomerSubC;
                 model.UnitPriceMethodI  = pattern.UnitPriceMethodI;
                 model.ApplyD            = pattern.ApplyD;
                 model.DepartureC        = "";
                 model.DestinationC      = "";
                 model.ContainerSizeI    = "";
                 model.EmptyGoods        = 0;
                 model.UnitPrice         = 0;
                 model.UnitPriceRate     = pattern.UnitPriceRate;
                 model.DriverAllowanceId = 1;
                 model.DisplayLineNo     = 1;
                 model.ContainerSize     = "";
                 model.Empty             = 0;
                 model.ShortRoad         = 0;
                 model.LongRoad          = 0;
                 model.GradientRoad      = 0;
                 _driverAllowanceRepository.Add(model);
             }
             else if (unitpricemethod == 2)
             {
                 if (pattern != null)
                 {
                     var iloop    = 1;
                     var patterns = pattern.TarrifPatterns;
                     for (int i = 0; i < patterns.Count; i++)
                     {
                         DriverAllowance_M daM = new DriverAllowance_M();
                         daM.CustomerMainC     = pattern.CustomerMainC;
                         daM.CustomerSubC      = pattern.CustomerSubC;
                         daM.ApplyD            = pattern.ApplyD;
                         daM.DepartureC        = "";
                         daM.DestinationC      = "";
                         daM.ContainerSizeI    = "";
                         daM.EmptyGoods        = 0;
                         daM.UnitPrice         = 0;
                         daM.UnitPriceMethodI  = pattern.UnitPriceMethodI;
                         daM.ContainerSize     = patterns[i].ContainerSize;
                         daM.Empty             = patterns[i].Empty;
                         daM.ShortRoad         = patterns[i].ShortRoad;
                         daM.LongRoad          = patterns[i].LongRoad;
                         daM.GradientRoad      = patterns[i].GradientRoad;
                         daM.UnitPriceRate     = pattern.UnitPriceRate;
                         daM.DriverAllowanceId = iloop++;
                         daM.DisplayLineNo     = iloop++;
                         _driverAllowanceRepository.Add(daM);
                     }
                     ;
                 }
             }
             else
             {
                 if (unitpricemethod == 3)
                 {
                     DriverAllowance_M model = new DriverAllowance_M();
                     model.CustomerMainC    = pattern.CustomerMainC;
                     model.CustomerSubC     = pattern.CustomerSubC;
                     model.UnitPriceMethodI = pattern.UnitPriceMethodI;
                     model.ApplyD           = pattern.ApplyD;
                     model.DepartureC       = "";
                     model.DestinationC     = "";
                     model.ContainerSizeI   = "";
                     model.EmptyGoods       = 0;
                     model.UnitPrice        = 0;
                     _driverAllowanceRepository.Add(model);
                 }
             }
         }
         SaveDriverAllowance();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }