public IActionResult GetById(int id) { var residence = _residencesService.Get(id); if (residence == null) { return(NotFound("Residence not found")); } var result = new ResidenceEditModel() { Id = residence.Id, Name = residence.Name, Address = residence.Address, Description = residence.Description, IsAvailable = residence.IsAvailable, ImageUrl = residence.ImageUrl, ThumbUrl = residence.ThumbnailUrl, CreatedAt = residence.CreatedAt.GetValueOrDefault(new DateTime(2019, 01, 01)), CreatedBy = residence.CreatedBy, UpdatedAt = residence.UpdatedAt, UpdatedBy = residence.UpdatedBy }; return(Ok(result)); }
public async Task <IActionResult> Edit(Guid?id, ResidenceEditModel model) { if (id == null) { return(NotFound()); } var residence = await _context.Residences.SingleOrDefaultAsync(m => m.Id == id); if (residence == null || !_userPermissions.IsOwnerOfResidence(residence)) { return(NotFound()); } if (ModelState.IsValid) { residence.TypeId = model.TypeId; residence.Address = model.Address; residence.Cost = model.Cost; residence.Area = model.Area; foreach (KeyValuePair <Guid, String> kvp in model.Features) { var feature = await _context.Features .SingleOrDefaultAsync(m => m.ResidenceId == id && m.FeatureTypeId == kvp.Key); feature.Value = kvp.Value; } await _context.SaveChangesAsync(); await _updateRequestsService.UpdateRequest(residence.Id, null); return(RedirectToAction(nameof(Index))); } ViewBag.TypeId = new SelectList(_context.ResidenceTypes, "Id", "Name"); return(View(model)); }
public async Task <IActionResult> Create(ResidenceEditModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); if (ModelState.IsValid && user != null) { var residence = new Residence { TypeId = model.TypeId, Address = model.Address, Area = model.Area, Cost = model.Cost, OwnerId = user.Id }; _context.Residences.Add(residence); foreach (KeyValuePair <Guid, String> kvp in model.Features) { var feature = new Feature { ResidenceId = residence.Id, FeatureTypeId = kvp.Key, Value = kvp.Value }; _context.Features.Add(feature); } await _context.SaveChangesAsync(); await _updateRequestsService.UpdateRequest(residence.Id, null); return(RedirectToAction(nameof(Index))); } ViewBag.TypeId = new SelectList(_context.ResidenceTypes, "Id", "Name"); return(View(model)); }
// GET: Residences/Edit/5 public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(NotFound()); } var residence = await _context.Residences .Include(r => r.Features) .ThenInclude(f => f.FeatureType) .SingleOrDefaultAsync(m => m.Id == id); if (residence == null || !_userPermissions.IsOwnerOfResidence(residence)) { return(NotFound()); } var model = new ResidenceEditModel { TypeId = residence.TypeId, Address = residence.Address, Area = residence.Area, Cost = residence.Cost, Features = new Dictionary <Guid, string>() }; ViewBag.Id = residence.Id; foreach (var feature in residence.Features) { model.Features[feature.FeatureType.Id] = feature.Value; } ViewBag.TypeId = new SelectList(_context.ResidenceTypes, "Id", "Name"); return(View(model)); }