private UserSyncContext GetSyncContext(SynchronizationConfig config, IEnumerable <IGrouping <int, ShipInfo> > grouping) { var sync = new UserSyncContext(); var user = _sysUserService.GetModelById(config.UserId); sync.TaskId = user.PlaneNumber; sync.UserId = config.UserId; sync.SyncPeriodHours = config.SyncUnit.Equals("1") ? config.SyncPeriod : config.SyncPeriod * 24; sync.Shops = new List <ShipInfo>(); var myShops = grouping.FirstOrDefault(x => x.Key == config.UserId).ToList(); var shopIds = config.StoreIds.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); var syncShops = myShops.FindAll(x => shopIds.Contains(x.Id.ToString())); sync.Shops.AddRange(syncShops); return(sync); }