public List <SelectListItem> GetPlannedTasksByProjectId(int planid = 0) { List <SelectListItem> plannedTasksWeek = (from myPlans in _context.TasksPlanned join myCategories in _context.Categories on myPlans.catid equals myCategories.catid join myProjects in _context.Projects on myCategories.projectid equals myProjects.projectid where myPlans.planneddate == DateTimeExtensions.FirstDayOfWeek(DateTime.Now) && myPlans.completed == false orderby myProjects.projectname ascending, myPlans.taskdescription ascending select new SelectListItem { Value = myPlans.planid.ToString(), Text = myProjects.projectname + ": " + ((myPlans.taskdescription.Length > 20) ? string.Concat(myPlans.taskdescription.Substring(0, 20), "...") : myPlans.taskdescription) + " (" + myCategories.catname + ")" }).ToList(); plannedTasksWeek.Insert(0, new SelectListItem() { Text = "", Value = "0" }); if (planid > 0) { var selected = plannedTasksWeek.Where(x => x.Value == planid.ToString()).First(); selected.Selected = true; } return(plannedTasksWeek); }
public async Task <IActionResult> TotalSumsWeek() { var firstDayWeek = DateTimeExtensions.FirstDayOfWeek(DateTime.Now); var firstDayLastWeek = DateTimeExtensions.FirstDayOfWeek(DateTime.Now).AddDays(-7); var day1 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek && o.DateTimeClosed <= firstDayWeek.AddDays(1)).Select(o => o.TotalPrice).SumAsync(); var day2 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(1) && o.DateTimeClosed <= firstDayWeek.AddDays(2)).Select(o => o.TotalPrice).SumAsync(); var day3 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(2) && o.DateTimeClosed <= firstDayWeek.AddDays(3)).Select(o => o.TotalPrice).SumAsync(); var day4 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(3) && o.DateTimeClosed <= firstDayWeek.AddDays(4)).Select(o => o.TotalPrice).SumAsync(); var day5 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(4) && o.DateTimeClosed <= firstDayWeek.AddDays(5)).Select(o => o.TotalPrice).SumAsync(); var day6 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(5) && o.DateTimeClosed <= firstDayWeek.AddDays(6)).Select(o => o.TotalPrice).SumAsync(); var day7 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayWeek.AddDays(6) && o.DateTimeClosed <= firstDayWeek.AddDays(7)).Select(o => o.TotalPrice).SumAsync(); var lastDay1 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek && o.DateTimeClosed <= firstDayLastWeek.AddDays(1)).Select(o => o.TotalPrice).SumAsync(); var lastDay2 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(1) && o.DateTimeClosed <= firstDayLastWeek.AddDays(2)).Select(o => o.TotalPrice).SumAsync(); var lastDay3 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(2) && o.DateTimeClosed <= firstDayLastWeek.AddDays(3)).Select(o => o.TotalPrice).SumAsync(); var lastDay4 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(3) && o.DateTimeClosed <= firstDayLastWeek.AddDays(4)).Select(o => o.TotalPrice).SumAsync(); var lastDay5 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(4) && o.DateTimeClosed <= firstDayLastWeek.AddDays(5)).Select(o => o.TotalPrice).SumAsync(); var lastDay6 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(5) && o.DateTimeClosed <= firstDayLastWeek.AddDays(6)).Select(o => o.TotalPrice).SumAsync(); var lastDay7 = await _context.Orders.Where(o => o.OrderStatus == OrderStatus.NotActive) .Where(o => o.DateTimeClosed >= firstDayLastWeek.AddDays(6) && o.DateTimeClosed <= firstDayLastWeek.AddDays(7)).Select(o => o.TotalPrice).SumAsync(); return(Ok(new { LastWeek = new { lastDay1, lastDay2, lastDay3, lastDay4, lastDay5, lastDay6, lastDay7 }, Week = new { day1, day2, day3, day4, day5, day6, day7 } })); }
public override Task WriteResponseBodyAsync( OutputFormatterWriteContext context, Encoding selectedEncoding ) { /*IServiceProvider serviceProvider = context.HttpContext.RequestServices; * var logger = serviceProvider.GetService(typeof(ILogger<VcardOutputFormatter>)) as ILogger; */ var response = context.HttpContext.Response; var reports = context.Object as IEnumerable <ForexMonthlyReport>; int reportYear = reports.First().Dt.Year; int reportMonth = reports.First().Dt.Month; var buf = new StringBuilder(); buf.AppendLine( $"Year {reportYear}, month: {reports.First().Dt.ToString("MMMM", CultureInfo.InvariantCulture)}" ); for ( int week = 1; week <= DateTimeExtensions.WeeksInMonth(reportYear, reportMonth); ++week ) { buf.Append(DateTimeExtensions.FirstDayOfWeek(reportYear, reportMonth, week)); buf.Append(".."); buf.Append(DateTimeExtensions.LastBusinessDayOfWeek(reportYear, reportMonth, week)); buf.Append(": "); var rates = reports .Select( x => x.WeeklyReports.ElementAt(week - 1) ) .Select(r => $"{r.BaseSymbol} - max: {r.MaxRate}, min: {r.MinRate}, median: {r.MedianRate};" ); buf.AppendLine( string.Join(" ", rates.ToArray()) ); } return(response.WriteAsync(buf.ToString())); }
// GET: /<controller>/ public IActionResult Index(int planid = 0) { //Console.WriteLine("USERID: " + this.User.FindFirstValue(ClaimTypes.NameIdentifier)); //Console.WriteLine("USER:"******"...") : myPlans.taskdescription, catname = myCategories.catname, projectname = myProjects.projectname, estimation = myPlans.estimation, day = myPlans.day, timeSpent = (from p in _context.TasksDoing where p.planid == myPlans.planid && p.starttime >= DateTimeExtensions.FirstDayOfWeek(myPlans.planneddate) && p.starttime <= DateTimeExtensions.FirstDayOfWeek(myPlans.planneddate.AddDays(7)) select p.duration).Sum(), completed = myPlans.completed }; List <SelectListItem> ProjectList = (from p in _context.Projects.AsEnumerable() orderby p.projectname ascending select new SelectListItem { Value = p.projectid.ToString(), Text = p.projectname }).ToList(); ProjectList.Insert(0, new SelectListItem() { Text = "Select Project", Value = "0" }); List <SelectListItem> WeekList = new List <SelectListItem>(); WeekList.Add(new SelectListItem() { Text = "This Week", Value = "0" }); WeekList.Add(new SelectListItem() { Text = "Next Week", Value = "1" }); WeekList.Add(new SelectListItem() { Text = "2 Weeks", Value = "2" }); ViewData["ProjectList"] = ProjectList; ViewData["plannedTasks"] = plannedTasks.ToList(); ViewData["WeekList"] = new SelectList(WeekList, "Value", "Text");; return(View()); }
public ForexMonthlyReport Build() { if (string.IsNullOrEmpty(BaseCurrency)) { throw new ArgumentNullException(nameof(BaseCurrency)); } if (string.IsNullOrEmpty(CounterCurrency)) { throw new ArgumentNullException(nameof(CounterCurrency)); } if (Pairs == null) { throw new ArgumentNullException(nameof(Pairs)); } Pairs = Pairs .Where( x => x.BaseSymbol.Equals(BaseCurrency, StringComparison.InvariantCultureIgnoreCase) && x.CounterSymbol.Equals(CounterCurrency, StringComparison.InvariantCultureIgnoreCase) ) .ToList(); /*var reportStartDate = new DateTime(Year, Month, 1); * var reportEndDate = reportStartDate.AddDays(DateTime.DaysInMonth(Year, Month) - 1); * var weeklyReports = Pairs * .Where( * x => x.Dt >= reportStartDate && x.Dt <= reportEndDate * ) * .GroupBy( * x => x.Dt.WeekOfMonth() * ) * .Select( * x => new WeeklyReportBuilder(x).Build() * ); * return new ForexMonthlyReport( * reportStartDate, * weeklyReports * );*/ var reportStartDate = new DateTime(Year, Month, 1); var reportEndDate = reportStartDate.AddDays(DateTime.DaysInMonth(Year, Month) - 1); var weeklyReports = Enumerable.Range(1, DateTimeExtensions.WeeksInMonth(Year, Month)) .Select( x => new DateTime(Year, Month, DateTimeExtensions.FirstDayOfWeek(Year, Month, x)) ) .Select( week => WeeklyBuilder .SetDate(week) .SetBaseCurrency(BaseCurrency) .SetCounterCurrency(CounterCurrency) .SetData( Pairs.Where( pair => pair.Dt >= week && pair.Dt <= DateTimeExtensions.LastDtOfWeek(week) ) .ToArray() ) .Build() ) .ToArray(); return(new ForexMonthlyReport( reportStartDate, weeklyReports )); }