Пример #1
0
        public IEnumerable <BalanceModel> GetBalanceViewModel(Guid jobOrderId, DateTime dateFrom, DateTime dateTo, BalanceModel.Scale scale)
        {
            DateTime[] dates = null;
            switch (scale)
            {
            case BalanceModel.Scale.Daily:
            case BalanceModel.Scale.Weekly:
                var step = scale == BalanceModel.Scale.Weekly ? 7 : 1;
                dates = EachDay(dateFrom, dateTo, step).ToArray();
                break;

            case BalanceModel.Scale.Monthly:
                dates = EachMonth(dateFrom, dateTo).ToArray();
                break;

            case BalanceModel.Scale.Quarterly:
                dates = EachQuarter(dateFrom, dateTo).ToArray();
                break;

            case BalanceModel.Scale.Yearly:
                dates = EachYear(dateFrom, dateTo).ToArray();
                break;
            }

            var isTimeAndMaterial = (from jo in Database.JobOrders
                                     where jo.OriginalId == jobOrderId
                                     select jo.IsTimeAndMaterial).Single();

            var jobOrders = Repository.GetSeriesById <JobOrder>(jobOrderId, dates);

            var model = new List <BalanceModel>();

            for (int i = 0; i < dates.Count(); i++)
            {
                var balance = new BalanceModel()
                {
                    Date    = dates[i],
                    Balance = jobOrders[i].Balance
                };
                model.Add(balance);
            }

            return(model);
        }
Пример #2
0
        public IActionResult GetBalance(Guid?jobOrderId, DateTime?dateFrom, DateTime?dateTo, BalanceModel.Scale scale)
        {
            if (!jobOrderId.HasValue || !dateFrom.HasValue || !dateTo.HasValue)
            {
                return(BadRequest());
            }

            var model = WorkerServices.GetBalanceViewModel(jobOrderId.Value, dateFrom.Value, dateTo.Value, scale);

            return(Ok(model));
        }