public async Task <IActionResult> Get(long id) { var warehouse = await _warehouseRepository.Query().Include(w => w.Address).FirstOrDefaultAsync(w => w.Id == id); if (warehouse == null) { return(NotFound()); } var address = warehouse.Address ?? new Address(); var model = new WarehouseVm { Id = warehouse.Id, Name = warehouse.Name, AddressId = address.Id, ContactName = address.ContactName, AddressLine1 = address.AddressLine1, AddressLine2 = address.AddressLine2, Phone = address.Phone, StateOrProvinceId = address.StateOrProvinceId, CountryId = address.CountryId, City = address.City, DistrictId = address.DistrictId, ZipCode = address.ZipCode }; return(Json(model)); }
public async Task <IActionResult> Post([FromBody] WarehouseVm model) { if (ModelState.IsValid) { var address = new Address { ContactName = model.ContactName, AddressLine1 = model.AddressLine1, AddressLine2 = model.AddressLine2, Phone = model.Phone, StateOrProvinceId = model.StateOrProvinceId, CountryId = model.CountryId, City = model.City, DistrictId = model.DistrictId, ZipCode = model.ZipCode }; var warehouse = new Warehouse { Name = model.Name, Address = address }; _warehouseRepository.Add(warehouse); await _warehouseRepository.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { id = warehouse.Id }, null)); } return(BadRequest(ModelState)); }
public async Task <IActionResult> Put(long id, [FromBody] WarehouseVm model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var warehouse = await _warehouseRepository.Query().Include(x => x.Address).FirstOrDefaultAsync(x => x.Id == id); if (warehouse == null) { return(NotFound()); } warehouse.Name = model.Name; if (warehouse.Address == null) { warehouse.Address = new Address(); _addressRepository.Add(warehouse.Address); } warehouse.Address.ContactName = model.ContactName; warehouse.Address.Phone = model.Phone; warehouse.Address.ZipCode = model.ZipCode; warehouse.Address.StateOrProvinceId = model.StateOrProvinceId; warehouse.Address.CountryId = model.CountryId; warehouse.Address.DistrictId = model.DistrictId; await _warehouseRepository.SaveChangesAsync(); return(Accepted()); }
public async Task <IActionResult> Get(long id) { var warehouse = await _warehouseRepository.Query().Include(w => w.Address).FirstOrDefaultAsync(w => w.Id == id); if (warehouse == null) { return(NotFound()); } var currentUser = await _workContext.GetCurrentUser(); if (!User.IsInRole("admin") && warehouse.VendorId != currentUser.VendorId) { return(BadRequest(new { error = "You don't have permission to manage this warehouse" })); } var address = warehouse.Address ?? new Address(); var model = new WarehouseVm { Id = warehouse.Id, Name = warehouse.Name, AddressId = address.Id, ContactName = address.ContactName, AddressLine1 = address.AddressLine1, AddressLine2 = address.AddressLine2, Phone = address.Phone, StateOrProvinceId = address.StateOrProvinceId, CountryId = address.CountryId, City = address.City, DistrictId = address.DistrictId, ZipCode = address.ZipCode }; return(Json(model)); }
public WarehouseVm GetWarehouse(Expression <Func <Warehouse, bool> > filterPredicate = null) { Warehouse warehouse = _uow.Repository <Warehouse>().Get(filterPredicate, false, null); WarehouseVm warehouseVm = Mapper.Map <WarehouseVm>(warehouse); return(warehouseVm); }
public void AddOrUpdateWarehouse(WarehouseVm warehouseVm) { var warehouse = Mapper.Map <Warehouse>(warehouseVm); _uow.Repository <Warehouse>().AddOrUpdate(x => x.WarehouseName == warehouse.WarehouseName, warehouse); _uow.Save(); }
public async Task <IActionResult> Put(long id, [FromBody] WarehouseVm model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var warehouse = await _warehouseRepository.Query().Include(x => x.Address).FirstOrDefaultAsync(x => x.Id == id); if (warehouse == null) { return(NotFound()); } var currentUser = await _workContext.GetCurrentUser(); if (!User.IsInRole("admin") && warehouse.VendorId != currentUser.VendorId) { return(BadRequest(new { error = "You don't have permission to manage this warehouse" })); } warehouse.Name = model.Name; if (warehouse.Address == null) { warehouse.Address = new Address(); _addressRepository.Add(warehouse.Address); } warehouse.Address.ContactName = model.ContactName; warehouse.Address.Phone = model.Phone; warehouse.Address.ZipCode = model.ZipCode; warehouse.Address.StateOrProvinceId = model.StateOrProvinceId; warehouse.Address.CountryId = model.CountryId; warehouse.Address.DistrictId = model.DistrictId; await _warehouseRepository.SaveChangesAsync(); return(Accepted()); }