Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        // 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));
        }