using PalGain.Core;
|
using sbcLabSystem.Service.Account;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
|
namespace sbcLabSystem.Models.Backstage
|
{
|
public class UserRequestViewModel1
|
{
|
public List<UserRequestInfoModel> UserRequestInfoList { get; set; }
|
public string where = "";
|
public int StateId = 0;
|
public string name = "";
|
public int PageCount { get; set; }
|
public int CurrentPageIndex = 1;
|
public UserRequestInfoModel CurrentUserRequestInfo { get; set; }
|
public List<int> Pages = new List<int>();
|
public static UserRequestViewModel1 GetUserRequestViewModel(int PageIndex, int SId, string where, string name,string admin)
|
{
|
UserRequestViewModel1 viewModel = new UserRequestViewModel1();
|
int newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo()
|
.Where(p => p.State == SId).Count();
|
if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false)
|
{
|
viewModel.name = name;
|
if (name == "LabCode")
|
{
|
newsCount = PalGainEngine.Instance.Resolve<AccountService>()
|
.GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.LabCode) == false && p.LabCode.Contains(where)).Count();
|
}
|
if (name == "LabLoginName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>()
|
.GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.LabLoginName) == false && p.LabLoginName.Contains(where)).Count(); }
|
if (name == "CompanyName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId &&string.IsNullOrEmpty(p.CompanyName)==false&&p.CompanyName.Contains(where)).Count(); }
|
if (name == "LabName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId &&string.IsNullOrEmpty(p.LabName)==false&& p.LabName.Contains(where)).Count(); }
|
if (name == "Address")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.Address) == false && p.Address.Contains(where)).Count(); }
|
if (name == "Province")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && string.IsNullOrEmpty(p.Province) == false && p.Province.Contains(where)).Count(); }
|
}
|
|
int offset = PageIndex - 1;
|
int capacity = 10;
|
viewModel.PageCount = newsCount / capacity;
|
if (newsCount % capacity > 0)
|
{
|
viewModel.PageCount++;
|
}
|
viewModel.StateId = SId;
|
viewModel.UserRequestInfoList = UserRequestViewModel1.Tolist(offset, capacity, SId, where, name, admin);
|
viewModel.Pages.Add(0);
|
for (int i = PageIndex - 2; i < PageIndex; i++)
|
{
|
if (i <= 0)
|
{
|
continue;
|
}
|
viewModel.Pages.Add(i);
|
}
|
for (int i = PageIndex; i <= PageIndex + 2; i++)
|
{
|
if (i >= viewModel.PageCount)
|
{
|
break;
|
}
|
viewModel.Pages.Add(i);
|
}
|
viewModel.Pages.Add(viewModel.PageCount);
|
return viewModel;
|
}
|
public static UserRequestViewModel1 GetUserRequestViewModel2(int PageIndex, DateTime? date1, DateTime? date2)
|
{
|
UserRequestViewModel1 viewModel = new UserRequestViewModel1();
|
int newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == 1&&p.UpdateTime>date1&&p.UpdateTime<date2).Count();
|
|
|
int offset = PageIndex - 1;
|
int capacity = 10;
|
viewModel.PageCount = newsCount / capacity;
|
if (newsCount % capacity > 0)
|
{
|
viewModel.PageCount++;
|
}
|
viewModel.StateId = 1;
|
viewModel.UserRequestInfoList =PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo()
|
.Where(p => p.State == 1&&p.UpdateTime>date1&&p.UpdateTime<date2).OrderBy(p=>p.LabCode).ToList()
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
viewModel.Pages.Add(0);
|
for (int i = PageIndex - 2; i < PageIndex; i++)
|
{
|
if (i <= 0)
|
{
|
continue;
|
}
|
viewModel.Pages.Add(i);
|
}
|
for (int i = PageIndex; i <= PageIndex + 2; i++)
|
{
|
if (i >= viewModel.PageCount)
|
{
|
break;
|
}
|
viewModel.Pages.Add(i);
|
}
|
viewModel.Pages.Add(viewModel.PageCount);
|
return viewModel;
|
}
|
public static List<UserRequestInfoModel> Tolist(int offset, int capacity, int SId, string where, string name,string admin)
|
{
|
List<UserRequestInfoModel> UserList = new List<UserRequestInfoModel>();
|
var query = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo()
|
.OrderByDescending(p => p.RequestTime).Where(p => p.State == SId);
|
if (admin == "admin")
|
{
|
query= query.OrderBy(p => p.LabCode).ToList();
|
}
|
UserList = query.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false)
|
{
|
if (name == "LabCode")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabCode) == false && p.LabCode.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
if (name == "LabLoginName")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabLoginName) == false && p.LabLoginName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
if (name == "CompanyName")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.CompanyName) == false && p.CompanyName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
if (name == "LabName")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.LabName) == false && p.LabName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
if (name == "Address")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.Address) == false && p.Address.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
if (name == "Province")
|
{
|
UserList = query.Where(p => p.State == SId && string.IsNullOrEmpty(p.Province) == false && p.Province.Contains(where))
|
.Skip(offset * capacity).Take(capacity).Select(p => UserRequestInfoModel.FromEntity(p)).ToList();
|
}
|
}
|
return UserList.ToList();
|
}
|
}
|
}
|