public UserUsageSummary CreateUserUsageSummary(DateTime period, IReportingClient client) { bool showDisclaimer = false; var gs = _provider.Data.GlobalSetting.GetGlobalSetting("ShowUserUsageSummaryDisclaimer"); if (gs != null) { showDisclaimer = bool.Parse(gs.SettingValue); } string disclaimer = showDisclaimer ? string.Format("Please note: The data for {0:MMMM} usage has not yet been finalized.", period) : null; //var usage = UserUsageCharge.SelectByUser(client.ClientID, period).ToList(); var result = new UserUsageSummary() { ClientID = client.ClientID, UserName = client.UserName, LName = client.LName, FName = client.FName, Period = period, Created = DateTime.Now, Disclaimer = disclaimer, AggregateByOrg = CreateAggregateByOrg(client.ClientID, period) }; return(result); }
public UserUsageSummary GetUserUsage(string alias, UsagePeriod period) { var startDate = DateTime.MinValue; var endDate = DateTime.MinValue; GetPeriodDates(period, ref startDate, ref endDate); // TODO get query working with null data // var minutes = _context.Usages // .Where(x => x.Alias == alias && (x.TickTime >= startDate && x.TickTime <= endDate)) // .Sum(x => x.UsageMinutes); var minutes = 0; var summary = new UserUsageSummary(); summary.Alias = alias; summary.Period = period; summary.TotalHours = minutes / 60; var span = endDate - startDate; if (span.Days == 0) { span = new TimeSpan(1, 0, 0, 0); } summary.AverageHours = (float)summary.TotalHours / span.Days; return(summary); }
public async Task <IActionResult> Get(string userId, string view) { //TODO: authorization check // get requested user document ScampUser userDoc = await _userRepository.GetUserById(userId); if (userDoc == null) { return(HttpNotFound()); } // get user usage across all resources List <UserBudgetState> usrBudgets = await _volatileStorageController.GetUserBudgetStates(userId); if (view == "summary") { UserUsageSummary tmpUserSummary = new UserUsageSummary() { totGroups = userDoc.GroupMembership.Count() }; // summarize resource usage foreach (var rscBudget in usrBudgets) { tmpUserSummary.unitsBudgeted += rscBudget.UnitsBudgetted; tmpUserSummary.totUnitsUsed += rscBudget.UnitsUsed; } return(new ObjectResult(tmpUserSummary) { StatusCode = 200 }); } else { return(new ObjectResult(string.Format("view '{0}' not supported", view)) { StatusCode = 400 }); } }