using PalGain.Core;
|
using sbcLabSystem.Data.Domain.Account;
|
using sbcLabSystem.Service.Account;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
|
namespace sbcLabSystem.Models.Backstage
|
{
|
public class UserRequestViewModel
|
{
|
public List<UserRequestInfo> UserRequestInfoList { get; set; }
|
public string where = "";
|
public int StateId = 0;
|
public string name = "";
|
public int PageCount { get; set; }
|
public int CurrentPageIndex = 1;
|
public UserRequestInfo CurrentUserRequestInfo { get; set; }
|
public List<int> Pages = new List<int>();
|
public int Id { get; set; }
|
public bool IsSelected { get; set; }
|
public string CompanyName { get; set; }
|
public string LabName { get; set; }
|
public string LabCode { get; set; }
|
public string Province { get; set; }
|
public int ProjectId { get; set; }
|
public bool IsCharged { get; set; }
|
public string SampleNo { get; set; }
|
public bool IsSendEMS { get; set; }
|
public string EMSNo { get; set; }
|
public string PacketContent { get; set; }
|
public string Remark { get; set; }
|
public int QCDistributionRegisterId { get; set; }
|
|
public static UserRequestViewModel FromEntity(UserRequestInfo entity)
|
{
|
UserRequestViewModel viewModel = new UserRequestViewModel()
|
{
|
IsSelected = false,
|
CompanyName = entity.CompanyName,
|
LabName = entity.LabName,
|
LabCode = entity.LabCode,
|
Province = entity.Province,
|
ProjectId = entity.ProjectId,
|
Id = entity.Id,
|
};
|
return viewModel;
|
}
|
public static UserRequestInfo ToEntity(UserRequestViewModel viewModel)
|
{
|
UserRequestInfo labInfo = new UserRequestInfo()
|
{
|
CompanyName = viewModel.CompanyName,
|
LabName = viewModel.LabName,
|
LabCode = viewModel.LabCode,
|
Province = viewModel.Province,
|
ProjectId = viewModel.ProjectId,
|
};
|
if (viewModel.Id > 0)
|
{
|
var temp = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().FirstOrDefault(p => p.Id == viewModel.Id);
|
if (temp != null)
|
{
|
labInfo = temp;
|
labInfo.ProjectId = viewModel.ProjectId;
|
}
|
}
|
return labInfo;
|
}
|
|
public static UserRequestViewModel GetUserRequestViewModel(int PageIndex, int SId, string where, string name)
|
{
|
UserRequestViewModel viewModel = new UserRequestViewModel();
|
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 && p.LabCode.Contains(where)).Count();
|
}
|
if (name == "LabLoginName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.LabLoginName.Contains(where)).Count(); }
|
if (name == "CompanyName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.CompanyName.Contains(where)).Count(); }
|
if (name == "LabName")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.LabName.Contains(where)).Count(); }
|
if (name == "Address")
|
{ newsCount = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.Address.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 = UserRequestViewModel.Tolist(offset, capacity, SId, where, name);
|
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<UserRequestInfo> Tolist(int offset, int capacity, int SId, string where, string name)
|
{
|
List<UserRequestInfo> UserList = new List<UserRequestInfo>();
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId)
|
.Skip(offset * capacity).Take(capacity).ToList();
|
if (string.IsNullOrEmpty(where) == false && string.IsNullOrEmpty(name) == false)
|
{
|
if (name == "LabCode")
|
{
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.LabCode.Contains(where))
|
.Skip(offset * capacity).Take(capacity).ToList();
|
}
|
if (name == "LabLoginName")
|
{
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.LabLoginName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).ToList();
|
}
|
if (name == "CompanyName")
|
{
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.CompanyName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).ToList();
|
}
|
if (name == "LabName")
|
{
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.LabName.Contains(where))
|
.Skip(offset * capacity).Take(capacity).ToList();
|
}
|
if (name == "Address")
|
{
|
UserList = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfo().Where(p => p.State == SId && p.Address.Contains(where))
|
.Skip(offset * capacity).Take(capacity).ToList();
|
}
|
}
|
return UserList.ToList();
|
}
|
|
}
|
}
|