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

            InaccessibleTerritory = await _context.InaccessibleTerritories.Include(x => x.StreetTerritory).FirstOrDefaultAsync(m => m.TerritoryId == id);

            if (InaccessibleTerritory == null)
            {
                return(NotFound());
            }
            return(Page());
        }
示例#2
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            InaccessibleTerritory = await _context.InaccessibleTerritories.FindAsync(id);

            if (InaccessibleTerritory != null)
            {
                _context.InaccessibleTerritories.Remove(InaccessibleTerritory);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
示例#3
0
        public void Populate()
        {
            // copy inaccessible territories from source
            var sourceTerritories = _sourceDb.InaccessibleTerritories
                                    .Include(x => x.StreetTerritory)
                                    .Include(x => x.InaccessibleProperties)
                                    .ThenInclude(x => x.ContactLists)
                                    .ThenInclude(x => x.Contacts)
                                    .ThenInclude(x => x.ContactActivity)
                                    .ThenInclude(x => x.Publisher)
                                    .AsNoTracking()
                                    .ToList();

            foreach (var t in sourceTerritories)
            {
                var streetTerritoryId = _targetDb.StreetTerritories.Where(x => x.TerritoryCode == t.StreetTerritory.TerritoryCode).Select(x => x.TerritoryId).FirstOrDefault();

                var territory = new InaccessibleTerritory
                {
                    TerritoryCode     = t.TerritoryCode,
                    StreetTerritoryId = streetTerritoryId,
                    InActive          = t.InActive
                };

                foreach (var p in t.InaccessibleProperties)
                {
                    var property = new InaccessibleProperty
                    {
                        ResearchedDate         = p.ResearchedDate,
                        StreetNumbers          = p.StreetNumbers,
                        Street                 = p.Street,
                        City                   = p.City,
                        State                  = p.State,
                        PostalCode             = p.PostalCode,
                        EstimatedDwellingCount = p.EstimatedDwellingCount,
                        PropertyName           = p.PropertyName,
                        Description            = p.Description
                    };

                    foreach (var l in p.ContactLists)
                    {
                        var list = new InaccessibleContactList
                        {
                            CreateDate = l.CreateDate
                        };

                        foreach (var c in l.Contacts)
                        {
                            int?assign = null;
                            if (c.AssignPublisherId.HasValue)
                            {
                                assign = mapSourcePublisherTargetPublisher[c.AssignPublisherId.Value];
                            }

                            var contact = new InaccessibleContact
                            {
                                AssignPublisherId = assign,
                                AssignDate        = c.AssignDate,
                                FirstName         = c.FirstName,
                                LastName          = c.LastName,
                                MiddleInitial     = c.MiddleInitial,
                                Age             = c.Age,
                                MailingAddress1 = c.MailingAddress1,
                                MailingAddress2 = c.MailingAddress2,
                                City            = c.City,
                                State           = c.State,
                                PostalCode      = c.PostalCode,
                                PhoneTypeId     = c.PhoneTypeId,
                                PhoneNumber     = c.PhoneNumber,
                                EmailAddresses  = c.EmailAddresses,
                            };

                            foreach (var a in c.ContactActivity)
                            {
                                int pub = mapSourcePublisherTargetPublisher[a.PublisherId];

                                contact.ContactActivity.Add(new InaccessibleContactActivity
                                {
                                    PublisherId           = pub,
                                    ActivityDate          = a.ActivityDate,
                                    ContactActivityTypeId = a.ContactActivityTypeId,
                                    PhoneCallerIdBlocked  = a.PhoneCallerIdBlocked,
                                    PhoneResponseTypeId   = a.PhoneResponseTypeId,
                                    Notes = a.Notes
                                });
                            }
                            list.Contacts.Add(contact);
                        }
                        property.ContactLists.Add(list);
                    }
                    territory.InaccessibleProperties.Add(property);
                }
                _targetDb.Add(territory);
            }

            _targetDb.SaveChanges();

            //this will set the current contact list for the property
            _targetDb.Database.ExecuteSqlRaw(@"
                UPDATE 
                InaccessibleProperties 
                SET 
                CurrentContactListId = (
                    SELECT MAX(InaccessibleContactListId)
                    FROM InaccessibleContactLists i
                    WHERE i.InaccessiblePropertyId = InaccessibleProperties.InaccessiblePropertyId 
                )"
                                             );


            var srcTerritories = _sourceDb.InaccessibleTerritories.Include(x => x.Activity);

            foreach (var srcTerritory in srcTerritories)
            {
                var targetTerritory = _targetDb.InaccessibleTerritories.Where(x => x.TerritoryCode == srcTerritory.TerritoryCode).FirstOrDefault();
                foreach (var srcActivity in srcTerritory.Activity.OrderBy(x => x.CheckOutDate))
                {
                    targetTerritory.Activity.Add(new TerritoryActivity
                    {
                        PublisherId  = mapSourcePublisherTargetPublisher[srcActivity.PublisherId],
                        CheckOutDate = srcActivity.CheckOutDate,
                        CheckInDate  = srcActivity.CheckInDate,
                        Notes        = srcActivity.Notes
                    });
                }
                _targetDb.SaveChanges();
            }

            mapSourceStreetTerritoryTargetStreetTerritory = new Dictionary <int, int>();

            foreach (var srcStreetTerritory in _sourceDb.StreetTerritories)
            {
                var targetStreetTerritory = _targetDb.StreetTerritories.Where(x => x.TerritoryCode == srcStreetTerritory.TerritoryCode).FirstOrDefault();
                mapSourceStreetTerritoryTargetStreetTerritory.Add(srcStreetTerritory.TerritoryId, targetStreetTerritory.TerritoryId);
            }

            foreach (var srcDoNotContactLetter in _sourceDb.DoNotContactLetters.OrderBy(x => x.ReportedDate))
            {
                _targetDb.DoNotContactLetters.Add(new DoNotContactLetter
                {
                    TerritoryId     = mapSourceStreetTerritoryTargetStreetTerritory[srcDoNotContactLetter.TerritoryId],
                    PublisherId     = mapSourcePublisherTargetPublisher[srcDoNotContactLetter.PublisherId],
                    ReportedDate    = srcDoNotContactLetter.ReportedDate,
                    MailingAddress1 = srcDoNotContactLetter.MailingAddress1,
                    MailingAddress2 = srcDoNotContactLetter.MailingAddress2,
                    Notes           = srcDoNotContactLetter.Notes
                });
            }

            foreach (var srcDoNotContactPhone in _sourceDb.DoNotContactPhones.OrderBy(x => x.ReportedDate))
            {
                _targetDb.DoNotContactPhones.Add(new DoNotContactPhone
                {
                    PublisherId  = mapSourcePublisherTargetPublisher[srcDoNotContactPhone.PublisherId],
                    ReportedDate = srcDoNotContactPhone.ReportedDate,
                    PhoneNumber  = srcDoNotContactPhone.PhoneNumber,
                    Notes        = srcDoNotContactPhone.Notes
                });
            }

            foreach (var srcDoNotContactStreet in _sourceDb.DoNotContactStreets.OrderBy(x => x.ReportedDate))
            {
                _targetDb.DoNotContactStreets.Add(new DoNotContactStreet
                {
                    TerritoryId   = mapSourceStreetTerritoryTargetStreetTerritory[srcDoNotContactStreet.TerritoryId],
                    PublisherId   = mapSourcePublisherTargetPublisher[srcDoNotContactStreet.PublisherId],
                    ReportedDate  = srcDoNotContactStreet.ReportedDate,
                    StreetAddress = srcDoNotContactStreet.StreetAddress,
                    Coordinates   = srcDoNotContactStreet.Coordinates,
                    Notes         = srcDoNotContactStreet.Notes
                });
            }

            _targetDb.SaveChanges();
        }