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());
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        public void AddOrUpdateWarehouse(WarehouseVm warehouseVm)
        {
            var warehouse = Mapper.Map <Warehouse>(warehouseVm);

            _uow.Repository <Warehouse>().AddOrUpdate(x => x.WarehouseName == warehouse.WarehouseName, warehouse);
            _uow.Save();
        }
Ejemplo n.º 7
0
        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());
        }