I am a bit confused with my own work, i seemed to have complicated my issue.
I am pulling data off a call dialer, this dialer logs all the calls for all the agents and each agent is in a queue, there can be multiple agents in the same queue.
My basic calculations in SQL i can pull the date, queue, hours and number of calls per each hour that looks as follows:
callDate queueid cHour numberOfCalls
2013-05-03 No Queue 0 1
2013-05-03 No Queue 2 1
2013-05-03 No Queue 6 1
2013-05-03 No Queue 7 7
2013-05-03 No Queue 8 6
2013-05-03 No Queue 9 14
2013-05-03 No Queue 10 6
2013-05-03 No Queue 11 5
2013-05-03 No Queue 12 8
2013-05-03 17001 7 114
2013-05-03 17001 8 238
2013-05-03 17001 9 227
2013-05-03 17001 10 190
2013-05-03 17001 11 221
2013-05-03 17001 12 73
2013-05-03 17002 6 3
2013-05-03 17002 7 125
There you can see the Queue, The hour and how many calls for that hour (hour being 7am, 8am... etc).
i need to know if i create a multidimensional array to stor the queue, the hour and number of calls for each queue, for each hour (if that makes sense?) so that i can later use that as a graph?
Here is my sample code that i have gotten stuck up to:
Xaml:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:ThemeManager.ThemeName="MetropolisDark"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DVC:Chart Name="Chart"
Background="#463F3F">
<DVC:Chart.PlotAreaStyle>
<Style TargetType="Grid">
<Setter Property="Background" Value="Transparent" />
</Style>
</DVC:Chart.PlotAreaStyle>
</DVC:Chart>
</Grid>
C#:
private void AllAgentHourData()
{
string[] queueid = new string[100];
int[] callHour = new int[100];
int count = 0;
int counter = 0;
SqlConnection sqlConnection1 = new SqlConnection("Server=nl-reportserver;Database=RC_Dailer_WH;User Id=sa;Password=d@[email protected]");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
//cmd.CommandText = "SELECT * FROM RC_call_logs WHERE convert(date,call_logdate,120) = convert(date,GETDATE(),120)";
cmd.CommandText = "Select distinct queueid from RC_call_logs order by queueid";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
queueid[count] = reader.GetString(0);
}
}
else
{
MessageBox.Show("No Error message");
}
reader.Close();
sqlConnection1.Close();
Random random = new Random();
//Chart is your chart object in Xaml
//declare your series
for (int i = 1; i < 10; i++)
{
LineSeries ls = new LineSeries();
ls.Title = i.ToString();
ls.IndependentValueBinding = new Binding("Key");
ls.DependentValueBinding = new Binding("Value");
ls.ItemsSource = new KeyValuePair<DateTime, int>[]{
new KeyValuePair<DateTime,int>(DateTime.Now , random.Next(1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(1), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(2), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(3), random.Next(10, 1000)),
new KeyValuePair<DateTime,int>(DateTime.Now.AddMonths(4), random.Next(10, 1000))};
// then add it to the chart
Chart.Series.Add(ls);
}
}