示例#1
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            StreetTerritory = await _context.StreetTerritories.FirstOrDefaultAsync(m => m.TerritoryId == id);

            if (StreetTerritory == null)
            {
                return(NotFound());
            }
            return(Page());
        }
示例#2
0
        // Application starting point
        public void Legacy()
        {
            List <LegacyTerritory> legacyTerritories = new List <LegacyTerritory>();

            // get the legacy data out of the database
            legacyTerritories = _legacyDb.LegacyTerritories.Include(a => a.LedgerEntries).ThenInclude(a => a.User).AsNoTracking().ToList();

            // distinct list of legacy users
            var legacyUsers = legacyTerritories.SelectMany(a => a.LedgerEntries.Select(b => new { b.User.UserId, b.User.FirstName, b.User.LastName })).Distinct().ToList();

            mapLegacyUserTargetPublisher = new Dictionary <string, int>();
            // create the publishers in the target db
            foreach (var u in legacyUsers.OrderBy(a => a.LastName))
            {
                var pub = new Publisher {
                    FirstName = u.FirstName, LastName = u.LastName
                };
                _targetDb.Add(pub);
                _targetDb.SaveChanges();
                mapLegacyUserTargetPublisher.Add(u.UserId, pub.PublisherId);
            }

            mapSourcePublisherTargetPublisher = new Dictionary <int, int>();
            // create the publishers in the target db
            foreach (var srcPub in _sourceDb.Publishers.OrderBy(a => a.LastName))
            {
                if (!_targetDb.Publishers.Any(x => x.FirstName == srcPub.FirstName && x.LastName == srcPub.LastName))
                {
                    var pub = new Publisher {
                        FirstName = srcPub.FirstName, LastName = srcPub.LastName
                    };
                    _targetDb.Add(pub);
                    _targetDb.SaveChanges();
                    mapSourcePublisherTargetPublisher.Add(srcPub.PublisherId, pub.PublisherId);
                }
                else
                {
                    foreach (var pub in _targetDb.Publishers.Where(x => x.FirstName == srcPub.FirstName && x.LastName == srcPub.LastName))
                    {
                        mapSourcePublisherTargetPublisher.Add(srcPub.PublisherId, pub.PublisherId);
                    }
                }
            }

            mapLegacyTerritoryTargetStreetTerritory = new Dictionary <int, int>();
            // create the street territories
            foreach (var t in legacyTerritories.OrderBy(a => a.TerritoryCode))
            {
                var territoryCode = $"{t.TerritoryCode.Substring(0, 1).ToUpper()}-{int.Parse(t.TerritoryCode.Substring(1)):000}";
                var street        = new StreetTerritory {
                    TerritoryCode = territoryCode, InActive = t.InActive, RefId = t.TerritoryId
                };
                _targetDb.Add(street);
                _targetDb.SaveChanges();
                mapLegacyTerritoryTargetStreetTerritory.Add(t.TerritoryId, street.TerritoryId);
                foreach (var entry in t.LedgerEntries.OrderBy(x => x.CheckOutDate))
                {
                    street.Activity.Add(new TerritoryActivity
                    {
                        PublisherId  = mapLegacyUserTargetPublisher[entry.UserId],
                        CheckOutDate = entry.CheckOutDate,
                        CheckInDate  = entry.CheckInDate
                    });
                    _targetDb.SaveChanges();
                }
            }
        }