public WJ_BuildingModel GetBuildingModel(Guid?id)
 {
     if (!id.HasValue)
     {
         return(new WJ_BuildingModel());
     }
     using (DataProvider dp = new DataProvider())
     {
         WJ_BuildingModel model = Mapper.Map <WJ_BuildingModel>(dp.WJ_Building.FirstOrDefault(m => m.Id == id.Value));
         model.BuildTypeList.AddRange(dp.WJ_BuildingAttr.
                                      Where(m => m.BuildingId == model.Id && m.AttrType == "BuildingType").
                                      Select(m => m.DicId));
         model.BuildTagList.AddRange(dp.WJ_BuildingAttr.
                                     Where(m => m.BuildingId == model.Id && m.AttrType == "BuildingTag").
                                     Select(m => m.DicId));
         model.BuildPropertyTypeLsit.AddRange(dp.WJ_BuildingAttr.
                                              Where(m => m.BuildingId == model.Id && m.AttrType == "BuildPropertyType").
                                              Select(m => m.DicId));
         model.BuildShowImage.AddRange(dp.WJ_BuildingPhoto.
                                       Where(m => m.BuildingId == model.Id && m.PhotoType == "Show").
                                       Select(m => m.PhotoPath));
         model.BuildAlbumList.AddRange(dp.WJ_BuildingPhoto.
                                       Where(m => m.BuildingId == model.Id && m.PhotoType == "Album").
                                       Select(m => m.PhotoPath));
         model.BuildHouseTypeList.AddRange(dp.WJ_BuildingPhoto.
                                           Where(m => m.BuildingId == model.Id && m.PhotoType == "HouseType").
                                           Select(m => m.PhotoPath));
         return(model);
     }
 }
        public bool AddBuilding(WJ_BuildingModel model, string rootPath)
        {
            using (DataProvider dp = new DataProvider())
            {
                try
                {
                    WJ_Building entity = Mapper.Map <WJ_Building>(model);
                    entity.Id         = Guid.NewGuid();
                    entity.CreateTime = DateTime.Now;
                    entity.IsDel      = false;
                    model.BuildTypeList.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildingType.ToString(),
                            DicId      = m
                        });
                    });
                    model.BuildTagList.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildingTag.ToString(),
                            DicId      = m
                        });
                    });
                    model.BuildPropertyTypeLsit.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildPropertyType.ToString(),
                            DicId      = m
                        });
                    });

                    model.BuildShowImage.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/BuildShow/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "Show",
                            PhotoPath  = newPath
                        });
                    });

                    model.BuildAlbumList.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/Album/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "Album",
                            PhotoPath  = newPath
                        });
                    });

                    model.BuildHouseTypeList.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/HouseType/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "HouseType",
                            PhotoPath  = newPath
                        });
                    });
                    dp.WJ_Building.Add(entity);
                    dp.SaveChanges();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
        public bool EditBuilding(WJ_BuildingModel model, string rootPath)
        {
            using (DataProvider dp = new DataProvider())
            {
                try
                {
                    if (model.Id == Guid.Empty)
                    {
                        return(false);
                    }
                    var entity = dp.WJ_Building.FirstOrDefault(m => m.Id == model.Id);
                    if (entity == null)
                    {
                        return(false);
                    }
                    entity.ShortRemark         = model.ShortRemark;
                    entity.ContactTel          = model.ContactTel;
                    entity.Address             = model.Address;
                    entity.BuildName           = model.BuildName;
                    entity.Sort                = model.Sort;
                    entity.StarsCount          = model.StarsCount;
                    entity.BuildIntro          = model.BuildIntro;
                    entity.OpeningTime         = model.OpeningTime;
                    entity.BuildPrice          = model.BuildPrice;
                    entity.BuildType           = model.BuildType;
                    entity.Households          = model.Households;
                    entity.BelogEstate         = model.BelogEstate;
                    entity.Years               = model.Years;
                    entity.SalesAddress        = model.SalesAddress;
                    entity.AreaCovered         = model.AreaCovered;
                    entity.BuildingCount       = model.BuildingCount;
                    entity.RenovationCondition = model.RenovationCondition;
                    entity.GreeningRate        = model.GreeningRate;
                    entity.UpdateTime          = DateTime.Now;


                    dp.WJ_BuildingAttr.RemoveRange(dp.WJ_BuildingAttr.Where(m => m.BuildingId == model.Id));
                    model.BuildTypeList.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildingType.ToString(),
                            DicId      = m
                        });
                    });
                    model.BuildTagList.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildingTag.ToString(),
                            DicId      = m
                        });
                    });
                    model.BuildPropertyTypeLsit.ForEach(m =>
                    {
                        dp.WJ_BuildingAttr.Add(new WJ_BuildingAttr
                        {
                            BuildingId = entity.Id,
                            AttrType   = DicGroupCode.BuildPropertyType.ToString(),
                            DicId      = m
                        });
                    });


                    var showList  = dp.WJ_BuildingPhoto.Where(m => m.BuildingId == model.Id && m.PhotoType == "Show" && !model.BuildShowImage.Contains(m.PhotoPath));
                    var albumList = dp.WJ_BuildingPhoto.Where(m => m.BuildingId == model.Id && m.PhotoType == "Album" && !model.BuildAlbumList.Contains(m.PhotoPath));
                    var htList    = dp.WJ_BuildingPhoto.Where(m => m.BuildingId == model.Id && m.PhotoType == "HouseType" && !model.BuildHouseTypeList.Contains(m.PhotoPath));
                    foreach (var m in showList)
                    {
                        File.Delete(rootPath + m.PhotoPath);
                    }
                    foreach (var m in albumList)
                    {
                        File.Delete(rootPath + m.PhotoPath);
                    }
                    foreach (var m in htList)
                    {
                        File.Delete(rootPath + m.PhotoPath);
                    }

                    dp.WJ_BuildingPhoto.RemoveRange(dp.WJ_BuildingPhoto.Where(m => m.BuildingId == model.Id));

                    model.BuildShowImage.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/BuildShow/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "Show",
                            PhotoPath  = newPath
                        });
                    });

                    model.BuildAlbumList.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/Album/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "Album",
                            PhotoPath  = newPath
                        });
                    });

                    model.BuildHouseTypeList.ForEach(m =>
                    {
                        string newPath = FileHelper.GetNewFile("/Upload/HouseType/", m);
                        FileHelper.CutFile(rootPath + m, rootPath + newPath);
                        dp.WJ_BuildingPhoto.Add(new WJ_BuildingPhoto
                        {
                            BuildingId = entity.Id,
                            PhotoType  = "HouseType",
                            PhotoPath  = newPath
                        });
                    });
                    dp.SaveChanges();

                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
Example #4
0
 public ActionResult EditBuilding(WJ_BuildingModel model)
 {
     model.UpdateUser = CurrentUser.Id;
     return(Json(new JsonMessage(service.EditBuilding(model, Server.MapPath("~")))));
 }