using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.DataLogic.Common.Students; using Bowin.Common.Linq.Entity; using EMIS.ViewModel.Students; using System.Linq.Expressions; using EMIS.Entities; using EMIS.ViewModel; namespace EMIS.CommonLogic.Students { public class StudentFamilyServices : BaseServices, IStudentFamilyServices { public StudentFamilyDAL StudentFamilyDAL { get; set; } public IGridResultSet GetTopStudentFamilyGridView(Guid userID, int rowCount, int? pageIndex, int? pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE && x.UserID == userID); var result = this.StudentFamilyDAL.GetStudentFamilyViewQueryable(exp).Take(rowCount).ToList(); var newRowCount = rowCount - result.Count; for (var i = 0; i < newRowCount; i++) { result.Add(new StudentFamilyView { StudentFamilyID = Guid.NewGuid(), UserID = userID }); } return new GridResultSet { rows = result, total = result.Count }; } public void Save(Guid userID, IList studentFamilyViewList) { UnitOfWork.Remove(x => x.UserID == userID); var studentFamilyList = new List(); for (int i = 1; i <= studentFamilyViewList.Count; i++) { var family = studentFamilyViewList[i - 1]; var studentFamily = new CF_StudentFamily { StudentFamilyID = Guid.NewGuid(), UserID = userID, Name = family.Name, Relation = family.Relation, Age = family.Age, Politics = family.Politics, Unit = family.Unit, PhoneNumber = family.PhoneNumber, OrderNo = i }; this.SetNewStatus(studentFamily); studentFamilyList.Add(studentFamily); } UnitOfWork.AddRange(studentFamilyList); UnitOfWork.Commit(); } } }