Exemple #1
0
        public async Task <IActionResult> UpdateAdvert([FromRoute] Guid advertId, [FromForm] AdvertRequest request)
        {
            var advertToUpdate = await _advertRepo.getAdvertAsync(advertId);


            advertToUpdate.Description = request.Description;
            advertToUpdate.Location    = request.Location;
            advertToUpdate.Name        = request.Name;
            advertToUpdate.Prize       = request.Prize;
            advertToUpdate.CategoryId  = request.CategoryId;
            try
            {
                if (request.file == null)
                {
                    advertToUpdate.PhotoUrl = "";
                }
                else
                {
                    if (request.file.Length > 0)
                    {
                        if (!Directory.Exists(_enviroment.WebRootPath + "\\Upload\\"))
                        {
                            Directory.CreateDirectory(_enviroment.WebRootPath + "\\Upload\\");
                        }
                        using (FileStream fileStream = System.IO.File.Create(_enviroment.WebRootPath + "\\Upload\\" + request.file.FileName))
                        {
                            request.file.CopyTo(fileStream);
                            fileStream.Flush();
                            advertToUpdate.PhotoUrl = fileStream.Name;

                            using (var ms = new MemoryStream())
                            {
                                request.file.CopyTo(ms);
                                advertToUpdate.ImageByte = ms.ToArray();
                            }
                        }
                    }
                    else
                    {
                        advertToUpdate.PhotoUrl = "";
                    }
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message.ToString()));
            }

            var status = await _advertRepo.updateAdvertAsync(advertToUpdate);


            if (status)
            {
                return(Ok(_mapper.Map <AdvertResponse>(advertToUpdate)));
            }



            return(NotFound());
        }
Exemple #2
0
        public async Task <IActionResult> AddAdvert([FromForm] AdvertRequest request)
        {
            var advert = _mapper.Map <Advert>(request);

            advert.Id = Guid.NewGuid();



            try
            {
                if (request.file == null)
                {
                    advert.PhotoUrl = "";
                }
                else
                {
                    if (request.file.Length > 0)
                    {
                        if (!Directory.Exists(_enviroment.WebRootPath + "\\Upload\\"))
                        {
                            Directory.CreateDirectory(_enviroment.WebRootPath + "\\Upload\\");
                        }
                        using (FileStream fileStream = System.IO.File.Create(_enviroment.WebRootPath + "\\Upload\\" + request.file.FileName))
                        {
                            request.file.CopyTo(fileStream);
                            fileStream.Flush();
                            advert.PhotoUrl = fileStream.Name;

                            using (var ms = new MemoryStream())
                            {
                                request.file.CopyTo(ms);
                                advert.ImageByte = ms.ToArray();
                            }
                        }
                    }
                    else
                    {
                        advert.PhotoUrl = "";
                    }
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message.ToString()));
            }


            await _advertRepo.addAdvertAsync(advert);


            var baseUrl  = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var location = baseUrl + RoutesAPI.AdvertRoutes.GetAdvert.Replace("{advertId}", advert.Id.ToString());



            return(Created(location, _mapper.Map <AdvertResponse>(advert)));
        }