Example #1
0
        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);
        }
Example #2
0
 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) { }
 }
Example #3
0
        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) { }
        }