using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
using sbcLabSystem.Data.Domain.Backstage;
|
using sbcLabSystem.Data.Domain.Account;
|
using PalGain.Core;
|
using sbcLabSystem.Service.QC;
|
using sbcLabSystem.Service.Account;
|
|
namespace sbcLabSystem.Models.Backstage
|
{
|
public class QCDistributionPageViewModel
|
{
|
public QCDistributionPageViewModel()
|
{
|
QCDistributions = QCDistributionInfoViewModel.ToList();
|
CurrentQCDistribution = new QCDistributionInfoViewModel();
|
CurrentPageIndex = 1;
|
}
|
public QCDistributionPageViewModel(int qcDistId, int pageIndex, int maxItemInOnePage)
|
: this(qcDistId, "", pageIndex, maxItemInOnePage) { }
|
public QCDistributionPageViewModel(int qcDistId, string keyWord, int pageIndex, int maxItemInOnePage)
|
{
|
PageNavInfo = new PageNavigationViewModel(pageIndex,
|
PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfoQueryable().Count(),
|
maxItemInOnePage);
|
CurrentPageIndex = 1;
|
QCDistributionSampleList = PalGainEngine.Instance.Resolve<QCService>().GetQcDistributions()
|
.Where(p => p.Id != qcDistId).Select(p => new NameValue()
|
{
|
Id = p.Id,
|
DistNo = p.DistNo
|
}).ToList();
|
CurrentQCDistRegisterInfo = new QCDistributionRegisterInfoViewModel();
|
if (qcDistId == 0)
|
{
|
CurrentQCDistribution = new QCDistributionInfoViewModel();
|
}
|
else
|
{
|
CurrentQCDistribution = QCDistributionInfoViewModel.FromEntity(
|
PalGainEngine.Instance.Resolve<QCService>().GetQcDistributions()
|
.FirstOrDefault(p => p.Id == qcDistId));
|
CurrentQCDistribution.AnswerInfo = null;
|
CurrentQCDistribution.AnswerJSON = "";
|
var result = PalGainEngine.Instance.Resolve<AccountService>().GetUserRequestInfoQueryable();
|
if (string.IsNullOrEmpty(keyWord) == false)
|
{
|
result = result.Where(p => p.LabCode.ToLower().Contains(keyWord.ToLower()) ||
|
p.CompanyName.ToLower().Contains(keyWord.ToLower()));
|
}
|
var list = result
|
.OrderBy(p => p.LabCode).Skip((pageIndex - 1) * maxItemInOnePage)
|
.Take(maxItemInOnePage).ToList();
|
CurrentQCDistribution.LabList = new List<QCDistributionRegisterInfoViewModel>();
|
list.ForEach(x =>
|
{
|
var regResult = PalGainEngine.Instance.Resolve<QCService>().GetQcDistributionRegisters()
|
.FirstOrDefault(p => p.LabId == x.Id && p.QCDistributionId == qcDistId);
|
if (regResult != null)
|
{
|
var regInfoViewModel = QCDistributionRegisterInfoViewModel.FromEntity(regResult);
|
regInfoViewModel.IsSelected = true;
|
regInfoViewModel.LabId = regResult.LabId;
|
regInfoViewModel.LabName = regResult.LabInfo.LabName;
|
regInfoViewModel.Province = regResult.LabInfo.Province;
|
CurrentQCDistribution.LabList.Add(regInfoViewModel);
|
}
|
else
|
{
|
CurrentQCDistribution.LabList.Add(new QCDistributionRegisterInfoViewModel().CopyFromLabInfo(x));
|
}
|
});
|
}
|
}
|
public List<NameValue> QCDistributionSampleList { get; set; }
|
public List<QCDistributionInfoViewModel> QCDistributions { get; set; }
|
public QCDistributionInfoViewModel CurrentQCDistribution { get; set; }
|
public QCDistributionRegisterInfoViewModel CurrentQCDistRegisterInfo { get; set; }
|
public int CurrentPageIndex { get; set; }
|
public int LastPageIndex { get; set; }
|
public int ImportQCDistId { get; set; }
|
public string KeyWord { get; set; }
|
public PageNavigationViewModel PageNavInfo { get; set; }
|
public class NameValue
|
{
|
public int Id { get; set; }
|
public string DistNo { get; set; }
|
}
|
|
}
|
}
|