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 _users; private IRespository _roles; private IRespository _resources; private IRespository _UserRequestInfo; private IRespository _Menusinfo; private IRespository _EmileInfo; private IRespository _emailSmtpInfo; public AccountService(IRespository i_users, IRespository i_roles, IRespository i_resources, IRespository i_UserRequestInfo, IRespository i_Menus, IRespository i_EmileInfo, IRespository 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() .GetAllUserRequestInfoQueryable().FirstOrDefault(p => p.Id == oriLabId); UserRequestInfo targetLab2 = PalGainEngine.Instance.Resolve() .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 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 GetUsers() { return _users.Table; } public IQueryable 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 GetRoleInfo() { return _roles.Table; } public IQueryable GetResourceInfo() { return _resources.Table; } public List GetUserRequestInfo() { return _UserRequestInfo.Table.ToList(); } public IQueryable GetUserRequestInfoQueryable() { return _UserRequestInfo.Table.Where(p => p.State == 1); } public IQueryable 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 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); } } }