| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | using System.Transactions;
using Microsoft.AspNetCore.Mvc;
using UnivateProperties_API.Containers.Property;
using UnivateProperties_API.Model.Properties;
using UnivateProperties_API.Repository.Properties;
namespace UnivateProperties_API.Controllers.Properties
{
    [Route("api/[controller]")]
    [ApiController]
    public class PropertyImageController : ControllerBase
    {
        private readonly IPropertyImageRepository _Repo;
        public PropertyImageController(IPropertyImageRepository repo)
        {
            _Repo = repo;
        }
        [HttpGet]
        public IActionResult Get()
        {
            return new OkObjectResult(_Repo.GetAll());
        }
        [HttpGet("{id}")]
        public IActionResult Get(int id)
        {
            return new OkObjectResult(_Repo.GetDetailed(x => x.Id == id));
        }
        [HttpGet("GetImagesByProperty/{PropertyId}")]
        public IActionResult GetImagesByProperty(int PropertyId) //Property string is more of a placeholder here.
        {
            return new OkObjectResult(_Repo.GetImages(PropertyId));
        }
        [HttpGet("GetProperySavedImages/{PropertyId}")]
        public IActionResult GetProperySavedImages(int PropertyId) //Property string is more of a placeholder here.
        {
            return new OkObjectResult(_Repo.Get(x => x.PropertyId == PropertyId));
        }
        [HttpPost]
        public IActionResult Post([FromBody] NewPropertyImages propertyImage)
        {
            using (var scope = new TransactionScope())
            {
                _Repo.Update(propertyImage);
                scope.Complete();
                return new OkResult();
            }
        }
        [HttpPut]
        public IActionResult Put([FromBody] PropertyImage propertyImage)
        {
            if (propertyImage != null)
            {
                using (var scope = new TransactionScope())
                {
                    _Repo.Update(propertyImage);
                    scope.Complete();
                    return new OkResult();
                }
            }
            return new NoContentResult();
        }
        [HttpDelete("{id}")]
        public IActionResult Delete(int id)
        {
            _Repo.RemoveAtId(id);
            return new OkResult();
        }
    }
}
 |