using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Portal.UserControls.ScheduleTaskView;
namespace WebsitePanel.Portal.ScheduleTaskControls
{
public partial class DomainLookupView : EmptyView
{
private static readonly string DnsServersParameter = "DNS_SERVERS";
private static readonly string MailToParameter = "MAIL_TO";
private static readonly string ServerNameParameter = "SERVER_NAME";
protected void Page_Load(object sender, EventArgs e)
{
}
///
/// Sets scheduler task parameters on view.
///
/// Parameters list to be set on view.
public override void SetParameters(ScheduleTaskParameterInfo[] parameters)
{
base.SetParameters(parameters);
this.SetParameter(this.txtDnsServers, DnsServersParameter);
this.SetParameter(this.txtMailTo, MailToParameter);
this.SetParameter(this.ddlServers, ServerNameParameter);
var servers = ES.Services.Servers.GetAllServers();
var osGroup = ES.Services.Servers.GetResourceGroups().First(x => x.GroupName == ResourceGroups.Os);
var osProviders = ES.Services.Servers.GetProvidersByGroupId(osGroup.GroupId);
var osServers = new List();
foreach (var server in servers)
{
var services = ES.Services.Servers.GetServicesByServerId(server.ServerId);
if (services.Any(x => osProviders.Any(p=>p.ProviderId == x.ProviderId)))
{
osServers.Add(server);
}
}
ddlServers.DataSource = osServers.Select(x => new { Id = x.ServerName, Name = x.ServerName });
ddlServers.DataTextField = "Name";
ddlServers.DataValueField = "Id";
ddlServers.DataBind();
ScheduleTaskParameterInfo parameter = this.FindParameterById(ServerNameParameter);
ddlServers.SelectedValue = parameter.ParameterValue;
}
///
/// Gets scheduler task parameters from view.
///
/// Parameters list filled from view.
public override ScheduleTaskParameterInfo[] GetParameters()
{
ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter);
ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter);
ScheduleTaskParameterInfo serverName = this.GetParameter(this.ddlServers, ServerNameParameter);
return new ScheduleTaskParameterInfo[3] { dnsServers, mailTo, serverName };
}
}
}