/// <summary> /// 创建订单 /// </summary> /// <param name="subscriptionId"></param> /// <param name="textbookId"></param> /// <param name="booksellerId"></param> /// <param name="declarations"></param> /// <param name="planCount"></param> /// <param name="spareCount"></param> /// <returns></returns> public static Subscription CreateSubscription(Guid subscriptionId, Guid textbookId, Guid booksellerId, SchoolYearTerm term, int planCount, int spareCount) { var sub = new Subscription { Bookseller_Id = booksellerId, PlanCount = planCount, SpareCount = spareCount, SubscriptionDate = DateTime.Now, ID = subscriptionId, Textbook_Id = textbookId, SchoolYearTerm = term }; return sub; }
/// <summary> /// 对教材汇总,生成订单 /// </summary> /// <param name="studentDeclarations">学生用书申报</param> /// <param name="teacherDeclarations">教师用书申报</param> /// <returns></returns> public static IEnumerable<Subscription> CreateSubscriptions( IEnumerable<StudentDeclarationJiaoWu> studentDeclarations, IEnumerable<TeacherDeclarationJiaoWu> teacherDeclarations ) { //合并教师用书申报与学生用书申报 var declarations = studentDeclarations.Union<DeclarationJiaoWu>(teacherDeclarations); //分组 var result = declarations .GroupBy(t => t.Textbook, new TextbookComparer()) //教材选择器 .Select(m => { //取教材ID相同的申报 var studentDeclarationJiaoWus = studentDeclarations.Where(d => d.Textbook.ID == m.Key.ID).ToList(); var teacherDeclarationJiaoWus = teacherDeclarations.Where(d => d.Textbook_Id == m.Key.ID).ToList(); //转换为教材用书申报 var studentDeclarationTextbooks = studentDeclarationJiaoWus.ConvertAll(Converter); var teacherDeclarationTextbooks = teacherDeclarationJiaoWus.ConvertAll(Converter); //新建订单 var subscription = new Subscription { ID = Guid.NewGuid(), Textbook_Id = m.Key.ID, SchoolYearTerm = declarations.FirstOrDefault().SchoolYearTerm, Textbook = m.Key, PlanCount = m.Sum(s => s.DeclarationCount), SpareCount = 0, SubscriptionDate = DateTime.Now, SubscriptionState = Models.FeedbackState.未征订, StudentDeclarations = studentDeclarationTextbooks, TeacherDeclarations = teacherDeclarationTextbooks }; return subscription; }); return result.ToList(); }