/// <summary> /// 保存运费及其明细 /// </summary> /// <param name="freight">运费模板</param> /// <param name="freightDetailList">运费明细集合</param> /// <returns></returns> public ResultDTO AddFreightAndFreightDetailExt(FreightTemplateDTO freight, List <FreightTemplateDetailDTO> freightDetailList) { try { if (freight == null) { return(new ResultDTO { ResultCode = 2, Message = "运费模板为null" }); } ContextSession contextSession = ContextFactory.CurrentThreadContext; FreightTemplate tem = new FreightTemplate(); Guid ID = Guid.NewGuid(); tem.Id = ID; tem.Name = freight.Name; tem.FreightMethod = freight.FreightMethod; tem.FreightTo = freight.FreightTo; tem.FirstCount = freight.FirstCount; tem.FirstCountPrice = freight.FirstCountPrice; tem.NextCount = freight.NextCount; tem.NextCountPrice = freight.NextCountPrice; tem.IsFreeExp = freight.IsFreeExp; tem.AppId = freight.AppId; tem.SubTime = DateTime.Now; tem.ModifiedOn = DateTime.Now; tem.EntityState = System.Data.EntityState.Added; contextSession.SaveObject(tem); if (freightDetailList != null && freightDetailList.Count > 0) { FreightTemplateDetail ftDetail; foreach (FreightTemplateDetailDTO detail in freightDetailList) { ftDetail = new FreightTemplateDetail(); ftDetail.Id = Guid.NewGuid(); ftDetail.FreightTemplateId = ID; ftDetail.FreightTo = detail.FreightTo; ftDetail.FirstCount = detail.FirstCount; ftDetail.FirstCountPrice = detail.FirstCountPrice; ftDetail.NextCount = detail.NextCount; ftDetail.NextCountPrice = detail.NextCountPrice; ftDetail.EntityState = System.Data.EntityState.Added; contextSession.SaveObject(ftDetail); } } contextSession.SaveChanges(); return(new ResultDTO { ResultCode = 0, Message = ID.ToString() }); } catch (Exception ex) { LogHelper.Error(string.Format("保存运费及其明细服务异常。freight:{0},freightDetailList:{1}", JsonHelper.JsonSerializer(freight), JsonHelper.JsonSerializer(freightDetailList)), ex); return(new ResultDTO { ResultCode = 1, Message = ex.Message }); } }
/// <summary> /// 更新运费模板和运费详细信息列表 /// </summary> /// <param name="freight"></param> /// <param name="freightDetailList"></param> /// <returns></returns> public ResultDTO UpdateFreightAndFreightDetailExt(FreightTemplateDTO freight, List <FreightTemplateDetailDTO> freightDetailList) { try { if (freight == null) { return(new ResultDTO { ResultCode = 2, Message = "运费模板为null" }); } ContextSession contextSession = ContextFactory.CurrentThreadContext; FreightTemplate fTemplate = FreightTemplate.ObjectSet().Where(s => s.Id == freight.Id).FirstOrDefault(); fTemplate.Name = freight.Name; fTemplate.IsFreeExp = freight.IsFreeExp; fTemplate.FreightMethod = freight.FreightMethod; fTemplate.FirstCount = freight.FirstCount; fTemplate.FirstCountPrice = freight.FirstCountPrice; fTemplate.NextCount = freight.NextCount; fTemplate.NextCountPrice = freight.NextCountPrice; fTemplate.ModifiedOn = DateTime.Now; fTemplate.EntityState = System.Data.EntityState.Modified; contextSession.SaveObject(fTemplate); if (freightDetailList != null && freightDetailList.Count > 0) { FreightTemplateDetail detail; foreach (FreightTemplateDetailDTO ftDetail in freightDetailList) { if (ftDetail.Id == Guid.Empty) { detail = new FreightTemplateDetail(); detail.FreightTo = ftDetail.FreightTo; detail.FirstCount = ftDetail.FirstCount; detail.FirstCountPrice = ftDetail.FirstCountPrice; detail.NextCount = ftDetail.NextCount; detail.NextCountPrice = ftDetail.NextCountPrice; detail.Id = Guid.NewGuid(); detail.FreightTemplateId = fTemplate.Id; detail.EntityState = System.Data.EntityState.Added; contextSession.SaveObject(detail); } else { detail = FreightTemplateDetail.ObjectSet().Where(s => s.Id == ftDetail.Id).FirstOrDefault(); if (detail != null) { detail.FreightTo = ftDetail.FreightTo; detail.FirstCount = ftDetail.FirstCount; detail.FirstCountPrice = ftDetail.FirstCountPrice; detail.NextCount = ftDetail.NextCount; detail.NextCountPrice = ftDetail.NextCountPrice; detail.EntityState = System.Data.EntityState.Modified; contextSession.SaveObject(detail); } } } } contextSession.SaveChanges(); return(new ResultDTO { ResultCode = 0, Message = "Success" }); } catch (Exception ex) { LogHelper.Error(string.Format("更新运费及其明细服务异常。freight:{0},freightDetailList:{1}", JsonHelper.JsonSerializer(freight), JsonHelper.JsonSerializer(freightDetailList)), ex); return(new ResultDTO { ResultCode = 1, Message = ex.Message }); } }