Пример #1
0
        public static KeyValueBunch GetBackupContentSummary(int userId, int packageId,
                                                            int serviceId, int serverId)
        {
            Dictionary <string, List <string> > summary = new Dictionary <string, List <string> >();
            // Get backup items
            List <ServiceProviderItem> items = GetBackupItems(userId, packageId, serviceId, serverId);

            // Prepare filter for in-loop sort
            ServiceProviderItemType[] itemTypes = PackageController.GetServiceItemTypes().ToArray();
            // Group service items by type id
            foreach (ServiceProviderItem si in items)
            {
                ServiceProviderItemType itemType = Array.Find <ServiceProviderItemType>(itemTypes,
                                                                                        x => x.ItemTypeId == si.TypeId && x.Backupable);
                // Sort out item types without backup capabilities
                if (itemType != null)
                {
                    // Mimic a grouping sort
                    if (!summary.ContainsKey(itemType.DisplayName))
                    {
                        summary.Add(itemType.DisplayName, new List <string>());
                    }
                    //
                    summary[itemType.DisplayName].Add(si.Name);
                }
            }
            //
            KeyValueBunch result = new KeyValueBunch();

            // Convert grouped data into serializable format
            foreach (string groupName in summary.Keys)
            {
                result[groupName] = String.Join(",", summary[groupName].ToArray());
            }
            //
            return(result);
        }
Пример #2
0
		public static KeyValueBunch GetBackupContentSummary(int userId, int packageId,
			int serviceId, int serverId)
		{
			Dictionary<string, List<string>> summary = new Dictionary<string, List<string>>();
			// Get backup items
			List<ServiceProviderItem> items = GetBackupItems(userId, packageId, serviceId, serverId);
			// Prepare filter for in-loop sort
			ServiceProviderItemType[] itemTypes = PackageController.GetServiceItemTypes().ToArray();
			// Group service items by type id
			foreach (ServiceProviderItem si in items)
			{
				ServiceProviderItemType itemType = Array.Find<ServiceProviderItemType>(itemTypes, 
					x => x.ItemTypeId == si.TypeId && x.Backupable);
				// Sort out item types without backup capabilities
				if (itemType != null)
				{
					// Mimic a grouping sort
					if (!summary.ContainsKey(itemType.DisplayName))
						summary.Add(itemType.DisplayName, new List<string>());
					//
					summary[itemType.DisplayName].Add(si.Name);
				}
			}
			//
			KeyValueBunch result = new KeyValueBunch();
			// Convert grouped data into serializable format
			foreach (string groupName in summary.Keys)
				result[groupName] = String.Join(",", summary[groupName].ToArray());
			//
			return result;
		}
Пример #3
0
        private void BindForm()
        {
            if (PanelSecurity.SelectedUser.Role == UserRole.Administrator
                && PanelSecurity.PackageId < 2)
                ddlDestination.Items.Remove(ddlDestination.Items.FindByValue("1"));

            if (PanelSecurity.LoggedUser.Role != UserRole.Administrator)
                ddlDestination.Items.Remove(ddlDestination.Items.FindByValue("2"));

			if (PanelSecurity.SelectedUser.Role != UserRole.Administrator)
				chkDeleteBackup.Visible = false;

            string modeText = "{0}";
            string modeValue = "";
            string filePrefix = "";

			int userId		= PanelSecurity.SelectedUserId, 
				packageId	= PanelSecurity.PackageId,
				serviceId	= PanelRequest.ServiceId,
				serverId	= PanelRequest.ServerId;

            if (PanelSecurity.PackageId > 0)
            {
                // load a single package
                PackageInfo backupPackage = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);

                // load "store" packages
                PackageInfo[] packages = ES.Services.Packages.GetMyPackages(PanelSecurity.SelectedUser.UserId);
                foreach (PackageInfo package in packages)
                    ddlSpace.Items.Add(new ListItem(package.PackageName, package.PackageId.ToString()));
                ddlSpace.SelectedValue = PanelSecurity.PackageId.ToString();

                modeText = "Text.SpaceBackupMode";
                modeValue = backupPackage.PackageName;
                filePrefix = "SpaceBackup";
            }
            else if (PanelRequest.ServiceId > 0)
            {
                ddlDestination.Items.Remove(ddlDestination.Items.FindByValue("1"));

                ServiceInfo service = ES.Services.Servers.GetServiceInfo(PanelRequest.ServiceId);

                modeText = "Text.ServiceBackupMode";
                modeValue = service.ServiceName;
                filePrefix = "ServiceBackup";
            }
            else if (PanelRequest.ServerId > 0)
            {
                ddlDestination.Items.Remove(ddlDestination.Items.FindByValue("1"));

                ServerInfo server = ES.Services.Servers.GetServerById(PanelRequest.ServerId);

                modeText = "Text.ServerBackupMode";
                modeValue = server.ServerName;
                filePrefix = "ServerBackup";
            }
            else if (PanelSecurity.SelectedUserId > 0)
            {
                // load user spaces
                PackageInfo[] packages = ES.Services.Packages.GetMyPackages(PanelSecurity.SelectedUserId);
                foreach (PackageInfo package in packages)
                    ddlSpace.Items.Add(new ListItem(package.PackageName, package.PackageId.ToString()));

                modeText = "Text.UserBackupMode";
                modeValue = PanelSecurity.SelectedUser.Username;
                filePrefix = "UserBackup";
            }
			//
			backupSetContent = ES.Services.Backup.GetBackupContentSummary(userId, packageId, serviceId, serverId);
			//
			rptBackupSetSummary.DataSource = backupSetContent.GetAllKeys();
			rptBackupSetSummary.DataBind();

            // backup type
            litBackupType.Text = String.Format(GetLocalizedString(modeText), modeValue);

            // backup file
            txtBackupFileName.Text = String.Format("{0}-{1}-{2}.wspak", filePrefix,
                Regex.Replace(modeValue, "[^\\w]", "_"),
                DateTime.Now.ToString("ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture));

            ToggleFormControls();
            InitFolderBrowser();
        }