コード例 #1
0
        public void ImportItem(int packageId, int itemTypeId, Type itemType,
                               ResourceGroupInfo group, string itemName)
        {
            // get service id
            int serviceId = PackageController.GetPackageServiceId(packageId, group.GroupName);

            if (serviceId == 0)
            {
                return;
            }

            StatisticsServer stats = new StatisticsServer();

            ServiceProviderProxy.Init(stats, serviceId);

            if (itemType == typeof(StatsSite))
            {
                // import statistics site
                StatsSite site = new StatsSite();
                site.ServiceId = serviceId;
                site.PackageId = packageId;
                site.Name      = itemName;
                site.GroupName = group.GroupName;

                // load site id
                site.SiteId = stats.GetSiteId(itemName);

                PackageController.AddPackageItem(site);
            }
        }
コード例 #2
0
        private void BindItem()
        {
            try
            {
                if (!IsPostBack)
                {
                    // load item if required
                    if (PanelRequest.ItemID > 0)
                    {
                        // existing item
                        item = ES.Services.StatisticsServers.GetSite(PanelRequest.ItemID);
                        if (item != null)
                        {
                            // save package info
                            ViewState["PackageId"] = item.PackageId;
                        }
                        else
                        {
                            RedirectToBrowsePage();
                        }
                    }
                    else
                    {
                        // new item
                        ViewState["PackageId"] = PanelSecurity.PackageId;
                        BindWebSites(PanelSecurity.PackageId);
                    }
                }

                // load provider control
                LoadProviderControl((int)ViewState["PackageId"], "Statistics", providerControl, "EditSite.ascx");

                if (!IsPostBack)
                {
                    // bind item to controls
                    if (item != null)
                    {
                        // bind item to controls
                        lblDomainName.Text = item.Name;

                        if (String.Compare(Request["Mode"], "view", true) == 0 &&
                            !String.IsNullOrEmpty(item.StatisticsUrl))
                        {
                            // view mode
                            Response.Redirect(item.StatisticsUrl);
                        }

                        // other controls
                        IStatsEditInstallationControl ctrl = (IStatsEditInstallationControl)providerControl.Controls[0];
                        ctrl.BindItem(item);
                    }
                }
            }
            catch
            {
                ShowWarningMessage("INIT_SERVICE_ITEM_FORM");
                DisableFormControls(this, btnCancel);
                return;
            }
        }
コード例 #3
0
        public int RestoreItem(string tempFolder, System.Xml.XmlNode itemNode, int itemId, Type itemType, string itemName, int packageId, int serviceId, ResourceGroupInfo group)
        {
            if (itemType == typeof(StatsSite))
            {
                StatisticsServer stats = GetStatisticsServer(serviceId);

                // extract meta item
                XmlSerializer serializer = new XmlSerializer(typeof(StatsSite));
                StatsSite     site       = (StatsSite)serializer.Deserialize(
                    new XmlNodeReader(itemNode.SelectSingleNode("StatsSite")));

                // create site if required
                if (stats.GetSite(site.SiteId) == null)
                {
                    stats.AddSite(site);
                }

                // add meta-item if required
                if (PackageController.GetPackageItemByName(packageId, itemName, typeof(StatsSite)) == null)
                {
                    site.PackageId = packageId;
                    site.ServiceId = serviceId;
                    PackageController.AddPackageItem(site);
                }
            }

            return(0);
        }
コード例 #4
0
 public int UpdateSite(StatsSite item)
 {
     object[] results = this.Invoke("UpdateSite", new object[] {
         item
     });
     return((int)(results[0]));
 }
コード例 #5
0
        public void BindItem(StatsSite item)
        {
            LocalizeGridView(gvUsers);

            if (item == null)
            {
                return;
            }

            txtSiteId.Text     = item.SiteId;
            litSiteStatus.Text = item.Status;

            // users
            List <StatsUser> users = new List <StatsUser>();

            users.AddRange(item.Users);

            if (users.Count == 0)
            {
                AddNewUser(users, true, true);
            }

            // bind users
            gvUsers.DataSource = users;
            gvUsers.DataBind();

            ViewState["binded"] = true;
        }
コード例 #6
0
        private void SaveItem()
        {
            if (!Page.IsValid)
            {
                return;
            }

            // get form data
            StatsSite item = new StatsSite();

            item.Id        = PanelRequest.ItemID;
            item.PackageId = PanelSecurity.PackageId;
            item.Name      = ddlWebSites.SelectedValue;

            // get other props
            IStatsEditInstallationControl ctrl = (IStatsEditInstallationControl)providerControl.Controls[0];

            ctrl.SaveItem(item);

            if (PanelRequest.ItemID == 0)
            {
                // new item
                try
                {
                    int result = ES.Services.StatisticsServers.AddSite(item);
                    if (result < 0)
                    {
                        ShowResultMessage(result);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    ShowErrorMessage("STATS_ADD_STAT", ex);
                    return;
                }
            }
            else
            {
                // existing item
                try
                {
                    int result = ES.Services.StatisticsServers.UpdateSite(item);
                    if (result < 0)
                    {
                        ShowResultMessage(result);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    ShowErrorMessage("STATS_UPDATE_STAT", ex);
                    return;
                }
            }

            // return
            RedirectSpaceHomePage();
        }
コード例 #7
0
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite item, object userState)
 {
     if ((this.UpdateSiteOperationCompleted == null))
     {
         this.UpdateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteOperationCompleted);
     }
     this.InvokeAsync("UpdateSite", new object[] {
         item
     }, this.UpdateSiteOperationCompleted, userState);
 }
コード例 #8
0
        public static int UpdateSite(StatsSite item)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);

            if (accountCheck < 0)
            {
                return(accountCheck);
            }

            // load original meta item
            StatsSite origItem = (StatsSite)PackageController.GetPackageItem(item.Id);

            if (origItem == null)
            {
                return(BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND);
            }

            // check package
            int packageCheck = SecurityContext.CheckPackage(origItem.PackageId, DemandPackage.IsActive);

            if (packageCheck < 0)
            {
                return(packageCheck);
            }

            // update statistics site
            item.Name   = origItem.Name;
            item.SiteId = origItem.SiteId;

            // place log record
            TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name);
            TaskManager.ItemId = origItem.Id;

            try
            {
                StatisticsServer stats = new StatisticsServer();
                ServiceProviderProxy.Init(stats, origItem.ServiceId);
                stats.UpdateSite(item);

                // update service item
                PackageController.UpdatePackageItem(item);

                return(0);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
コード例 #9
0
 public void UpdateSite(StatsSite site)
 {
     try
     {
         Log.WriteStart("'{0}' UpdateSite", ProviderSettings.ProviderName);
         StatsProvider.UpdateSite(site);
         Log.WriteEnd("'{0}' UpdateSite", ProviderSettings.ProviderName);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' UpdateSite", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
コード例 #10
0
 public StatsSite GetSite(string siteId)
 {
     try
     {
         Log.WriteStart("'{0}' GetSite", ProviderSettings.ProviderName);
         StatsSite result = StatsProvider.GetSite(siteId);
         Log.WriteEnd("'{0}' GetSite", ProviderSettings.ProviderName);
         return(result);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' GetSite", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
コード例 #11
0
 public string AddSite(StatsSite site)
 {
     try
     {
         Log.WriteStart("'{0}' AddSite", ProviderSettings.ProviderName);
         string result = StatsProvider.AddSite(site);
         Log.WriteEnd("'{0}' AddSite", ProviderSettings.ProviderName);
         return(result);
     }
     catch (Exception ex)
     {
         Log.WriteError(String.Format("'{0}' AddSite", ProviderSettings.ProviderName), ex);
         throw;
     }
 }
コード例 #12
0
        public int BackupItem(string tempFolder, System.Xml.XmlWriter writer, ServiceProviderItem item, ResourceGroupInfo group)
        {
            if (item is StatsSite)
            {
                // backup stats site
                StatisticsServer stats = GetStatisticsServer(item.ServiceId);

                // read site info
                StatsSite itemSite = item as StatsSite;
                StatsSite site     = stats.GetSite(itemSite.SiteId);

                XmlSerializer serializer = new XmlSerializer(typeof(StatsSite));
                serializer.Serialize(writer, site);
            }
            return(0);
        }
コード例 #13
0
        public static StatsSite GetSite(int itemId)
        {
            // load meta item
            StatsSite item = (StatsSite)PackageController.GetPackageItem(itemId);

            if (item == null)
            {
                return(null);
            }

            // load item from service
            StatisticsServer stats = new StatisticsServer();

            ServiceProviderProxy.Init(stats, item.ServiceId);
            StatsSite site = stats.GetSite(item.SiteId);

            if (site == null)
            {
                return(null);
            }

            site.Id        = item.Id;
            site.Name      = item.Name;
            site.ServiceId = item.ServiceId;
            site.PackageId = item.PackageId;
            site.SiteId    = item.SiteId;

            // update statistics URL
            if (!String.IsNullOrEmpty(site.StatisticsUrl))
            {
                // load space owner
                UserInfo user = PackageController.GetPackageOwner(item.PackageId);
                if (user != null)
                {
                    UserInfoInternal userInternal = UserController.GetUserInternally(user.UserId);

                    site.StatisticsUrl = Utils.ReplaceStringVariable(site.StatisticsUrl, "username",
                                                                     HttpUtility.UrlEncode(userInternal.Username));
                    site.StatisticsUrl = Utils.ReplaceStringVariable(site.StatisticsUrl, "password",
                                                                     HttpUtility.UrlEncode(userInternal.Password));
                }
            }

            return(site);
        }
コード例 #14
0
        public static int DeleteSite(int itemId)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);

            if (accountCheck < 0)
            {
                return(accountCheck);
            }


            // load original meta item
            StatsSite origItem = (StatsSite)PackageController.GetPackageItem(itemId);

            if (origItem == null)
            {
                return(BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND);
            }

            // place log record
            TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name, itemId);

            try
            {
                // get service
                StatisticsServer stats = new StatisticsServer();
                ServiceProviderProxy.Init(stats, origItem.ServiceId);

                // delete service item
                stats.DeleteSite(origItem.SiteId);

                // delete meta item
                PackageController.DeletePackageItem(origItem.Id);

                return(0);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
コード例 #15
0
 public void SaveItem(StatsSite item)
 {
 }
コード例 #16
0
 public void BindItem(StatsSite item)
 {
 }
コード例 #17
0
 public int UpdateSite(StatsSite item)
 {
     return(StatisticsServerController.UpdateSite(item));
 }
コード例 #18
0
 public int AddSite(StatsSite item)
 {
     return(StatisticsServerController.AddSite(item));
 }
コード例 #19
0
 /// <remarks/>
 public System.IAsyncResult BeginUpdateSite(StatsSite item, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("UpdateSite", new object[] {
         item
     }, callback, asyncState));
 }
コード例 #20
0
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite item)
 {
     this.UpdateSiteAsync(item, null);
 }
コード例 #21
0
        public static int AddSite(StatsSite item)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);

            if (accountCheck < 0)
            {
                return(accountCheck);
            }

            // check package
            int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);

            if (packageCheck < 0)
            {
                return(packageCheck);
            }

            // check quota
            QuotaValueInfo quota = PackageController.GetPackageQuota(item.PackageId, Quotas.STATS_SITES);

            if (quota.QuotaExhausted)
            {
                return(BusinessErrorCodes.ERROR_STATS_RESOURCE_QUOTA_LIMIT);
            }

            // check if stats resource is available
            int serviceId = PackageController.GetPackageServiceId(item.PackageId, ResourceGroups.Statistics);

            if (serviceId == 0)
            {
                return(BusinessErrorCodes.ERROR_STATS_RESOURCE_UNAVAILABLE);
            }

            // check package items
            if (PackageController.GetPackageItemByName(item.PackageId, item.Name, typeof(StatsSite)) != null)
            {
                return(BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_EXISTS);
            }

            // place log record
            TaskManager.StartTask("STATS_SITE", "ADD", item.Name);

            try
            {
                // load web site
                WebSite siteItem = (WebSite)PackageController.GetPackageItemByName(item.PackageId,
                                                                                   item.Name, typeof(WebSite));

                if (siteItem == null)
                {
                    return(BusinessErrorCodes.ERROR_WEB_SITE_SERVICE_UNAVAILABLE);
                }

                // get service web site
                WebServer web = new WebServer();
                ServiceProviderProxy.Init(web, siteItem.ServiceId);
                WebSite site = web.GetSite(siteItem.SiteId);

                List <DomainInfo> pointers = WebServerController.GetWebSitePointers(siteItem.Id);
                List <string>     aliases  = new List <string>();

                foreach (DomainInfo pointer in pointers)
                {
                    aliases.Add(pointer.DomainName);
                }

                StatisticsServer stats = new StatisticsServer();
                ServiceProviderProxy.Init(stats, serviceId);
                string siteNumber       = (site.IIs7) ? site[WebSite.IIS7_SITE_ID] : siteItem.SiteId.Replace("/", "");
                string logsCommonFolder = site.LogsPath;
                string logsFolder       = Path.Combine(logsCommonFolder, siteNumber);

                // get service settings
                StringDictionary settings = ServerController.GetServiceSettings(serviceId);
                if (Utils.ParseBool(settings["BuildUncLogsPath"], false))
                {
                    logsFolder = FilesController.ConvertToUncPath(siteItem.ServiceId, logsFolder);
                }

                item.LogDirectory  = logsFolder;
                item.DomainAliases = aliases.ToArray();

                // install statistics
                item.SiteId = stats.AddSite(item);

                // save statistics item
                item.ServiceId = serviceId;
                int itemId = PackageController.AddPackageItem(item);

                TaskManager.ItemId = itemId;

                return(itemId);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
コード例 #22
0
 public void SaveItem(StatsSite item)
 {
     // users
     item.Users = CollectFormData(false).ToArray();
 }
コード例 #23
0
 /// <remarks/>
 public void AddSiteAsync(StatsSite item)
 {
     this.AddSiteAsync(item, null);
 }