示例#1
0
        public virtual StatsSite GetSite(string siteId)
        {
            string configFileName = ConfigFileName.Replace("[DOMAIN_NAME]", siteId);
            string configFilePath = Path.Combine(AwStatsFolder, configFileName);

            if (!File.Exists(configFilePath))
            {
                return(null);
            }

            StatsSite site = new StatsSite();

            site.Name   = siteId;
            site.SiteId = siteId;

            // process stats URL
            string url = null;

            if (!String.IsNullOrEmpty(StatisticsUrl))
            {
                url = StringUtils.ReplaceStringVariable(StatisticsUrl, "domain_name", site.Name);
                url = StringUtils.ReplaceStringVariable(url, "site_id", siteId);
            }

            site.StatisticsUrl = url;

            return(site);
        }
示例#2
0
 public string AddSite(StatsSite site)
 {
     object[] results = this.Invoke("AddSite", new object[] {
         site
     });
     return((string)(results[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;
            }
        }
示例#4
0
        public virtual string AddSite(StatsSite site)
        {
            // generate unique SiteID
            //int iSiteId = site.Name.GetHashCode();
            //if (iSiteId < 0)
            //     iSiteId *= -1;

            //string siteId = iSiteId.ToString();

            // create logs folder if not exists
            //if (!FileUtils.DirectoryExists(site.LogDirectory))
            //    FileUtils.CreateDirectory(site.LogDirectory);

            // add site
            SiteAdmin stAdmin = new SiteAdmin();

            PrepareProxy(stAdmin);

            if (site.Users == null || site.Users.Length == 0)
            {
                throw new Exception("At least one user (site owner) should be specified when creating new statistics site");
            }

            string         ownerUsername = site.Users[0].Username.ToLower();
            GenericResult1 result        = stAdmin.AddSite(Username, Password,
                                                           site.Users[0].Username, site.Users[0].Password, site.Users[0].FirstName, site.Users[0].LastName,
                                                           ServerId, 0, site.Name, site.LogDirectory, LogFormat, LogWildcard, LogDeleteDays,
                                                           SmarterLogsPath, SmarterLogDeleteMonths, "", "", TimeZoneId);

            if (!result.Result)
            {
                throw new Exception("Error creating statistics site: " + result.Message);
            }

            string siteId = GetSiteId(site.Name);

            int iSiteId = Int32.Parse(siteId);

            // add other users
            UserAdmin usrAdmin = new UserAdmin();

            PrepareProxy(usrAdmin);
            foreach (StatsUser user in site.Users)
            {
                if (user.Username.ToLower() != ownerUsername)
                {
                    // add user
                    GenericResult2 r = usrAdmin.AddUser(Username, Password, iSiteId,
                                                        user.Username, user.Password, user.FirstName, user.LastName, user.IsAdmin);
                    if (!r.Result)
                    {
                        throw new Exception("Error adding site user: " + r.Message);
                    }
                }
            }

            return(siteId);
        }
示例#5
0
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite site, object userState)
 {
     if ((this.UpdateSiteOperationCompleted == null))
     {
         this.UpdateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteOperationCompleted);
     }
     this.InvokeAsync("UpdateSite", new object[] {
         site
     }, this.UpdateSiteOperationCompleted, userState);
 }
        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;
        }
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite site)
 {
     this.UpdateSiteAsync(site, null);
 }
 public void UpdateSite(StatsSite site)
 {
     this.Invoke("UpdateSite", new object[] {
                 site});
 }
 public string AddSite(StatsSite site)
 {
     object[] results = this.Invoke("AddSite", new object[] {
                 site});
     return ((string)(results[0]));
 }
示例#10
0
        public virtual string AddSite(StatsSite site)
        {
            // generate unique SiteID
            //int iSiteId = site.Name.GetHashCode();
            //if (iSiteId < 0)
            //     iSiteId *= -1;

            //string siteId = iSiteId.ToString();

            // create logs folder if not exists
            //if (!FileUtils.DirectoryExists(site.LogDirectory))
            //    FileUtils.CreateDirectory(site.LogDirectory);

            // add site
            SiteAdmin stAdmin = new SiteAdmin();
            PrepareProxy(stAdmin);

            if (site.Users == null || site.Users.Length == 0)
                throw new Exception("At least one user (site owner) should be specified when creating new statistics site");

            string ownerUsername = site.Users[0].Username.ToLower();
            GenericResult1 result = stAdmin.AddSite(Username, Password,
                site.Users[0].Username, site.Users[0].Password, site.Users[0].FirstName, site.Users[0].LastName,
                ServerId, 0, site.Name, site.LogDirectory, LogFormat, LogWildcard, LogDeleteDays,
                SmarterLogsPath, SmarterLogDeleteMonths, "", "", TimeZoneId);

            if (!result.Result)
                throw new Exception("Error creating statistics site: " + result.Message);

            string siteId = GetSiteId(site.Name);

            int iSiteId = Int32.Parse(siteId);

            // add other users
            UserAdmin usrAdmin = new UserAdmin();
            PrepareProxy(usrAdmin);
            foreach (StatsUser user in site.Users)
            {
                if (user.Username.ToLower() != ownerUsername)
                {
                    // add user
                    GenericResult2 r = usrAdmin.AddUser(Username, Password, iSiteId,
                        user.Username, user.Password, user.FirstName, user.LastName, user.IsAdmin);
                    if (!r.Result)
                        throw new Exception("Error adding site user: " + r.Message);
                }
            }

            return siteId;
        }
 public int UpdateSite(StatsSite item) {
     object[] results = this.Invoke("UpdateSite", new object[] {
                 item});
     return ((int)(results[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();
        }
 public void BindItem(StatsSite item)
 {
 }
示例#14
0
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite site)
 {
     this.UpdateSiteAsync(site, null);
 }
示例#15
0
 /// <remarks/>
 public System.IAsyncResult BeginUpdateSite(StatsSite site, System.AsyncCallback callback, object asyncState)
 {
     return(this.BeginInvoke("UpdateSite", new object[] {
         site
     }, callback, asyncState));
 }
示例#16
0
 public void UpdateSite(StatsSite site)
 {
     this.Invoke("UpdateSite", new object[] {
         site
     });
 }
示例#17
0
 /// <remarks/>
 public void AddSiteAsync(StatsSite site)
 {
     this.AddSiteAsync(site, null);
 }
 /// <remarks/>
 public void AddSiteAsync(StatsSite item) {
     this.AddSiteAsync(item, null);
 }
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite item) {
     this.UpdateSiteAsync(item, null);
 }
 public int AddSite(StatsSite item)
 {
     return StatisticsServerController.AddSite(item);
 }
示例#21
0
        public virtual void UpdateSite(StatsSite site)
        {
            // update site
            SiteAdmin stAdmin = new SiteAdmin();

            PrepareProxy(stAdmin);

            int siteId = Int32.Parse(site.SiteId);

            // get original site
            SiteInfoResult siteResult = stAdmin.GetSite(Username, Password, siteId);

            if (siteResult.Site == null)
            {
                return;
            }

            SiteInfo origSite = siteResult.Site;

            // update site with only required properties
            GenericResult1 result = stAdmin.UpdateSite(Username, Password, siteId, site.Name, origSite.LogDirectory,
                                                       origSite.LogFormat, origSite.LogWildcard, origSite.LogDaysBeforeDelete,
                                                       origSite.SmarterLogDirectory, origSite.SmarterLogMonthsBeforeDelete, origSite.ExportPath, origSite.ExportPathURL,
                                                       origSite.TimeZoneID);

            if (!result.Result)
            {
                throw new Exception("Error updating statistics site: " + result.Message);
            }

            // update site users
            UserAdmin usrAdmin = new UserAdmin();

            PrepareProxy(usrAdmin);

            // get original users
            if (site.Users != null)
            {
                List <string>       origUsers     = new List <string>();
                List <string>       newUsers      = new List <string>();
                string              ownerUsername = null;
                UserInfoResultArray usrResult     = usrAdmin.GetUsers(Username, Password, siteId);
                foreach (UserInfo user in usrResult.user)
                {
                    // add to original users
                    origUsers.Add(user.UserName.ToLower());

                    // remember owner (he can't be deleted)
                    if (user.IsSiteOwner)
                    {
                        ownerUsername = user.UserName.ToLower();
                    }
                }

                // add, update users
                foreach (StatsUser user in site.Users)
                {
                    if (!origUsers.Contains(user.Username.ToLower()))
                    {
                        // add user
                        GenericResult2 r = usrAdmin.AddUser(Username, Password, siteId,
                                                            user.Username, user.Password, user.FirstName, user.LastName, user.IsAdmin);
                        if (!r.Result)
                        {
                            throw new Exception("Error adding site user: "******"Error updating site user: " + r.Message);
                        }
                    }

                    // add to new users list
                    newUsers.Add(user.Username.ToLower());
                }

                // delete users
                foreach (string username in origUsers)
                {
                    if (!newUsers.Contains(username) && username != ownerUsername)
                    {
                        // delete user
                        GenericResult2 r = usrAdmin.DeleteUser(Username, Password, siteId, username);
                    }
                }
            }
        }
 /// <remarks/>
 public System.IAsyncResult BeginAddSite(StatsSite item, System.AsyncCallback callback, object asyncState) {
     return this.BeginInvoke("AddSite", new object[] {
                 item}, callback, asyncState);
 }
 public void SaveItem(StatsSite item)
 {
 }
示例#24
0
 public virtual void UpdateSite(StatsSite site)
 {
     // nope
 }
 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;
     }
 }
 /// <remarks/>
 public void AddSiteAsync(StatsSite item, object userState) {
     if ((this.AddSiteOperationCompleted == null)) {
         this.AddSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSiteOperationCompleted);
     }
     this.InvokeAsync("AddSite", new object[] {
                 item}, this.AddSiteOperationCompleted, userState);
 }
 public int UpdateSite(StatsSite item)
 {
     return StatisticsServerController.UpdateSite(item);
 }
 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;
     }
 }
示例#29
0
        public virtual string AddSite(StatsSite site)
        {
            // check for AWStats folder existance
            string awFolder = AwStatsFolder;

            if (!Directory.Exists(awFolder))
            {
                // try to create directory
                Directory.CreateDirectory(awFolder);
            }

            // create a new configuration file
            string configFileName = ConfigFileName;

            // ...and substitute variables
            configFileName = configFileName.Replace("[DOMAIN_NAME]", site.Name);
            string configFilePath = Path.Combine(awFolder, configFileName);

            // check if the file already exists
            if (File.Exists(configFilePath))
            {
                return(site.Name);    // nothing to create
            }

            // get config file template
            string configFileTemplate = ConfigFileTemplate;

            if (!String.IsNullOrEmpty(ConfigFileTemplatePath) &&
                File.Exists(ConfigFileTemplatePath))
            {
                // read template from file
                StreamReader reader = new StreamReader(ConfigFileTemplatePath);
                configFileTemplate = reader.ReadToEnd();
                reader.Close();
            }

            // ...and substitute variables
            configFileTemplate = configFileTemplate.Replace("[DOMAIN_NAME]", site.Name);
            configFileTemplate = site.DomainAliases.Length == 0 ? configFileTemplate.Replace("[DOMAIN_ALIASES]", "localhost 127.0.0.1") : configFileTemplate.Replace("[DOMAIN_ALIASES]", String.Join(" ", site.DomainAliases));
            configFileTemplate = configFileTemplate.Replace("[LOGS_FOLDER]", site.LogDirectory);

            // create config file
            StreamWriter writer = new StreamWriter(configFilePath);

            writer.Write(configFileTemplate);
            writer.Close();

            // add line to the batch file
            string batchFilePath = Path.Combine(awFolder, BatchFileName);

            // create file if not exists
            if (!File.Exists(batchFilePath))
            {
                writer = new StreamWriter(batchFilePath);
                writer.Close();
            }

            // read batch file
            List <string> lines = LoadBatchFile(batchFilePath);

            // check if the record is already added
            bool exists = false;

            foreach (string line in lines)
            {
                if (line.IndexOf("=" + site.Name) != -1)
                {
                    exists = true;
                    break;
                }
            }

            if (!exists)
            {
                // add new line to the batch
                string line = BatchLineTemplate;
                line = line.Replace("[DOMAIN_NAME]", site.Name);

                lines.Add(line);

                // save batch file
                SaveBatchFile(batchFilePath, lines);
            }

            return(site.Name);
        }
示例#30
0
        public virtual StatsSite GetSite(string siteId)
        {
            string configFileName = ConfigFileName.Replace("[DOMAIN_NAME]", siteId);
            string configFilePath = Path.Combine(AwStatsFolder, configFileName);

            if (!File.Exists(configFilePath))
                return null;

            StatsSite site = new StatsSite();
            site.Name = siteId;
            site.SiteId = siteId;

			// process stats URL
			string url = null;
			if (!String.IsNullOrEmpty(StatisticsUrl))
			{
				url = StringUtils.ReplaceStringVariable(StatisticsUrl, "domain_name", site.Name);
				url = StringUtils.ReplaceStringVariable(url, "site_id", siteId);
			}

			site.StatisticsUrl = url;

            return site;
        }
示例#31
0
        public virtual StatsSite GetSite(string siteId)
        {
            SiteAdmin stAdmin = new SiteAdmin();
            PrepareProxy(stAdmin);

            int sid = Int32.Parse(siteId);
            SiteInfoResult result = stAdmin.GetSite(Username, Password, sid);
            if (result.Site == null)
                return null;

            StatsSite site = new StatsSite();
            site.Name = result.Site.DomainName;
            site.ExportPath = result.Site.ExportPath;
            site.ExportPathUrl = result.Site.ExportPathURL;
            site.LogDirectory = result.Site.LogDirectory;
            site.TimeZoneId = TimeZoneId;
            site.Status = result.Site.SiteStatus;

			// process stats URL
			string url = null;
			if (!String.IsNullOrEmpty(StatisticsUrl))
			{
				url = StringUtils.ReplaceStringVariable(StatisticsUrl, "domain_name", site.Name);
				url = StringUtils.ReplaceStringVariable(url, "site_id", siteId);
			}

            // get site users
            UserAdmin usrAdmin = new UserAdmin();
            PrepareProxy(usrAdmin);

            UserInfoResultArray usrResult = usrAdmin.GetUsers(Username, Password, sid);
            if (usrResult.user != null)
            {
                site.Users = new StatsUser[usrResult.user.Length];
                for (int i = 0; i < site.Users.Length; i++)
                {
                    site.Users[i] = new StatsUser();
                    site.Users[i].Username = usrResult.user[i].UserName;
                    site.Users[i].Password = usrResult.user[i].Password;
                    site.Users[i].FirstName = usrResult.user[i].FirstName;
                    site.Users[i].LastName = usrResult.user[i].LastName;
                    site.Users[i].IsAdmin = usrResult.user[i].IsAdmin;
                    site.Users[i].IsOwner = usrResult.user[i].IsSiteOwner;
                }

				if (site.Users.Length > 0 && !String.IsNullOrEmpty(url))
				{
					url = StringUtils.ReplaceStringVariable(url, "username", site.Users[0].Username);
					url = StringUtils.ReplaceStringVariable(url, "password", site.Users[0].Password);
				}
            }

			site.StatisticsUrl = url;

            return site;
        }
示例#32
0
        public virtual string AddSite(StatsSite site)
        {
                // check for AWStats folder existance
                string awFolder = AwStatsFolder;
                if (!Directory.Exists(awFolder))
                {
                    // try to create directory
                    Directory.CreateDirectory(awFolder);
                }

                // create a new configuration file
                string configFileName = ConfigFileName;

                // ...and substitute variables
                configFileName = configFileName.Replace("[DOMAIN_NAME]", site.Name);
                string configFilePath = Path.Combine(awFolder, configFileName);

                // check if the file already exists
                if (File.Exists(configFilePath))
                {
                    return site.Name; // nothing to create
                }

                // get config file template
                string configFileTemplate = ConfigFileTemplate;
                if (!String.IsNullOrEmpty(ConfigFileTemplatePath)
                    && File.Exists(ConfigFileTemplatePath))
                {
                    // read template from file
                    StreamReader reader = new StreamReader(ConfigFileTemplatePath);
                    configFileTemplate = reader.ReadToEnd();
                    reader.Close();
                }

                // ...and substitute variables
                configFileTemplate = configFileTemplate.Replace("[DOMAIN_NAME]", site.Name);
                configFileTemplate = site.DomainAliases.Length == 0 ? configFileTemplate.Replace("[DOMAIN_ALIASES]", "localhost 127.0.0.1") : configFileTemplate.Replace("[DOMAIN_ALIASES]", String.Join(" ", site.DomainAliases));
                configFileTemplate = configFileTemplate.Replace("[LOGS_FOLDER]", site.LogDirectory);

                // create config file
                StreamWriter writer = new StreamWriter(configFilePath);
                writer.Write(configFileTemplate);
                writer.Close();

                // add line to the batch file
                string batchFilePath = Path.Combine(awFolder, BatchFileName);

                // create file if not exists
                if (!File.Exists(batchFilePath))
                {
                    writer = new StreamWriter(batchFilePath);
                    writer.Close();
                }

                // read batch file
                List<string> lines = LoadBatchFile(batchFilePath);

                // check if the record is already added
                bool exists = false;
                foreach (string line in lines)
                {
                    if (line.IndexOf("=" + site.Name) != -1)
                    {
                        exists = true;
                        break;
                    }
                }

                if (!exists)
                {
                    // add new line to the batch
                    string line = BatchLineTemplate;
                    line = line.Replace("[DOMAIN_NAME]", site.Name);

                    lines.Add(line);

                    // save batch file
                    SaveBatchFile(batchFilePath, lines);
                }

                return site.Name;
        }
示例#33
0
        public virtual void UpdateSite(StatsSite site)
        {
            // update site
            SiteAdmin stAdmin = new SiteAdmin();
            PrepareProxy(stAdmin);

            int siteId = Int32.Parse(site.SiteId);

            // get original site
            SiteInfoResult siteResult = stAdmin.GetSite(Username, Password, siteId);
            if (siteResult.Site == null)
                return;

            SiteInfo origSite = siteResult.Site;

            // update site with only required properties
            GenericResult1 result = stAdmin.UpdateSite(Username, Password, siteId, site.Name, origSite.LogDirectory,
                origSite.LogFormat, origSite.LogWildcard, origSite.LogDaysBeforeDelete,
                origSite.SmarterLogDirectory, origSite.SmarterLogMonthsBeforeDelete, origSite.ExportPath, origSite.ExportPathURL,
                origSite.TimeZoneID);

            if (!result.Result)
                throw new Exception("Error updating statistics site: " + result.Message);

            // update site users
            UserAdmin usrAdmin = new UserAdmin();
            PrepareProxy(usrAdmin);

            // get original users
            if (site.Users != null)
            {
                List<string> origUsers = new List<string>();
                List<string> newUsers = new List<string>();
                string ownerUsername = null;
                UserInfoResultArray usrResult = usrAdmin.GetUsers(Username, Password, siteId);
                foreach (UserInfo user in usrResult.user)
                {
                    // add to original users
                    origUsers.Add(user.UserName.ToLower());

                    // remember owner (he can't be deleted)
                    if (user.IsSiteOwner)
                        ownerUsername = user.UserName.ToLower();
                }

                // add, update users
                foreach (StatsUser user in site.Users)
                {
                    if (!origUsers.Contains(user.Username.ToLower()))
                    {
                        // add user
                        GenericResult2 r = usrAdmin.AddUser(Username, Password, siteId,
                            user.Username, user.Password, user.FirstName, user.LastName, user.IsAdmin);
                        if (!r.Result)
                            throw new Exception("Error adding site user: "******"Error updating site user: " + r.Message);
                    }

                    // add to new users list
                    newUsers.Add(user.Username.ToLower());
                }

                // delete users
                foreach (string username in origUsers)
                {
                    if (!newUsers.Contains(username) && username != ownerUsername)
                    {
                        // delete user
                        GenericResult2 r = usrAdmin.DeleteUser(Username, Password, siteId, username);
                    }
                }
            }
        }
示例#34
0
 public virtual void UpdateSite(StatsSite site)
 {
     // nope
 }
 /// <remarks/>
 public void AddSiteAsync(StatsSite site)
 {
     this.AddSiteAsync(site, null);
 }
        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();
            }
        }
 /// <remarks/>
 public System.IAsyncResult BeginUpdateSite(StatsSite site, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("UpdateSite", new object[] {
                 site}, callback, asyncState);
 }
        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();
            }
        }
 /// <remarks/>
 public void UpdateSiteAsync(StatsSite site, object userState)
 {
     if ((this.UpdateSiteOperationCompleted == null))
     {
         this.UpdateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteOperationCompleted);
     }
     this.InvokeAsync("UpdateSite", new object[] {
                 site}, this.UpdateSiteOperationCompleted, userState);
 }
        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);
            }
        }
 public void SaveItem(StatsSite item)
 {
     // users
     item.Users = CollectFormData(false).ToArray();
 }
示例#42
0
        public virtual StatsSite GetSite(string siteId)
        {
            SiteAdmin stAdmin = new SiteAdmin();

            PrepareProxy(stAdmin);

            int            sid    = Int32.Parse(siteId);
            SiteInfoResult result = stAdmin.GetSite(Username, Password, sid);

            if (result.Site == null)
            {
                return(null);
            }

            StatsSite site = new StatsSite();

            site.Name          = result.Site.DomainName;
            site.ExportPath    = result.Site.ExportPath;
            site.ExportPathUrl = result.Site.ExportPathURL;
            site.LogDirectory  = result.Site.LogDirectory;
            site.TimeZoneId    = TimeZoneId;
            site.Status        = result.Site.SiteStatus;

            // process stats URL
            string url = null;

            if (!String.IsNullOrEmpty(StatisticsUrl))
            {
                url = StringUtils.ReplaceStringVariable(StatisticsUrl, "domain_name", site.Name);
                url = StringUtils.ReplaceStringVariable(url, "site_id", siteId);
            }

            // get site users
            UserAdmin usrAdmin = new UserAdmin();

            PrepareProxy(usrAdmin);

            UserInfoResultArray usrResult = usrAdmin.GetUsers(Username, Password, sid);

            if (usrResult.user != null)
            {
                site.Users = new StatsUser[usrResult.user.Length];
                for (int i = 0; i < site.Users.Length; i++)
                {
                    site.Users[i]           = new StatsUser();
                    site.Users[i].Username  = usrResult.user[i].UserName;
                    site.Users[i].Password  = usrResult.user[i].Password;
                    site.Users[i].FirstName = usrResult.user[i].FirstName;
                    site.Users[i].LastName  = usrResult.user[i].LastName;
                    site.Users[i].IsAdmin   = usrResult.user[i].IsAdmin;
                    site.Users[i].IsOwner   = usrResult.user[i].IsSiteOwner;
                }

                if (site.Users.Length > 0 && !String.IsNullOrEmpty(url))
                {
                    url = StringUtils.ReplaceStringVariable(url, "username", site.Users[0].Username);
                    url = StringUtils.ReplaceStringVariable(url, "password", site.Users[0].Password);
                }
            }

            site.StatisticsUrl = url;

            return(site);
        }