Esempio n. 1
0
        public async Task <Store> UpdateStore(UpdateStoreDto userUpdateStore)
        {
            var user = await _context.SystemUser
                       .Include(x => x.Stores)
                       .ThenInclude(s => s.StoreStockDetail)
                       .Include(x => x.Stores)
                       .ThenInclude(s => s.Category)
                       .Include(x => x.Stores)
                       .ThenInclude(s => s.CountryCode)
                       .FirstOrDefaultAsync(x => x.UserName == userUpdateStore.UserName);

            if (user == null)
            {
                return(null);
            }

            var store = user.Stores.FirstOrDefault(soe => soe.Id == userUpdateStore.StoreId);

            if (store == null)
            {
                throw new NotFoundException("Store Not Found Id=" + userUpdateStore.StoreId);
            }

            var category = await _context.Category.FirstOrDefaultAsync(x => x.Id == userUpdateStore.Category);

            var countryCode = await _context.CountryCode.FirstOrDefaultAsync(x => x.Id == userUpdateStore.CountryCode);

            store.CountryCode = countryCode ?? throw new NotFoundException("countryCode Not Found Id=" + userUpdateStore.CountryCode);
            store.Category    = category ?? throw new NotFoundException("Category Not Found Id=" + userUpdateStore.Category);
            store.Email       = userUpdateStore.Email;
            store.Name        = userUpdateStore.Name;

            store.StoreStockDetail.BackStore      = userUpdateStore.BackStore;
            store.StoreStockDetail.FrontStore     = userUpdateStore.FrontStore;
            store.StoreStockDetail.ShoppingWindow = userUpdateStore.ShoppingWindow;

            _context.Update(store);
            await _context.SaveChangesAsync();

            return(store);
        }
Esempio n. 2
0
        /// <summary>
        /// Updates the store.
        /// </summary>
        /// <param name="storeId"></param>
        /// <param name="updateModel"></param>
        /// <returns></returns>
        public async Task <StoreDto> UpdateStore(Guid storeId, UpdateStoreDto updateModel)
        {
            if (!validationContext.IsValid)
            {
                return(null);
            }

            var existingStore = await unitOfWork.GetRepository <Store>()
                                .GetByIdAsync(storeId);

            if (existingStore == null)
            {
                return(null);
            }

            mapper.Map <UpdateStoreDto, Store>(updateModel, existingStore);

            unitOfWork.GetRepository <Store>().Update(existingStore);

            await unitOfWork.SaveAsync();

            return(mapper.Map <Store, StoreDto>(existingStore));
        }
Esempio n. 3
0
        public async Task <ActionResult> UpdateStore([FromBody] UpdateStoreDto userUpdateStore)
        {
            await Validate(userUpdateStore.UserName);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Keys.SelectMany(i => ModelState[i].Errors).Select(m => m.ErrorMessage).ToArray()));
            }

            var store = await _storeRepository.UpdateStore(userUpdateStore);

            var getStoreDto = new GetStoreDto();

            getStoreDto.BackStore      = store.StoreStockDetail.BackStore;
            getStoreDto.Category       = store.Category.Id;
            getStoreDto.CountryCode    = store.CountryCode.Id;
            getStoreDto.Email          = store.Email;
            getStoreDto.FrontStore     = store.StoreStockDetail.FrontStore;
            getStoreDto.Id             = store.Id;
            getStoreDto.Name           = store.Name;
            getStoreDto.ShoppingWindow = store.StoreStockDetail.ShoppingWindow;

            return(Ok(getStoreDto));
        }