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")); }
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); }
public IActionResult Delete(CreatePropertyAdvModel model) { new PropertyAdvsHandler().DeletePropertyAdv(model.ToEntity(), model.Id); return(RedirectToAction("Manage")); }