public ActionResult DormantCustomersPaging(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.LastLogonDate, bool isDesc = false,
            int startDay = 0, int startMonth = 0, int startYear = 0,
            int endDay = 0, int endMonth = 0, int endYear = 0)
        {
            DateTime startDate;
            DateTime endDate;

            if (startYear == 0 || endYear == 0)
            {
                startDate = DateTime.Now.AddDays(-7);
                endDate = DateTime.Now;
            }
            else
            {
                startDate = new DateTime(startYear, startMonth, startDay);
                endDate = new DateTime(endYear, endMonth, endDay);
            }

            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetDormantCustomers(keyword, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new DormantCustomersViewModel(keyword, sortBy, isDesc, _pageSize) { DormantCustomers = list };

            return PartialView("~/Areas/Admin/Views/Dashboard/_ajaxDormantCustomers.cshtml", model);
        }
        public ActionResult CompliancesVerification(int? page, int? pageSize,
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false,
            bool isVerified = true,
            bool isUnverified = true,
            bool isExpired = true,
            bool isUnlicense = true)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : _itemPerPage;

            var list = AdminServices.ManagementService.GetCompliancesVerification(
                _currentPageIndex, _pageSize, isVerified, isUnverified, isExpired, isUnlicense, sortBy, isDesc);

            CompliancesVerificationModel model = new CompliancesVerificationModel(
                isVerified, isUnverified, isExpired, isUnlicense, sortBy, isDesc, _pageSize)
                {
                    CompliancesVerifications = list
                };

            if (!Request.IsAjaxRequest())
            {
                return View(model);
            }

            return PartialView(_ajaxCompliancesVerification, model);
        }
Example #3
0
    protected void grid_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        if (e.RowIndex < Page.Settings.SortedColumns.Count)
        {
            Page.Settings.SortedColumns.RemoveAt(e.RowIndex);
        }

        int  reportColumnsSchemaId = Convert.ToInt32((grid.Rows[e.RowIndex].Cells[0].Controls[1] as DropDownList).SelectedValue);
        bool asc = Convert.ToBoolean((grid.Rows[e.RowIndex].Cells[1].Controls[1] as DropDownList).SelectedValue);


        // Verifies if yet inserted
        ReportSort sortItem = Page.Settings.SortedColumns.Find(p => p.ReportColumnsSchemaId == reportColumnsSchemaId);

        if (sortItem == null)
        {
            sortItem = new ReportSort();
            sortItem.ReportTablesSchemaId  = Page.Settings.Report.ReportTablesSchemaId.Value;
            sortItem.ReportColumnsSchemaId = reportColumnsSchemaId;
            sortItem.Ascending             = asc;
            sortItem.Name = (grid.Rows[e.RowIndex].Cells[0].Controls[1] as DropDownList).SelectedItem.Text;
            Page.Settings.SortedColumns.Insert(e.RowIndex, sortItem);
        }
        else
        {
            sortItem.Ascending = asc;
        }
        BindGrid(-1);
    }
 public ExpiringVerificationViewModel(string keyWord, ReportSort sortBy, bool isDesc, int pageSize)
 {
     Pager = new PagerViewModel()
     {
         KeyWord = keyWord,
         SortBy = sortBy,
         IsDesc = isDesc,
         PageSize = pageSize,
     };
 }
 public PaymentDefaultViewModel(string keyWord, ReportSort sortBy, bool isDesc, int pageSize)
 {
     Pager = new PagerViewModel()
     {
         KeyWord = keyWord,
         SortBy = sortBy,
         IsDesc = isDesc,
         PageSize = pageSize,
     };
 }
 public DormantCustomersViewModel(string keyWord, ReportSort sortBy, bool isDesc, int pageSize)
 {
     Pager = new PagerViewModel()
     {
         KeyWord = keyWord,
         SortBy = sortBy,
         IsDesc = isDesc,
         PageSize = pageSize,
     };
 }
        public MvcPaging.IPagedList<DormantCustomersDto> GetDormantCustomers(string keyword, int currentPage, 
            int pageSize, ReportSort sortBy = ReportSort.LastLogonDate, bool isDesc = false)
        {
            keyword = keyword.ToLower();

            DateTime lastLogonBefore3Month = DateTime.Now.AddMonths(-3);
            var listUsers = Repository.Query<TeleConsult.Domain.User>().Where(a => a.ModifiedDate <= lastLogonBefore3Month && a.Role == Role.Customer);

            if (listUsers != null && listUsers.Any())
            {
                var _totalItem = listUsers.Count();

                switch (sortBy)
                {
                    case ReportSort.FirstName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.FirstName)
                            : listUsers.OrderBy(e => e.FirstName);
                        break;
                    case ReportSort.LastName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.LastName)
                            : listUsers.OrderBy(e => e.LastName);
                        break;
                    case ReportSort.EmailAddress:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.Email)
                            : listUsers.OrderBy(e => e.Email);
                        break;
                    case ReportSort.UserName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.UserName)
                            : listUsers.OrderBy(e => e.UserName);
                        break;
                    case ReportSort.LastLogonDate:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.ModifiedDate)
                                                    : listUsers.OrderBy(e => e.ModifiedDate);
                        break;
                    default:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.ModifiedDate)
                                                    : listUsers.OrderBy(e => e.ModifiedDate);
                        break;
                }

                return listUsers.Skip(currentPage * pageSize).Take(pageSize).Select(p => new DormantCustomersDto()
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    EmailAddress = p.Email,
                    UserName = p.UserName,
                    LastLogonDate = p.ModifiedDate
                }).ToPagedList(currentPage, pageSize, _totalItem);

            }
            return null;
        }
Example #8
0
    protected void btnAddSortColumn_Click(object sender, ImageClickEventArgs e)
    {
        ReportSort sortItem = new ReportSort();

        sortItem.ReportTablesSchemaId  = Page.Settings.Report.ReportTablesSchemaId.Value;
        sortItem.ReportColumnsSchemaId = Convert.ToInt32(cboColumn.SelectedValue);
        sortItem.Ascending             = Convert.ToBoolean(cboOrder.SelectedValue);
        sortItem.Name = cboColumn.SelectedItem.Text;

        Page.Settings.SortedColumns.Add(sortItem);

        BindGrid(-1);
    }
 public CompliancesVerificationModel(bool isVerified, bool isUnverified, bool isExpired,
     bool isUnlicense, ReportSort sortBy, bool isDesc, int pageSize)
 {
     Pager = new PagerViewModel()
     {
         IsVerified = isVerified,
         IsUnverified = isUnverified,
         IsExpired = isExpired,
         IsUnlicense = isUnlicense,
         SortBy = sortBy,
         IsDesc = isDesc,
         PageSize = pageSize,
     };
 }
        public ActionResult DormantCustomers(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.LastLogonDate, bool isDesc = false)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetDormantCustomers(keyword, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new DormantCustomersViewModel(keyword, sortBy, isDesc, _pageSize) { DormantCustomers = list };

            if (!Request.IsAjaxRequest())
            {
                return View(model);
            }

            return PartialView("_ajaxDormantCustomers", model);
        }
        public ActionResult RegistrationRequiringVerificationPagging(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetRegistrationVerification(keyword, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new RegistrationVerificationViewModel(keyword, sortBy, isDesc, _pageSize) { PaymentDefault = list };

            return PartialView("~/Areas/Admin/Views/Dashboard/_ajaxRegistrationRequiringVerification.cshtml", model);
        }
        public IPagedList<CompliancesVerificationDto> GetCompliancesVerification(int currentPage, int pageSize,
            bool isVerified,
            bool isUnverified,
            bool isExpired,
            bool isUnlicense,
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            var listUsers =
                (from user in Repository.Query<User>()
                 where
                    user.Role == Role.Specialist
                 && user.CompletedStep == Step.Step4
                 && user.IsEmailConfirmed == true
                 && user.IsPhoneConfirmed == true
                 select new
                 {
                     UserId = user.Id,
                     FirstName = user.FirstName,
                     LastName = user.LastName,
                     Email = user.Email,
                     Status = user.Profiles.FirstOrDefault().Specializations.FirstOrDefault().LicenceToOperate
                     ? user.Profiles.FirstOrDefault().Specializations.FirstOrDefault().ExpiredDate.HasValue
                         ? user.Profiles.FirstOrDefault().Specializations.FirstOrDefault().ExpiredDate.Value < DbFunctions.TruncateTime(DateTime.Now)
                             ? VerifiedType.Expired
                             : VerifiedType.Verified
                         : VerifiedType.Unverified
                     : VerifiedType.Unlicense,
                     ExpiredDate = user.Profiles.FirstOrDefault().Specializations.FirstOrDefault().ExpiredDate,
                 });

            if (!isVerified)
            {
                listUsers = listUsers.Where(u => u.Status != VerifiedType.Verified);
            }
            if (!isUnverified)
            {
                listUsers = listUsers.Where(u => u.Status != VerifiedType.Unverified);
            }
            if (!isExpired)
            {
                listUsers = listUsers.Where(u => u.Status != VerifiedType.Expired);
            }
            if (!isUnlicense)
            {
                listUsers = listUsers.Where(u => u.Status != VerifiedType.Unlicense);
            }

            if (listUsers != null && listUsers.Any())
            {
                var _totalItem = listUsers.Count();

                switch (sortBy)
                {
                    case ReportSort.FirstName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.FirstName)
                            : listUsers.OrderBy(e => e.FirstName);
                        break;

                    case ReportSort.LastName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.LastName)
                            : listUsers.OrderBy(e => e.LastName);
                        break;

                    case ReportSort.EmailAddress:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.Email)
                            : listUsers.OrderBy(e => e.Email);
                        break;

                    case ReportSort.Status:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.Status)
                            : listUsers.OrderBy(e => e.Status);
                        break;

                    default:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.ExpiredDate)
                            : listUsers.OrderBy(e => e.ExpiredDate);
                        break;
                }

                return listUsers.Skip(currentPage * pageSize).Take(pageSize).Select(p => new CompliancesVerificationDto()
                {
                    UserId = p.UserId.ToString(),
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    EmailAddress = p.Email,
                    Status = p.Status.ToString(),
                    ExpiredDate = p.ExpiredDate
                }).ToPagedList(currentPage, pageSize, _totalItem);
            }

            return null;
        }
        public ActionResult PaymentDefault(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false,
            PaymentDefaultType paymentDafaultType = PaymentDefaultType.All)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetPaymentDefault(keyword, paymentDafaultType, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new PaymentDefaultViewModel(keyword, sortBy, isDesc, _pageSize) { PaymentDefault = list };
            model.ListAllPaymentDefault = AdminServices.Report.GetAllPaymentDefault(paymentDafaultType);

            if (!Request.IsAjaxRequest())
            {
                return View(model);
            }

            return PartialView("_ajaxPaymentDefault", model);
        }
        public MvcPaging.IPagedList<RegistrationVerificationDto> GetRegistrationVerification(string keyword,int currentPage, int pageSize,
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            keyword = keyword.ToLower();

            var listUsers = (from user in Repository.Query<User>()
                             where
                             user.Role == Role.Specialist
                             && user.Profiles.FirstOrDefault().Specializations.Any(s => s.POCs.Any(x => x.ExpiredDate == null))
                             select user);

            if (listUsers != null && listUsers.Any())
            {
                var _totalItem = listUsers.Count();

                switch (sortBy)
                {
                    case ReportSort.FirstName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.FirstName)
                            : listUsers.OrderBy(e => e.FirstName);
                        break;
                    case ReportSort.LastName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.LastName)
                            : listUsers.OrderBy(e => e.LastName);
                        break;
                    case ReportSort.EmailAddress:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.Email)
                            : listUsers.OrderBy(e => e.Email);
                        break;
                    case ReportSort.UserName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.UserName)
                            : listUsers.OrderBy(e => e.UserName);
                        break;
                    default:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.UserName)
                                                    : listUsers.OrderBy(e => e.UserName);
                        break;
                }

                return listUsers.Skip(currentPage * pageSize).Take(pageSize).Select(p => new RegistrationVerificationDto()
                {
                    UserId = p.Id.ToString(),
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    EmailAddress = p.Email,
                    UserName = p.UserName,
                }).ToPagedList(currentPage, pageSize, _totalItem);

            }
            return null;
        }
        public MvcPaging.IPagedList<PaymentDefaultDto> GetPaymentDefault(string keyword, PaymentDefaultType paymentDafaultType, int currentPage, int pageSize, 
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            keyword = keyword.ToLower();
            var listUsers = paymentDafaultType == PaymentDefaultType.All ?
                Repository.Query<TeleConsult.Domain.User>().Where(a => a.Role == Role.Customer) :
                Repository.Query<TeleConsult.Domain.User>().Where(a => a.Role == Role.Customer &&
                    (int)a.PaymentMethod == (int)paymentDafaultType);

            if (listUsers != null && listUsers.Any())
            {
                var _totalItem = listUsers.Count();

                switch (sortBy)
                {
                    case ReportSort.FirstName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.FirstName)
                            : listUsers.OrderBy(e => e.FirstName);
                        break;
                    case ReportSort.LastName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.LastName)
                            : listUsers.OrderBy(e => e.LastName);
                        break;
                    case ReportSort.EmailAddress:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.Email)
                            : listUsers.OrderBy(e => e.Email);
                        break;
                    case ReportSort.UserName:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.UserName)
                            : listUsers.OrderBy(e => e.UserName);
                        break;
                    case ReportSort.PaymentDefault:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.PaymentMethod)
                                                    : listUsers.OrderBy(e => e.PaymentMethod);
                        break;
                    default:
                        listUsers = isDesc ? listUsers.OrderByDescending(e => e.PaymentMethod)
                                                    : listUsers.OrderBy(e => e.PaymentMethod);
                        break;
                }

                return listUsers.Skip(currentPage * pageSize).Take(pageSize).Select(p => new PaymentDefaultDto()
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    EmailAddress = p.Email,
                    UserName = p.UserName,
                    PaymentDefault = p.PaymentMethod,
                }).ToPagedList(currentPage, pageSize, _totalItem);

            }
            return null;
        }
        public MvcPaging.IPagedList<ExpiringVerificationDto> GetExpiringVerification(string keyword, int currentPage, int pageSize,
           ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            keyword = keyword.ToLower();
            var listUsers = Repository.Query<TeleConsult.Domain.User>().Where(a => a.Role == Role.Specialist).ToList();

            List<ExpiringVerificationDto> listVerification = new List<ExpiringVerificationDto>();
            bool flagAddUser;
            foreach (var item in listUsers)
            {
                ExpiringVerificationDto verification = new ExpiringVerificationDto();
                verification.EmailAddress = item.Email;
                verification.FirstName = item.FirstName;
                verification.LastName = item.LastName;
                verification.UserName = item.UserName;
                verification.LastVerifiedDate = new DateTime();
                verification.ExpiredDate = new DateTime();
                flagAddUser = false;

                var profiles = item.Profiles;
                foreach (var itemProfile in profiles)
                {
                    var specialization = itemProfile.Specializations;
                    foreach (var itemSpecialization in specialization)
                    {
                        // File unverified or expired
                        if (itemSpecialization.ExpiredDate != null || itemSpecialization.ExpiredDate < DateTime.Now)
                        {
                            // If the specialist has more than 1 compliances, it will show the closest date of expiring
                            if (itemSpecialization.ExpiredDate > verification.ExpiredDate)
                            {
                                verification.LastVerifiedDate = itemSpecialization.LastVerifiedDate;
                                verification.ExpiredDate = itemSpecialization.ExpiredDate;
                                flagAddUser = true;
                            }
                        }
                    }
                }
                if (flagAddUser)
                    listVerification.Add(verification);
            }

            if (listVerification != null && listVerification.Any())
            {
                var _totalItem = listVerification.Count();

                switch (sortBy)
                {
                    case ReportSort.FirstName:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.FirstName).ToList()
                            : listVerification.OrderBy(e => e.FirstName).ToList();
                        break;
                    case ReportSort.LastName:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.LastName).ToList()
                            : listVerification.OrderBy(e => e.LastName).ToList();
                        break;
                    case ReportSort.EmailAddress:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.EmailAddress).ToList()
                            : listVerification.OrderBy(e => e.EmailAddress).ToList();
                        break;
                    case ReportSort.UserName:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.UserName).ToList()
                            : listVerification.OrderBy(e => e.UserName).ToList();
                        break;
                    case ReportSort.ExpiredDate:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.ExpiredDate).ToList()
                            : listVerification.OrderBy(e => e.ExpiredDate).ToList();
                        break;
                    case ReportSort.LastVerifiedDate:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.LastVerifiedDate).ToList()
                            : listVerification.OrderBy(e => e.LastVerifiedDate).ToList();
                        break;
                    default:
                        listVerification = isDesc ? listVerification.OrderByDescending(e => e.UserName).ToList()
                                                    : listVerification.OrderBy(e => e.UserName).ToList();
                        break;
                }

                return listVerification.Skip(currentPage * pageSize).Take(pageSize).Select(p => new ExpiringVerificationDto()
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    EmailAddress = p.EmailAddress,
                    UserName = p.UserName,
                    ExpiredDate = p.ExpiredDate,
                    LastVerifiedDate = p.LastVerifiedDate,
                }).ToPagedList(currentPage, pageSize, _totalItem);
            }
            return null;
        }
        public ActionResult PaymentDefaultPaging(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false,
            PaymentDefaultType paymentDafaultType = PaymentDefaultType.All)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetPaymentDefault(keyword, paymentDafaultType, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new PaymentDefaultViewModel(keyword, sortBy, isDesc, _pageSize) { PaymentDefault = list };
            model.ListAllPaymentDefault = AdminServices.Report.GetAllPaymentDefault(paymentDafaultType);

            return PartialView("~/Areas/Admin/Views/Dashboard/_ajaxPaymentDefault.cshtml", model);
        }
        public ActionResult RegistrationRequiringVerification(int? page, int? pageSize, string keyword = "",
            ReportSort sortBy = ReportSort.FirstName, bool isDesc = false)
        {
            int _currentPageIndex = page.HasValue ? page.Value - 1 : 0;
            int _pageSize = pageSize.HasValue ? pageSize.Value : 10;

            var list = AdminServices.Report.GetRegistrationVerification(keyword, _currentPageIndex, _pageSize, sortBy, isDesc);

            var model = new RegistrationVerificationViewModel(keyword, sortBy, isDesc, _pageSize) { PaymentDefault = list };

            if (!Request.IsAjaxRequest())
            {
                return View(model);
            }

            return PartialView("_ajaxRegistrationRequiringVerification", model);
        }