Exemple #1
0
 public TimeSheetsAndCount GetTimeSheetList(int idDepartment, TimeSheetFilter filter, int skip, int take)
 {
     using (var db = new KadrDataContext())
     //using (var dbloger = new DataContextLoger("GetTimeSheetList.txt", FileMode.OpenOrCreate, db))
     {
         var approveSteps = TimeSheetFilterAdapter(filter);
         var query        = db.TimeSheetView.Where(
             w => w.idDepartment == idDepartment && approveSteps.Contains(w.ApproveStep)
             );
         return(new TimeSheetsAndCount
         {
             Count = query.Count(),
             TimeSheets = query.OrderByDescending(o => o.DateBeginPeriod)
                          .ThenByDescending(t => t.DateComposition)
                          .Skip(skip)
                          .Take(take)
                          .Select(s => DtoClassConstructor.DtoTimeSheet(s)).ToArray()
         });
     }
 }
Exemple #2
0
        //===================================================================================
        private IEnumerable <int> TimeSheetFilterAdapter(TimeSheetFilter filter)
        {
            switch (filter)
            {
            case TimeSheetFilter.All:
                return(new[] { 0, 1, 2, 3 });

            case TimeSheetFilter.Edit:
                return(new[] { 0 });

            case TimeSheetFilter.Approve:
                return(new[] { 1, 2 });

            case TimeSheetFilter.Approved:
                return(new[] { 3 });

            default:
                throw new System.Exception("Заданое условие фильтрации недоступно");
            }
        }
Exemple #3
0
        public ActionResult TimeSheetList(int id, int page = 1, TimeSheetFilter filter = TimeSheetFilter.All)
        {
            var approver = GetCurrentApprover();
            var skip     = page > 1?TimeSheetsPerPage * (page - 1):0;
            var r        = Provider.GetTimeSheetList(id, filter, skip, TimeSheetsPerPage);

            ViewBag.TimeSheetCount = (int)Math.Ceiling(r.Count / (double)TimeSheetsPerPage);
            ViewBag.idDepartment   = id;
            ViewBag.approver       = approver;
            ViewBag.Filter         = filter;
            ViewBag.CuttentPage    = page;
            try
            {
                ViewBag.Department = approver.DtoApproverDepartments.First(w => w.IdDepartment == id);
            }
            catch (System.Exception e)
            {
                return(RedirectToNotFoundPage("Запрашиваемый отдел не обнаружен. Отдел " + id));
            }

            var timeSheetList = r.TimeSheets.OrderBy(o => o.DateBegin);

            return(View(timeSheetList));
        }