You can create daily,monthly and yearly data by using the same logic. You just have to replace Hour with Day,Month or Year.
List<dynamic> dailyData = new List<dynamic>();
DateTime dayIterator = StartDate.Value;
while (dayIterator.Hour <= ddvm.CurrentDay)
{
if (ddvm.DailyPaymentTotal != null && ddvm.DailyPaymentTotal.Count() > 0 )
{
DailyPaymentTotalModel day = ddvm.DailyPaymentTotal.FirstOrDefault(hpt => hpt.DateTimeStamp == dayIterator);
if (day == null) { hour = new DailyPaymentTotalModel() { DateTimeStamp = dayIterator }; };
dailyData.Add(new List<dynamic> {dayIterator.Day,
day.Amount,
new { tooltip = String.Format("{0} : {1}", day.Count, day.Amount.ToString("C")) } });
}
dayIterator = dayIterator.AddDays(1);
}
ddvm.GraphData.LineChart_DailyTotal.Add(new
{
data = dailyData,
color = "#A1345E",
label = "Total Amount Paid"
});
And this will be your DailyModel.
public class DailyPaymentTotalModel : ViewModelBase
{
public int Day
{
get { return DateTimeStamp.Day; }
set { DateTimeStamp = new DateTime(1, 1, value, 0, 0, 0); }
}
public DateTime DateTimeStamp { get; set; }
public decimal Amount { get; set; }
public int Count { get; set; }
}
}
And you data fetching logic looks to be in this function you need to make changes in it accordingly to make it work with day,month,year
transactionRepository.GetAllPayments(startDate, endDate, merchantID);