Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }
Пример #4
0
        // 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());
        }
Пример #5
0
        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
                       ));
        }