Exemple #1
0
        /// <summary>
        /// Add new site record
        /// </summary>
        /// <param name="siteItem"></param>
        /// <param name="email"></param>
        /// <returns></returns>
        public Site Add(SiteItems siteItem, string email)
        {
            Site site = new Site();

            site.Name      = siteItem.SiteName;
            site.StartDate = Convert.ToDateTime(siteItem.SiteStartDate);

            site.IsPrimarySite = siteItem.SiteIsPrimarySite;

            site.ClinicalPopulationTypeId = siteItem.SiteClinicalPopulationType == null ? default(int?) : siteItem.SiteClinicalPopulationType.Id;

            site.CollectionProductTypeId = siteItem.SiteCollectionProductType == null ? default(int?) : siteItem.SiteCollectionProductType.Id;
            site.CBCollectionTypeId      = siteItem.SiteCBCollectionType == null ? default(int?) : siteItem.SiteCBCollectionType.Id;
            site.CBUnitTypeId            = siteItem.SiteCBUnitType == null ? default(int?) : siteItem.SiteCBUnitType.Id;
            //site.CBUnitsBanked = siteItem.SiteUnitsBanked;

            //if (!string.IsNullOrWhiteSpace(siteItem.SiteUnitsBankedDate))
            //{
            //    site.CBUnitsBankDate = Convert.ToDateTime(siteItem.SiteUnitsBankedDate);
            //}

            site.CreatedBy   = email;
            site.CreatedDate = DateTime.Now;

            if (siteItem.SiteAddresses != null)
            {
                site.SiteAddresses = new List <SiteAddress>();

                foreach (var siteAddressItem in siteItem.SiteAddresses)
                {
                    Address address = new Address();
                    address.AddressTypeId = siteAddressItem.Address.AddressType.Id;
                    address.Street1       = siteAddressItem.Address.Street1;
                    address.Street2       = siteAddressItem.Address.Street2;
                    address.City          = siteAddressItem.Address.City;
                    address.StateId       = siteAddressItem.Address.State != null ? siteAddressItem.Address.State.Id : (int?)null;
                    address.Province      = siteAddressItem.Address.Province;
                    address.ZipCode       = siteAddressItem.Address.ZipCode;
                    address.CountryId     = siteAddressItem.Address.Country.Id;
                    address.Phone         = siteItem.SitePhone;
                    address.CreatedBy     = email;
                    address.CreatedDate   = DateTime.Now;

                    SiteAddress siteAddress = new SiteAddress();
                    siteAddress.Address          = address;
                    siteAddress.CreatedBy        = email;
                    siteAddress.IsPrimaryAddress = false;
                    siteAddress.CreatedDate      = DateTime.Now;

                    site.SiteAddresses.Add(siteAddress);
                }
            }

            base.Repository.Add(site);

            return(site);
        }
Exemple #2
0
        private void CreateSitemapeParallel(SiteAddress sa)
        {
            listVisitedLinks = new System.Collections.Generic.List <string>();

            targetSiteObj = new TargetSITE(sa.UrlAddress);

            SiteMape sm = new SiteMape {
                SiteAddress = sa, NameSateMape = "AUTO_GENERATED"
            };

            this._db.SiteMapes.Add(sm);

            this._db.SaveChanges();



            DeepSearchSitemapParallel(sm, Researching(targetSiteObj.WholeName));

            listVisitedLinks = null;
        }
Exemple #3
0
        private int SearchSitePage(List <string> listSiteMap, SiteAddress sa)
        {
            List <TimeSpan> lts = new List <TimeSpan>();
            List <string>   l_s_m;//list site mape
            string          str             = "";
            object          o               = new object();
            int             countFoundPages = 0;

            foreach (string xmlPage in listSiteMap)
            {
                System.Threading.Tasks.Parallel.For(0, this._amountOfTests, (x) =>
                {
                    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
                    sw.Reset();
                    sw.Start();
                    str = RequestByUrl(xmlPage);
                    sw.Stop();
                    lock (o)
                    {
                        lts.Add(sw.Elapsed);
                    }
                });

                l_s_m = SearchPattern(str, _httpwebPage, 1);

                if (l_s_m.Count == 0)
                {
                    continue;
                }
                countFoundPages++;
                SiteMape sm = new SiteMape {
                    SiteAddress = sa, NameSateMape = xmlPage, TimeMax = lts.Max(), TimeMin = lts.Min(), TimeAverage = new TimeSpan((long)lts.Average(x => x.Ticks))
                };

                this._db.SiteMapes.Add(sm);
                this._db.SaveChanges();

                SaveListPageThreadPool(l_s_m, sm);
            }
            return(countFoundPages);
        }
 internal override void SetXML(XmlElement xml, BaseClassIfc host, HashSet <int> processed)
 {
     base.SetXML(xml, host, processed);
     if (mRefLatitude != "$")
     {
         xml.SetAttribute("RefLatitude", mRefLatitude.Substring(1, mRefLatitude.Length - 2).Replace(',', ' '));
     }
     if (mRefLongitude != "$")
     {
         xml.SetAttribute("RefLongitude", mRefLongitude.Substring(1, mRefLongitude.Length - 2).Replace(',', ' '));
     }
     if (!double.IsNaN(mRefElevation))
     {
         xml.SetAttribute("RefElevation", mRefElevation.ToString());
     }
     setAttribute(xml, "LandTitleNumber", LandTitleNumber);
     if (mSiteAddress > 0)
     {
         xml.AppendChild(SiteAddress.GetXML(xml.OwnerDocument, "SiteAddress", this, processed));
     }
 }
Exemple #5
0
        /// <summary>
        /// point of enter for processing
        /// </summary>
        /// <param name="siteAddress"></param>
        /// <returns></returns>
        public ICollection <string> LookForSiteAddress(SiteAddress siteAddress)
        {
            siteAddress.UrlAddress = MathcAddress(siteAddress.UrlAddress, _httpwebAddress, 0);

            //check in the existence of the site
            if (SiteIPAddress(siteAddress.UrlAddress).Count == 0)
            {
                return new List <string> {
                           "site does not exist"
                }
            }
            ;

            SiteAddress sa = new SiteAddress {
                UrlAddress = siteAddress.UrlAddress, GuidString = siteAddress.GuidString
            };

            //Save request by url
            this._db.SiteAddresses.Add(sa);
            this._db.SaveChanges();

            List <string> searchSiteMap = SearchSiteMap(siteAddress.UrlAddress);
            int           control       = 0;

            control = SearchSitePage(searchSiteMap, sa);
            if (control == 0)
            {
                CreateSitemapeParallel(sa);
            }

            var xml = this._db.SiteMapes.Where(x => x.SiteAddressId == sa.Id).Select(x => x.NameSateMape).ToList();

            List <string> list = new List <string> {
                "you can go to the history of requests", "URL address: ", sa.UrlAddress, "Found *.xml: " + xml.Count().ToString()
            };

            list.AddRange(xml);
            list.Add(_counterPages + " pages were found");
            return(list);
        }
        private void ManageSiteAddresses(SiteItems siteItem, Site site, string email)
        {
            var siteManager        = this.container.GetInstance <SiteManager>();
            var siteAddressManager = this.container.GetInstance <SiteAddressManager>();
            var addressManager     = this.container.GetInstance <AddressManager>();
            var distanceManager    = this.container.GetInstance <DistanceManager>();

            if (siteItem.SiteId != 0) // site update case
            {
                var tempSite = siteManager.GetById(siteItem.SiteId);

                if (tempSite != null && tempSite.SiteAddresses != null)
                {
                    var primaryAddress = tempSite.SiteAddresses.FirstOrDefault(x => x.IsPrimaryAddress == true);

                    if (primaryAddress != null) // update primary address
                    {
                        var address = addressManager.GetById(primaryAddress.AddressId);
                        address.Street1     = siteItem.SiteStreetAddress1;
                        address.Street2     = siteItem.SiteStreetAddress2;
                        address.City        = siteItem.SiteCity;
                        address.StateId     = siteItem.SiteState?.Id;
                        address.Province    = siteItem.SiteProvince;
                        address.Phone       = siteItem.SitePhone;
                        address.ZipCode     = siteItem.SiteZip;
                        address.CountryId   = siteItem.SiteCountry?.Id ?? 0;
                        address.UpdatedBy   = email;
                        address.UpdatedDate = DateTime.Now;
                        addressManager.Save(address);
                    }
                    else //add primary address
                    {
                        var address = new Address
                        {
                            AddressTypeId = (int)Constants.AddressType.Office,
                            Street1       = siteItem.SiteStreetAddress1,
                            Street2       = siteItem.SiteStreetAddress2,
                            City          = siteItem.SiteCity,
                            StateId       = siteItem.SiteState?.Id,
                            Province      = siteItem.SiteProvince,
                            ZipCode       = siteItem.SiteZip,
                            CountryId     = siteItem.SiteCountry?.Id ?? 0,
                            Phone         = siteItem.SitePhone,
                            CreatedBy     = email,
                            CreatedDate   = DateTime.Now
                        };
                        addressManager.Add(address);

                        var siteAddress = new SiteAddress
                        {
                            SiteId           = siteItem.SiteId,
                            AddressId        = address.Id,
                            IsPrimaryAddress = true,
                            CreatedBy        = email,
                            CreatedDate      = DateTime.Now
                        };

                        siteAddressManager.Add(siteAddress);
                    }

                    if (siteItem.SiteAddresses != null)
                    {
                        foreach (var siteAddressItem in siteItem.SiteAddresses)
                        {
                            if (siteAddressItem.Id == 0) //new site address
                            {
                                var address = new Address
                                {
                                    AddressTypeId = siteAddressItem.Address.AddressType.Id,
                                    Street1       = siteAddressItem.Address.Street1,
                                    Street2       = siteAddressItem.Address.Street2,
                                    City          = siteAddressItem.Address.City,
                                    StateId       =
                                        siteAddressItem.Address.State?.Id,
                                    Province    = siteAddressItem.Address.Province,
                                    ZipCode     = siteAddressItem.Address.ZipCode,
                                    CountryId   = siteAddressItem.Address.Country.Id,
                                    Phone       = siteAddressItem.Address.Phone,
                                    CreatedBy   = email,
                                    CreatedDate = DateTime.Now
                                };
                                //address.Phone = siteAddressItem.Address.Phone;

                                addressManager.Add(address);

                                var siteAddress = new SiteAddress
                                {
                                    SiteId           = siteItem.SiteId,
                                    AddressId        = address.Id,
                                    IsPrimaryAddress = false,
                                    CreatedBy        = email,
                                    CreatedDate      = DateTime.Now
                                };

                                siteAddressManager.Add(siteAddress);
                            }
                            else  // update site address
                            {
                                var address = addressManager.GetById(siteAddressItem.AddressId);
                                address.Street1     = siteAddressItem.Address.Street1;
                                address.Street2     = siteAddressItem.Address.Street2;
                                address.City        = siteAddressItem.Address.City;
                                address.StateId     = siteAddressItem.Address.State?.Id;
                                address.Province    = siteAddressItem.Address.Province;
                                address.Phone       = siteAddressItem.Address.Phone;
                                address.ZipCode     = siteAddressItem.Address.ZipCode;
                                address.CountryId   = siteAddressItem.Address.Country?.Id;
                                address.UpdatedBy   = email;
                                address.UpdatedDate = DateTime.Now;
                                addressManager.Save(address);
                            }
                        }

                        // delete site address
                        foreach (var siteAddress in tempSite.SiteAddresses.Where(x => x.IsPrimaryAddress != true))
                        {
                            var found = siteItem.SiteAddresses.Any(x => x.Id == siteAddress.Id);

                            if (!found)
                            {
                                var distanceList = siteAddress.Distances;

                                if (distanceList != null)
                                {
                                    foreach (var distance in distanceList)
                                    {
                                        distanceManager.Remove(distance.Id);
                                    }
                                }

                                siteAddressManager.Remove(siteAddress.Id);
                            }
                        }
                    }

                    this.InvalidateCache(email);
                }
            }
            else // new addresses for new site
            {
                var address = new Address
                {
                    AddressTypeId = (int)Constants.AddressType.Office,
                    Street1       = siteItem.SiteStreetAddress1,
                    Street2       = siteItem.SiteStreetAddress2,
                    City          = siteItem.SiteCity,
                    StateId       = siteItem.SiteState?.Id,
                    Province      = siteItem.SiteProvince,
                    ZipCode       = siteItem.SiteZip,
                    CountryId     = siteItem.SiteCountry?.Id ?? 0,
                    Phone         = siteItem.SitePhone,
                    CreatedBy     = email,
                    CreatedDate   = DateTime.Now
                };
                //address.Phone = site.Phone;

                addressManager.Add(address);

                var siteAddress = new SiteAddress
                {
                    SiteId           = site.Id,
                    AddressId        = address.Id,
                    IsPrimaryAddress = true,
                    CreatedBy        = email,
                    CreatedDate      = DateTime.Now
                };

                siteAddressManager.Add(siteAddress);
            }
        }
 public ActionResult SearchDeepSiteMape(SiteAddress hostName)
 {
     return(PartialView(proc.LookForSiteAddress(hostName)));
 }
 public IEnumerable <SitePage> Put(int id, [FromBody] SiteAddress hostName)
 {
     return(proc.SearchSitePage(id).Select(x => new SitePage {
         Id = x.Id, TimeMin = x.TimeMin, TimeMax = x.TimeMax, NameSitePage = x.NameSitePage, Number = x.Number
     }));
 }
 public IEnumerable <string> POST([FromBody] SiteAddress hostName)
 {
     return(proc.LookForSiteAddress(hostName));
 }
Exemple #10
0
        /// <summary>
        /// Update site record
        /// </summary>
        /// <param name="siteItem"></param>
        /// <param name="email"></param>
        /// <returns></returns>
        public Site Update(SiteItems siteItem, string email)
        {
            var site = base.Repository.GetById(siteItem.SiteId);

            site.Name      = siteItem.SiteName;
            site.StartDate = Convert.ToDateTime(siteItem.SiteStartDate);

            //site.StreetAddress1 = siteItem.SiteStreetAddress1;
            //site.StreetAddress2 = siteItem.SiteStreetAddress2;
            //site.City = siteItem.SiteCity;
            //site.Zip = siteItem.SiteZip;

            //site.StateId = siteItem.SiteState == null ? default(int?) : siteItem.SiteState.Id == 0 ? default(int?) : siteItem.SiteState.Id;
            //site.Province = siteItem.SiteProvince;
            //site.CountryId = siteItem.SiteCountry.Id;

            //site.Phone = siteItem.SitePhone;

            site.IsPrimarySite = siteItem.SiteIsPrimarySite;

            //site.ClinicalTypeId = siteItem.SiteClinicalType == null ? default(int?) : siteItem.SiteClinicalType.Id;
            //site.ProcessingTypeId = siteItem.SiteProcessingType == null ? default(int?) : siteItem.SiteProcessingType.Id;
            site.CollectionProductTypeId  = siteItem.SiteCollectionProductType == null || siteItem.SiteCollectionProductType.Id == 0 ? default(int?) : siteItem.SiteCollectionProductType.Id;
            site.ClinicalPopulationTypeId = siteItem.SiteClinicalPopulationType == null || siteItem.SiteClinicalPopulationType.Id == 0 ? default(int?) : siteItem.SiteClinicalPopulationType.Id;
            //site.TransplantTypeId = siteItem.SiteTransplantType == null ? default(int?) : siteItem.SiteTransplantType.Id;

            site.CBCollectionTypeId = siteItem.SiteCBCollectionType == null || siteItem.SiteCBCollectionType.Id == 0 ? default(int?) : siteItem.SiteCBCollectionType.Id;
            site.CBUnitTypeId       = siteItem.SiteCBUnitType == null || siteItem.SiteCBUnitType.Id == 0 ? default(int?) : siteItem.SiteCBUnitType.Id;
            site.CBUnitsBanked      = siteItem.SiteUnitsBanked;

            if (!string.IsNullOrWhiteSpace(siteItem.SiteUnitsBankedDate))
            {
                site.CBUnitsBankDate = Convert.ToDateTime(siteItem.SiteUnitsBankedDate);
            }

            if (site.SiteAddresses != null)
            {
                var address = site.SiteAddresses.FirstOrDefault(x => x.IsPrimaryAddress.GetValueOrDefault());

                if (address != null)
                {
                    address.Address.Street1     = siteItem.SiteStreetAddress1;
                    address.Address.Street2     = siteItem.SiteStreetAddress2;
                    address.Address.City        = siteItem.SiteCity;
                    address.Address.StateId     = siteItem.SiteState == null ? default(int?) : siteItem.SiteState.Id == 0 ? default(int?) : siteItem.SiteState.Id;
                    address.Address.ZipCode     = siteItem.SiteZip;
                    address.Address.CountryId   = siteItem.SiteCountry.Id;
                    address.Address.Phone       = siteItem.SitePhone;
                    address.Address.UpdatedBy   = email;
                    address.Address.UpdatedDate = DateTime.Now;
                }
            }
            else
            {
                site.SiteAddresses = new List <SiteAddress>();
                foreach (var siteAddressItem in siteItem.SiteAddresses)
                {
                    var siteAddress = new SiteAddress
                    {
                        Address = new Address
                        {
                            AddressTypeId = siteAddressItem.Address.AddressType.Id,
                            Street1       = siteAddressItem.Address.Street1,
                            Street2       = siteAddressItem.Address.Street2,
                            City          = siteAddressItem.Address.City,
                            StateId       = siteAddressItem.Address.State?.Id,
                            Province      = siteAddressItem.Address.Province,
                            ZipCode       = siteAddressItem.Address.ZipCode,
                            CountryId     = siteAddressItem.Address.Country.Id,
                            Phone         = siteItem.SitePhone,
                            CreatedBy     = email,
                            CreatedDate   = DateTime.Now
                        },
                        CreatedBy        = email,
                        IsPrimaryAddress = false,
                        CreatedDate      = DateTime.Now
                    };

                    site.SiteAddresses.Add(siteAddress);
                }
            }

            site.UpdatedBy   = email;
            site.UpdatedDate = DateTime.Now;

            base.Repository.Save(site);

            return(site);
        }
Exemple #11
0
 public IEnumerable <string> POST([FromBody] SiteAddress hostName)
 {
     return(proc.Ping(hostName.UrlAddress));
 }