Beispiel #1
0
        public IActionResult Update(CreatePropertyAdvModel model)
        {
            PropertyHubContext db     = new PropertyHubContext();
            PropertyAdv        entity = model.ToEntity();
            string             temp   = Request.Form["features"];

            if (!string.IsNullOrWhiteSpace(temp))
            {
                foreach (var fId in temp.Split(','))
                {
                    entity.Features.Add(new PropertyAdvsFeatures {
                        Advertisement = entity, Feature = new PropertyFeature {
                            Id = Convert.ToInt32(fId)
                        }
                    });
                }
            }

            int counter = 0;

            foreach (IFormFile file in Request.Form.Files)
            {
                if (file.Length > 0)
                {
                    string ext      = file.FileName.Substring(file.FileName.LastIndexOf("."));
                    string fileName = $"{DateTime.Now.Ticks}_{++counter}{ext}";
                    string url      = $"~/images/p_advs/{fileName}";
                    string path     = hostingEnv.WebRootPath + $@"\images\p_advs\{fileName}";
                    using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read))
                    {
                        file.CopyTo(fs);
                    }

                    var find = db.PropertyImage.Where(x => x.Priority.Equals(counter)).FirstOrDefault();
                    if (find != null && !string.IsNullOrWhiteSpace(find.ImageUrl))
                    {
                        find.ImageUrl = url; db.SaveChanges();
                    }
                    else
                    {
                        var findII = db.PropertyImage.OrderByDescending(x => x.Priority).FirstOrDefault();
                        int count  = ++findII.Priority;
                        entity.Images.Add(new PropertyImage {
                            ImageUrl = url, Priority = counter, DateCreated = DateTime.Now
                        });
                    }
                }
            }
            new PropertyAdvsHandler().UpdatePropertyAdv(entity, model.Id);
            return(RedirectToAction("manage"));
        }
Beispiel #2
0
        public IActionResult Create(CreatePropertyAdvModel model)
        {
            PropertyAdv entity = model.ToEntity();
            string      temp   = Request.Form["features"];

            if (!string.IsNullOrWhiteSpace(temp))
            {
                foreach (var fId in temp.Split(','))
                {
                    entity.Features.Add(new PropertyAdvsFeatures {
                        Advertisement = entity, Feature = new PropertyFeature {
                            Id = Convert.ToInt32(fId)
                        }
                    });
                }
            }

            int counter = 0;

            foreach (IFormFile file in Request.Form.Files)
            {
                if (file.Length > 0)
                {
                    string ext      = file.FileName.Substring(file.FileName.LastIndexOf("."));
                    string fileName = $"{DateTime.Now.Ticks}_{++counter}{ext}";
                    string url      = $"~/images/p_advs/{fileName}";
                    string path     = hostingEnv.WebRootPath + $@"\images\p_advs\{fileName}";
                    using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read))
                    {
                        file.CopyTo(fs);
                    }
                    entity.Images.Add(new PropertyImage {
                        Priority = counter, ImageUrl = url, DateCreated = DateTime.Now
                    });
                }
            }
            new PropertyAdvsHandler().AddPropertyAdv(entity);
            return(RedirectToAction("manage"));
        }
        public static CreatePropertyAdvModel ToModel(this PropertyAdv Entity)
        {
            CreatePropertyAdvModel Model = new CreatePropertyAdvModel();

            Model.Id             = Entity.Id;
            Model.Name           = Entity.Name;
            Model.Price          = Entity.Price;
            Model.CityId         = Entity.Neighborhood.City.Id;
            Model.AreaUnitId     = Entity.Area.Unit.Id;
            Model.AdvType        = Entity.AdvType.Id;
            Model.PropertyTypeId = Entity.PropertyType.Id;
            Model.BlockId        = Entity.Neighborhood.Id;
            Model.SchemeId       = Entity.Neighborhood.Parent.Id;
            Model.StartDate      = Entity.StartOn;
            Model.Area           = Entity.Area.Value;
            Model.Beds           = Entity.Beds;
            Model.Baths          = Entity.Baths;
            //entity.
            //Model.BlockId = new Neighborhood { Id = Entity.Neighborhood.Id };
            //Model.AdvStatus = new AdvStatus { Id = 1 }; // by default adv is in pending status
            //Model.AdvType = new AdvType { Id = Entity.AdvType };
            //Model.Area = new PropertyArea { Value = Entity.Area, Unit = new AreaUnit { Id = Entity.AreaUnitId } };
            //entity.Images

            if (Entity.Images?.Count > 0)
            {
                Model.MainImageUrl = Model.AlternateImageUrl = Entity.Images.ToList()[0].ImageUrl;
                if (Entity.Images.Count > 1)
                {
                    Model.AlternateImageUrl = Entity.Images.ToList()[1].ImageUrl;
                }
            }
            else
            {
                Model.MainImageUrl = Model.AlternateImageUrl = "~/images/p_advs/none.png";
            }
            return(Model);
        }
        public static PropertyAdv ToEntity(this CreatePropertyAdvModel model)
        {
            PropertyAdv entity = new PropertyAdv();

            entity.Id    = model.Id;
            entity.Name  = model.Name;
            entity.Price = model.Price;

            entity.Beds         = model.Beds;
            entity.Baths        = model.Baths;
            entity.Neighborhood = new Neighborhood {
                Id = model.BlockId
            };
            entity.AdvStatus = new AdvStatus {
                Id = 1
            };                                           // by default adv is in pending status
            entity.AdvType = new AdvType {
                Id = model.AdvType
            };
            entity.Area = new PropertyArea {
                Value = model.Area, Unit = new AreaUnit {
                    Id = model.AreaUnitId
                }
            };
            //entity.Images
            entity.IsActive = true; // by default adv is active
            entity.PostedBy = new User {
                Id = 3
            };                                     // currently login user will be assigned here
            entity.PostedOn     = DateTime.Today;
            entity.PropertyType = new PropertyType {
                Id = model.AdvType
            };
            entity.StartOn = model.StartDate;

            return(entity);
        }
Beispiel #5
0
 public IActionResult Delete(CreatePropertyAdvModel model)
 {
     new PropertyAdvsHandler().DeletePropertyAdv(model.ToEntity(), model.Id);
     return(RedirectToAction("Manage"));
 }