public async Task <BuildingShopInfo> CreateAsync(BuildingShopInfo buildingShopInfo, CancellationToken cancellationToken = default(CancellationToken)) { if (buildingShopInfo == null) { throw new ArgumentNullException(nameof(buildingShopInfo)); } Context.Add(buildingShopInfo); await Context.SaveChangesAsync(cancellationToken); return(buildingShopInfo); }
public async Task UpdateAsync(BuildingShopInfo buildingShopInfo, CancellationToken cancellationToken = default(CancellationToken)) { if (buildingShopInfo == null) { throw new ArgumentNullException(nameof(buildingShopInfo)); } Context.Attach(buildingShopInfo); Context.Update(buildingShopInfo); try { await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { } }
public async Task SaveAsync(SimpleUser user, BuildingShopInfo buildingShopInfo, CancellationToken cancellationToken = default(CancellationToken)) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (buildingShopInfo == null) { throw new ArgumentNullException(nameof(buildingShopInfo)); } //查看楼盘是否存在 if (!Context.Buildings.Any(x => x.Id == buildingShopInfo.Id)) { Buildings buildings = new Buildings() { Id = buildingShopInfo.Id, CreateUser = user.Id, ResidentUser1 = user.Id, CreateTime = DateTime.Now, OrganizationId = user.OrganizationId, ExamineStatus = 0 }; Context.Add(buildings); } List <string> tradePlannings = new List <string>(); //写业态到独立表 if (!String.IsNullOrEmpty(buildingShopInfo.TradeMixPlanning)) { tradePlannings = buildingShopInfo.TradeMixPlanning.Split(',').Where(x => !String.IsNullOrWhiteSpace(x)).ToList(); } //基本信息 if (!Context.BuildingShopInfos.Any(x => x.Id == buildingShopInfo.Id)) { Context.Add(buildingShopInfo); if (tradePlannings.Count > 0) { tradePlannings.ForEach(x => { Context.Add(new BuildingTradeMixPlanning() { Id = buildingShopInfo.Id, TradeMixPlanning = x }); }); } } else { Context.Attach(buildingShopInfo); Context.Update(buildingShopInfo); var list = await Context.BuildingTradeMixPlanning.Where(x => x.Id == buildingShopInfo.Id).ToListAsync(); tradePlannings.Where(x => !list.Any(y => y.TradeMixPlanning == x)).ToList().ForEach(t => { Context.Add(new BuildingTradeMixPlanning() { Id = buildingShopInfo.Id, TradeMixPlanning = t }); }); list.Where(x => !tradePlannings.Any(y => y == x.TradeMixPlanning)).ToList().ForEach(t => { Context.Remove(t); }); } try { await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { } }