Пример #1
0
        public IHttpActionResult Put(int id, [FromBody] StoreUpdateModel store)
        {
            IHttpActionResult badRequest;

            if (!this.IsModelValid(ModelState, store, out badRequest))
            {
                return(badRequest);
            }

            try
            {
                var storeEntity = Database <Store> .Read(id);

                if (storeEntity == null)
                {
                    return(NotFound());
                }

                Mapper.Map(store, storeEntity);
                Database <Store> .Update(storeEntity);

                return(Ok());
            }
            catch (DataNotFoundException) {
                return(NotFound());
            }
        }
Пример #2
0
        public IHttpActionResult Put(Guid id, [FromBody] StoreUpdateModel storeModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var updatedStore = Mapper.Map <Store>(storeModel);
                updatedStore.Id = id;
                _storeRepository.Update(updatedStore);
                return(Ok());
            }
            catch (InvalidOperationException)
            {
                return(NotFound());
            }
        }
Пример #3
0
        public virtual async Task <JsonResult> Update([FromServices] IAddressService addrSrv, int id)
        {
            var chk = await _storeSrv.CheckOwner(id, User.GetUserId());

            if (!chk)
            {
                return(Json(new { IsSuccessful = false, Message = Strings.AccessDenied }));
            }
            var store = await _storeSrv.FindAsync(id);

            if (!store.IsSuccessful)
            {
                return(Json(new { IsSuccessful = false, Message = Strings.RecordNotFound }));
            }
            var model = new StoreUpdateModel().CopyFrom(store.Result);

            if (store.Result.AddressId != null)
            {
                var addr = await addrSrv.FindAsync(store.Result.AddressId ?? 0);

                if (addr.IsSuccessful)
                {
                    model.Address.Latitude       = addr.Result.Latitude;
                    model.Address.Longitude      = addr.Result.Longitude;
                    model.Address.AddressDetails = addr.Result.AddressDetails;
                }
            }

            model.ShopiaUrl = $"{_configuration["CustomSettings:ReactBaseUrl"]}/store/{id}";
            return(Json(new Modal
            {
                Title = $"{Strings.Update} {DomainString.Store}",
                AutoSubmitBtnText = Strings.Edit,
                Body = ControllerExtension.RenderViewToString(this, "Partials/_Entity", store.Result),
                AutoSubmit = false
            }));
        }
Пример #4
0
        public virtual async Task <JsonResult> Update([FromServices] IWebHostEnvironment env, StoreUpdateModel model)
        {
            var chk = await _storeSrv.CheckOwner(model.StoreId, User.GetUserId());

            if (!chk)
            {
                return(Json(new { IsSuccessful = false, Message = Strings.AccessDenied }));
            }
            if (!ModelState.IsValid)
            {
                return(Json(new { IsSuccessful = false, Message = ModelState.GetModelError() }));
            }
            model.Root       = env.WebRootPath;
            model.BaseDomain = _configuration["CustomSettings:BaseUrl"];
            return(Json(await _storeSrv.UpdateAsync(model)));
        }
Пример #5
0
        public async Task <IResponse <Store> > UpdateAsync(StoreUpdateModel model)
        {
            var store = await _appUow.StoreRepo.FindAsync(model.StoreId);

            if (store == null)
            {
                return new Response <Store> {
                           Message = ServiceMessage.RecordNotExist
                }
            }
            ;
            if (store.AddressId != null)
            {
                var addr = await _appUow.AddressRepo.FindAsync(store.AddressId);

                if (addr == null)
                {
                    await _appUow.AddressRepo.AddAsync(new Address
                    {
                        UserId         = store.UserId,
                        Latitude       = model.Address.Latitude,
                        Longitude      = model.Address.Longitude,
                        AddressDetails = model.Address.AddressDetails
                    });

                    var addAddress = await _appUow.ElkSaveChangesAsync();

                    if (addAddress.IsSuccessful)
                    {
                        store.AddressId = addr.AddressId;
                    }
                    else
                    {
                        return new Response <Store> {
                                   Message = addAddress.Message
                        }
                    };
                }
                else
                {
                    addr.Latitude       = model.Address.Latitude;
                    addr.Longitude      = model.Address.Longitude;
                    addr.AddressDetails = model.Address.AddressDetails;
                    _appUow.AddressRepo.Update(addr);
                }
            }
            store.FullName = model.FullName;
            store.Username = model.Username;
            if (model.Logo != null)
            {
                var dir = $"/Files/{model.StoreId}";
                if (!FileOperation.CreateDirectory(model.Root + dir))
                {
                    return new Response <Store> {
                               Message = ServiceMessage.SaveFileFailed
                    }
                }
                ;
                var relativePath = $"{dir}/logo_{Guid.NewGuid().ToString().Replace("-", "_")}{Path.GetExtension(model.Logo.FileName)}";
                using (var stream = File.Create($"{model.Root}{relativePath.Replace("/", "\\")}"))
                    await model.Logo.CopyToAsync(stream);

                store.ProfilePictureUrl = $"{model.BaseDomain}{relativePath}";
            }
            _storeRepo.Update(store);
            var saveResult = await _appUow.ElkSaveChangesAsync();

            return(new Response <Store> {
                Result = store, IsSuccessful = saveResult.IsSuccessful, Message = saveResult.Message
            });
        }