public override GetDailyStatResponseMessage GetDailyStat(GetDailyStatMessage message) { if (message.ReportDate.Kind == DateTimeKind.Local //Can't exctract date from Local time correctly in WCF || message.ReportDate.Hour != 0 || message.ReportDate.Minute != 0 || message.ReportDate.Second != 0 || message.ReportDate.Millisecond != 0) { throw new ArgumentException("Report Date field can not contain Hours, Minutes, Seconds, Milliseconds or TimeZone."); } if (message.TimeZoneUtcOffsetInMinutes % 15 != 0) { throw new ArgumentException(); } var date = message.ReportDate.Date; var offset = new TimeSpan(0, message.TimeZoneUtcOffsetInMinutes, 0); //new DateTimeOffset(message.DateWithTimeZone) - don't work for DateTimeKind.Utc var dateWithTimeZone = new DateTimeOffset(date.Year, date.Month, date.Day, 0, 0, 0, offset); var data = new GetStatByHours(this.CreateRepository()) .Execute(dateWithTimeZone); return(new GetDailyStatResponseMessage { Data = (from P in data select new StatByHour { Hour = P.Hour, FileSizeSum = P.FileSizeSum, ResultFileSizeSum = P.ResultFileSizeSum, TotalFileSizeSum = P.TotalFileSizeSum, TotalCount = P.TotalCount }).ToList() }); }
public IEnumerable <IStatByHour> Execute(DateTimeOffset dateWithTimeZone) { ServiceClient client = new ServiceClient(new EndpointAddress(this.serviceOptions.Address)); GetDailyStatMessage message = new GetDailyStatMessage() { ReportDate = dateWithTimeZone.Date, TimeZoneUtcOffsetInMinutes = (short)dateWithTimeZone.Offset.TotalMinutes }; List <StatByHour> result = (from P in client.GetDailyStat(message).Data select new StatByHour { Hour = P.Hour, FileSizeSum = P.FileSizeSum, ResultFileSizeSum = P.ResultFileSizeSum, TotalFileSizeSum = P.TotalFileSizeSum, TotalCount = P.TotalCount }).ToList(); return(result); }
public abstract GetDailyStatResponseMessage GetDailyStat(GetDailyStatMessage message);
public GetDailyStatResponseMessage GetDailyStat(GetDailyStatMessage message) { return(base.Channel.GetDailyStat(message)); }