Beispiel #1
0
 public static string GetFormatedString(DateTime?Date)
 {
     // Changed for presentation
     if (Date != null)
     {
         PersianLibrary.PersianDate PD = PersianLibrary.PersianDate.Convert(Date.Value);
         String PDString = PD.DayOfWeek + "، " + PD.Day + " " + PD.MonthString + " " + PD.Year;
         return(PDString);
     }
     else
     {
         return(null);
     }
 }
Beispiel #2
0
        public async Task <List <MonthlyRecord> > Handle(SearchAttendanceReportQuery request, CancellationToken cancellationToken)
        {
            List <vUserInfo> DepUsers      = new List <vUserInfo>();
            List <vUserInfo> FilteredUsers = new List <vUserInfo>();

            DepUsers = await _context.VUserInfos.FromSql("select * from att.vuserinfo").ToListAsync();

            if (request.DepartmentID != null)
            {
                FilteredUsers = DepUsers.Where(u => u.departmentid == request.DepartmentID).ToList();
            }
            else
            {
                FilteredUsers = DepUsers;
            }


            List <MonthlyRecord> ResultList = new List <MonthlyRecord>();
            DateTime             StartDate  = PersianLibrary.PersianDate.ToDate(request.Year, request.Month, 1);

            PersianLibrary.PersianDate SPD = PersianLibrary.PersianDate.Convert(StartDate);

            String MonthYear = "ماه " + SPD.MonthString + " سال " + SPD.Year;
            int    LastDate  = 31;

            if (request.Month > 6 && request.Month < 12)
            {
                LastDate = 30;
            }
            if (request.Month == 12)
            {
                LastDate = 29;
            }

            DateTime EndDate = PersianLibrary.PersianDate.ToDate(request.Year, request.Month, LastDate);
            DateTime Counter = StartDate;

            List <DateTime> DateList = new List <DateTime>();

            while (Counter.Date < EndDate.Date)
            {
                if (!Counter.DayOfWeek.Equals(DayOfWeek.Friday))
                {
                    DateList.Add(Counter.Date);
                }
                Counter = Counter.AddDays(1);
            }



            foreach (vUserInfo User in FilteredUsers)
            {
                MonthlyRecord MR = new MonthlyRecord();
                MR.Present         = 0;
                MR.Leave           = 0;
                MR.Absent          = 0;
                MR.NameLocal       = User.FullName;
                MR.FatherNameLocal = User.FatherName;
                MR.Bast            = User.bast;
                MR.Qadam           = User.qadam;
                MR.UserID          = User.userid.ToString();
                MR.DeptID          = User.departmentid;
                MR.Department      = User.DepartmentText;
                MR.TITLE           = User.Title;

                MR.AbsentDates = "<ul>$list</ul>";
                String absentlist = "";

                foreach (DateTime Date in DateList)
                {
                    List <DailyLog> AttResult = _context.DailyLog.Where(c => c.UserId == User.userid && c.CheckIn.Date.Equals(Date)).ToList();
                    if (AttResult.Any())
                    {
                        MR.Present++;
                    }
                    else
                    {
                        PersianLibrary.PersianDate PD = PersianLibrary.PersianDate.Convert(Date);
                        String PDString = PD.DayOfWeek + "، " + PD.Day + " " + PD.MonthString + " " + PD.Year;
                        absentlist = absentlist + "<li>" + PDString + "</li>";
                        MR.Absent++;
                    }
                }

                MR.AbsentDates = MR.AbsentDates.Replace("$list", absentlist);
                ResultList.Add(MR);
            }
            return(ResultList);
        }