Ejemplo n.º 1
0
 public virtual async Task <JsonResult> Update([FromServices] IWebHostEnvironment env, StoreAdminUpdateModel model)
 {
     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)));
 }
Ejemplo n.º 2
0
        public async Task <IResponse <Store> > UpdateAsync(StoreAdminUpdateModel 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;
            store.IsActive      = model.IsActive;
            store.ShopiaUrl     = model.ShopiaUrl;
            store.FolowerCount  = model.FolowerCount;
            store.FolowingCount = model.FolowingCount;
            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
            });
        }