/// <summary>
        /// Get status for ArtDatabankenService.
        /// </summary>
        /// <param name='status'>Status for ArtDatabankenService is saved in this object.</param>
        private void GetArtDatabankenServiceStatus(Dictionary <Int32, List <WebResourceStatus> > status)
        {
            Boolean           ping;
            WebResourceStatus resourceStatus;

            ping                        = WebServiceClient.Ping();
            resourceStatus              = new WebResourceStatus();
            resourceStatus.AccessType   = WebService.Settings.Default.ResourceAccessTypeReadSwedish;
            resourceStatus.Address      = WebServiceClient.WebServiceAddress;
            resourceStatus.Name         = ApplicationIdentifier.ArtDatabankenService.ToString();
            resourceStatus.ResourceType = WebServiceBase.GetResourceType(ResourceTypeIdentifier.WebService,
                                                                         (Int32)(LocaleId.sv_SE));
            resourceStatus.Status = ping;
            resourceStatus.Time   = DateTime.Now;
            status[(Int32)(LocaleId.sv_SE)].Add(resourceStatus);

            resourceStatus              = new WebResourceStatus();
            resourceStatus.AccessType   = WebService.Settings.Default.ResourceAccessTypeReadEnglish;
            resourceStatus.Address      = WebServiceClient.WebServiceAddress;
            resourceStatus.Name         = ApplicationIdentifier.ArtDatabankenService.ToString();
            resourceStatus.ResourceType = WebServiceBase.GetResourceType(ResourceTypeIdentifier.WebService,
                                                                         (Int32)(LocaleId.en_GB));
            resourceStatus.Status = ping;
            resourceStatus.Time   = DateTime.Now;
            status[(Int32)(LocaleId.en_GB)].Add(resourceStatus);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get status for database.
        /// </summary>
        /// <param name="status">
        /// Current database status is returned in the object
        /// that is referenced by this parameter.
        /// </param>
        private void GetDatabaseStatus(Dictionary <Int32, List <WebResourceStatus> > status)
        {
            Boolean           ping;
            String            address, informationEnglish, informationSwedish;
            WebResourceStatus resourceStatus;

            address = null;

            try
            {
                address            = TaxonAttributeServer.GetAddress();
                informationEnglish = null;
                informationSwedish = null;
                using (TaxonAttributeServer database = new TaxonAttributeServer())
                {
                    ping = database.Ping();
                }

                if (!ping)
                {
                    informationEnglish = WebService.Settings.Default.DatabaseStatusErrorEnglish;
                    informationSwedish = WebService.Settings.Default.DatabaseStatusErrorSwedish;
                }
            }
            catch (Exception exception)
            {
                ping = false;
                informationEnglish = WebService.Settings.Default.DatabaseCommunicationFailureEnglish + " " +
                                     WebService.Settings.Default.ErrorMessageEnglish + " = " + exception.Message;
                informationSwedish = WebService.Settings.Default.DatabaseCommunicationFailureSwedish + " " +
                                     WebService.Settings.Default.ErrorMessageSwedish + " = " + exception.Message;
            }

            resourceStatus              = new WebResourceStatus();
            resourceStatus.AccessType   = WebService.Settings.Default.ResourceAccessTypeReadAndWriteSwedish;
            resourceStatus.Address      = address;
            resourceStatus.Information  = informationSwedish;
            resourceStatus.Name         = DatabaseName.TaxonAttribute.ToString();
            resourceStatus.ResourceType = WebServiceBase.GetResourceType(ResourceTypeIdentifier.Database,
                                                                         (Int32)(LocaleId.sv_SE));
            resourceStatus.Status = ping;
            resourceStatus.Time   = DateTime.Now;
            status[(Int32)(LocaleId.sv_SE)].Add(resourceStatus);

            resourceStatus              = new WebResourceStatus();
            resourceStatus.AccessType   = WebService.Settings.Default.ResourceAccessTypeReadAndWriteEnglish;
            resourceStatus.Address      = address;
            resourceStatus.Information  = informationEnglish;
            resourceStatus.Name         = DatabaseName.TaxonAttribute.ToString();
            resourceStatus.ResourceType = WebServiceBase.GetResourceType(ResourceTypeIdentifier.Database,
                                                                         (Int32)(LocaleId.en_GB));
            resourceStatus.Status = ping;
            resourceStatus.Time   = DateTime.Now;
            status[(Int32)(LocaleId.en_GB)].Add(resourceStatus);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Update status for this web service.
        /// </summary>
        private void UpdateStatus()
        {
            Dictionary <Int32, List <WebResourceStatus> > statuses;
            WebResourceStatus resourceStatus;

            if (IsTimeToUpdateStatus())
            {
                lock (this)
                {
                    // This double check of last status update time
                    // is necessary since things may have changed
                    // during possible lock of this thread.
                    if (IsTimeToUpdateStatus())
                    {
                        try
                        {
                            statuses = WebServiceData.WebServiceManager.GetStatus();
                        }
                        catch (Exception exception)
                        {
                            statuses = new Dictionary <Int32, List <WebResourceStatus> >();
                            statuses[(Int32)(LocaleId.en_GB)] = new List <WebResourceStatus>();
                            statuses[(Int32)(LocaleId.sv_SE)] = new List <WebResourceStatus>();

                            resourceStatus             = new WebResourceStatus();
                            resourceStatus.AccessType  = Settings.Default.ResourceAccessTypeReadSwedish;
                            resourceStatus.Address     = null;
                            resourceStatus.Information = Settings.Default.WebServiceCommunicationFailureSwedish + " " +
                                                         Settings.Default.ErrorMessageSwedish + " = " + exception.Message;
                            resourceStatus.Name         = WebServiceData.WebServiceManager.Name;
                            resourceStatus.ResourceType = GetResourceType(ResourceTypeIdentifier.WebService,
                                                                          (Int32)(LocaleId.sv_SE));
                            resourceStatus.Status = false;
                            resourceStatus.Time   = DateTime.Now;
                            statuses[(Int32)(LocaleId.sv_SE)].Add(resourceStatus);

                            resourceStatus             = new WebResourceStatus();
                            resourceStatus.AccessType  = Settings.Default.ResourceAccessTypeReadEnglish;
                            resourceStatus.Address     = null;
                            resourceStatus.Information = Settings.Default.WebServiceCommunicationFailureEnglish + " " +
                                                         Settings.Default.ErrorMessageEnglish + " = " + exception.Message;
                            resourceStatus.Name         = WebServiceData.WebServiceManager.Name;
                            resourceStatus.ResourceType = GetResourceType(ResourceTypeIdentifier.WebService,
                                                                          (Int32)(LocaleId.en_GB));
                            resourceStatus.Status = false;
                            resourceStatus.Time   = DateTime.Now;
                            statuses[(Int32)(LocaleId.en_GB)].Add(resourceStatus);
                        }
                        _ping = true;
                        if (statuses.IsNotEmpty())
                        {
                            foreach (WebResourceStatus tempResourceStatus in statuses[(Int32)(LocaleId.en_GB)])
                            {
                                if (!tempResourceStatus.Status)
                                {
                                    _ping = false;
                                    break;
                                }
                            }
                        }
                        _lastStatusUpdate = DateTime.Now;
                        Statuses          = statuses;
                    }
                }
            }
        }