using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using sbcLabSystem.Data.Domain.Account;
|
using PalGain.Core;
|
using BatchService.Framework.Utility;
|
using System.Data;
|
using sbcLabSystem.Data.Domain.Backstage;
|
|
namespace sbcLabSystem.Service.Account
|
{
|
public class AccountService
|
{
|
private IRespository<UserInfo> _users;
|
private IRespository<RoleInfo> _roles;
|
private IRespository<ResourceInfo> _resources;
|
private IRespository<UserRequestInfo> _UserRequestInfo;
|
private IRespository<Menus> _Menusinfo;
|
private IRespository<EmileInfo> _EmileInfo;
|
private IRespository<EmailSmtpInfo> _emailSmtpInfo;
|
|
public AccountService(IRespository<UserInfo> i_users,
|
IRespository<RoleInfo> i_roles,
|
IRespository<ResourceInfo> i_resources,
|
IRespository<UserRequestInfo> i_UserRequestInfo,
|
IRespository<Menus> i_Menus,
|
IRespository<EmileInfo> i_EmileInfo,
|
IRespository<EmailSmtpInfo> i_emailSmtpInfo)
|
{
|
_emailSmtpInfo = i_emailSmtpInfo;
|
_users = i_users;
|
_roles = i_roles;
|
_resources = i_resources;
|
_UserRequestInfo = i_UserRequestInfo;
|
_Menusinfo = i_Menus;
|
_EmileInfo = i_EmileInfo;
|
}
|
public string GetCurrentMaxLabCode()
|
{
|
var labList = this.GetAllUserRequestInfoQueryable()
|
.Where(p => string.IsNullOrEmpty(p.LabCode) == false).ToList()
|
.Select(p => p.LabCode.ToLower().Replace("Lab".ToLower(), "").Replace("QC".ToLower(), "")).ToList();
|
int maxValue = 0;
|
labList.ForEach(x =>
|
{
|
int tempValue = 0;
|
int.TryParse(x, out tempValue);
|
if (tempValue > 0 && tempValue > maxValue)
|
{
|
maxValue = tempValue;
|
}
|
});
|
return string.Format("QC{0}", maxValue + 1);
|
}
|
public void ConfirmLabInfo(int oriLabId, UserRequestInfo targetLab)
|
{
|
UserRequestInfo oriLabInfo = PalGainEngine.Instance.Resolve<AccountService>()
|
.GetAllUserRequestInfoQueryable().FirstOrDefault(p => p.Id == oriLabId);
|
UserRequestInfo targetLab2 = PalGainEngine.Instance.Resolve<AccountService>()
|
.GetAllUserRequestInfoQueryable().FirstOrDefault(p => p.Id == targetLab.Id);
|
UserRequestInfo targetLabInfo = targetLab;
|
oriLabInfo.LabName = targetLabInfo.LabName;
|
oriLabInfo.CompanyName = targetLabInfo.CompanyName;
|
oriLabInfo.ManagerEmail = targetLabInfo.ManagerEmail;
|
oriLabInfo.ManagerFax = targetLabInfo.ManagerFax;
|
oriLabInfo.ManagerMobile = targetLabInfo.ManagerMobile;
|
oriLabInfo.ManagerName = targetLabInfo.ManagerName;
|
oriLabInfo.ManagerPhone = targetLabInfo.ManagerPhone;
|
oriLabInfo.OperatorEmail = targetLabInfo.OperatorEmail;
|
oriLabInfo.OperatorFax = targetLabInfo.OperatorFax;
|
oriLabInfo.OperatorMobile = targetLabInfo.OperatorMobile;
|
oriLabInfo.OperatorName = targetLabInfo.OperatorName;
|
oriLabInfo.OperatorPhone = targetLabInfo.OperatorPhone;
|
oriLabInfo.Address = targetLabInfo.Address;
|
oriLabInfo.PostCode = targetLabInfo.PostCode;
|
oriLabInfo.Province = targetLabInfo.Province;
|
_UserRequestInfo.Update(oriLabInfo);
|
_UserRequestInfo.Delete(targetLab2);
|
}
|
public void InserEmilinfo(EmileInfo info)
|
{
|
_EmileInfo.Insert(info);
|
}
|
public IQueryable<EmileInfo> GetUnSentEmails()
|
{
|
return _EmileInfo.Table.Where(p => p.EmileState == 0 && string.IsNullOrEmpty(p.EmileName) == false);
|
}
|
public void SetSentStatusToEmailSentBox(EmileInfo entity)
|
{
|
entity.EmileState = 1;
|
entity.SendOutDatetime = DateTime.Now;
|
_EmileInfo.Update(entity);
|
}
|
public void SetErrorMessageToEmailSentBox(EmileInfo entity)
|
{
|
_EmileInfo.Update(entity);
|
}
|
public IQueryable<UserInfo> GetUsers()
|
{
|
return _users.Table;
|
}
|
public IQueryable<EmailSmtpInfo> GetEmailSmtpInfos()
|
{
|
return _emailSmtpInfo.Table;
|
}
|
public EmailSmtpInfo GetDefaultSmtpInfo()
|
{
|
return _emailSmtpInfo.Table.FirstOrDefault(p => p.IsDefault == true);
|
}
|
public UserInfo Users(int id)
|
{
|
return _users.GetById(id);
|
}
|
public void UpdeteUser(UserInfo info)
|
{
|
UserInfo ent = _users.GetById(info.Id);
|
if (ent != null)
|
{
|
ent.Password = info.Password;
|
_users.Update(ent);
|
}
|
}
|
public IQueryable<RoleInfo> GetRoleInfo()
|
{
|
return _roles.Table;
|
}
|
public IQueryable<ResourceInfo> GetResourceInfo()
|
{
|
return _resources.Table;
|
}
|
public List<UserRequestInfo> GetUserRequestInfo()
|
{
|
return _UserRequestInfo.Table.ToList();
|
}
|
public IQueryable<UserRequestInfo> GetUserRequestInfoQueryable()
|
{
|
return _UserRequestInfo.Table.Where(p => p.State == 1);
|
}
|
public IQueryable<UserRequestInfo> GetAllUserRequestInfoQueryable()
|
{
|
return _UserRequestInfo.Table;
|
}
|
public UserRequestInfo UserRequestInfo(int Id)
|
{
|
return _UserRequestInfo.GetById(Id);
|
}
|
public void UpdateUserRequestInfo(UserRequestInfo info)
|
{
|
UserRequestInfo ent = _UserRequestInfo.GetById(info.Id);
|
if (ent != null)
|
{
|
ent.Remarks = info.Remarks;
|
ent.LabCode = info.LabCode;
|
ent.LabLoginName = info.LabLoginName;
|
ent.LabName = info.LabName;
|
if (!string.IsNullOrEmpty(info.LabPassword))
|
{
|
ent.LabPassword = info.LabPassword;
|
}
|
ent.ManagerEmail = info.ManagerEmail;
|
ent.ManagerFax = info.ManagerFax;
|
ent.ManagerMobile = info.ManagerMobile;
|
ent.ManagerName = info.ManagerName;
|
ent.ManagerPhone = info.ManagerPhone;
|
ent.OperatorEmail = info.OperatorEmail;
|
ent.OperatorFax = info.OperatorFax;
|
ent.OperatorMobile = info.OperatorMobile;
|
ent.OperatorName = info.OperatorName;
|
ent.OperatorPhone = info.OperatorPhone;
|
ent.PostCode = info.PostCode;
|
ent.ProjectId = info.ProjectId;
|
ent.Province = info.Province;
|
ent.State = info.State;
|
ent.UpdateTime = info.UpdateTime;
|
ent.Address = info.Address;
|
ent.City = info.City;
|
ent.CompanyName = info.CompanyName;
|
ent.District = info.District;
|
ent.taxNo = info.taxNo;
|
_UserRequestInfo.Update(ent);
|
}
|
}
|
public void DeleteUserRequestInfo(int Id)
|
{
|
UserRequestInfo info = _UserRequestInfo.Table.FirstOrDefault(p => p.Id == Id);
|
if (info != null)
|
{
|
_UserRequestInfo.Delete(info);
|
}
|
}
|
public List<Menus> GetMenus()
|
{
|
return _Menusinfo.Table.ToList();
|
}
|
public Menus MenusId(int ID)
|
{
|
return _Menusinfo.GetById(ID);
|
}
|
public void InsertMenu(Menus info)
|
{
|
_Menusinfo.Insert(info);
|
}
|
public void DeleteMenu(Menus info)
|
{
|
_Menusinfo.Delete(info);
|
}
|
public void UpdateMenu(Menus info)
|
{
|
Menus entity = _Menusinfo.GetById(info.Id);
|
entity.Name = info.Name;
|
entity.ParnetId = info.ParnetId;
|
entity.Url = info.Url;
|
entity.Category = info.Category;
|
entity.Contents = info.Contents;
|
entity.Title = info.Title;
|
_Menusinfo.Update(entity);
|
}
|
public void InsertResourceInfo(ResourceInfo info)
|
{
|
_resources.Insert(info);
|
}
|
public void InsertUserRequestInfo(UserRequestInfo info)
|
{
|
_UserRequestInfo.Insert(info);
|
}
|
}
|
}
|