Esempio n. 1
0
        public async Task <string> SavePlaceAsync(PlaceSave resource)
        {
            var used = 0;
            var user = await _unitOfWork.Users.FindByIdAsync(resource.OwnerId);

            if (user == null)
            {
                return("Owner not found");
            }
            var categories  = _unitOfWork.Category.Find(e => e.Name.ToLower() == resource.Category).ToList();
            var newCategory = categories.Count == 0 ? Category.Create(resource.Category) : categories.First();
            var location    = Place.Create(user, resource.Name, resource.Description, newCategory,
                                           Convert.ToSingle(resource.TicketPrice));
            var guids = GeneratePaths(resource.PhotosContentStreams.Count);

            foreach (var stream in resource.PhotosContentStreams.Select(entry => new MemoryStream(entry.Value)))
            {
                FileService.SaveStreamAsFile(Directory.GetCurrentDirectory(), stream, guids[used] + ".png");
                location.Photos.Add(Photo.Create(Directory.GetCurrentDirectory() + guids[used] + ".png"));
                used++;
            }

            _unitOfWork.Locations.AddAsync(location);
            return("Success");
        }
Esempio n. 2
0
 public IActionResult Post([FromBody] PlaceSave resource)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState.GetErrorMessages()));
     }
     return(Created($"/api/v1/places/", _placeService.SaveAsync(resource)));
 }
Esempio n. 3
0
 public void Update(PlaceSave value)
 {
     LocationName = value.Name;
     Description  = value.Description;
     TicketPrice  = Convert.ToSingle(value.TicketPrice);
     Address      = value.Address;
     Latitude     = value.Lat;
     Longitude    = value.Ltn;
 }
Esempio n. 4
0
        public Response <PlaceSave> SaveAsync(PlaceSave resource)
        {
            var user     = _unitOfWork.Users.Find(e => e.UserId == resource.OwnerId).ToList();
            var category = _unitOfWork.Category.Find(e => e.Name == resource.Category).ToList();

            if (user.Count != 1)
            {
                return(new Response <PlaceSave>("User not found"));
            }
            Category newCategory;

            if (category.Count != 1)
            {
                newCategory = Category.Create(resource.Category);
                _unitOfWork.Category.Add(newCategory);
            }
            else
            {
                newCategory = category.First();
            }

            var place = Place.Create(user.First(), resource.Name, resource.Description, newCategory,
                                     Convert.ToSingle(resource.TicketPrice), resource.Address, resource.Lat, resource.Ltn);

            var used  = 0;
            var guids = GeneratePaths(resource.PhotosContentStreams.Count);

            foreach (var stream in resource.PhotosContentStreams.Select(entry => new MemoryStream(entry.Value)))
            {
                FileService.SaveStreamAsFile(Path.Combine(Directory.GetCurrentDirectory(), PathFolder), stream,
                                             guids[used] + ".png");
//                place.Photos.Add(Photo.Create(Directory.GetCurrentDirectory() + guids[used] + ".png"));
                var photo = Photo.Create(Path.Combine(PathFolder, guids[used] + ".png"));
                place.Photos.Add(photo);
                _unitOfWork.Photo.Add(photo);
                used++;
            }

            _unitOfWork.Locations.Add(place);

            _unitOfWork.Complete();
            return(new Response <PlaceSave>(resource));
        }
Esempio n. 5
0
        public void Update(PlaceSave value, Guid id)
        {
            var place = _unitOfWork.Locations.GetById(id);

            place.Update(value);
            var used  = 0;
            var guids = GeneratePaths(value.PhotosContentStreams.Count);

            foreach (var stream in value.PhotosContentStreams.Select(entry => new MemoryStream(entry.Value)))
            {
                FileService.SaveStreamAsFile(Path.Combine(Directory.GetCurrentDirectory(), PathFolder), stream,
                                             guids[used] + ".png");
                var photo = Photo.Create(Path.Combine(PathFolder, guids[used] + ".png"));
                place.Photos.Add(photo);
                _unitOfWork.Photo.Add(photo);
                used++;
            }

            _unitOfWork.Locations.Update(place);
            _unitOfWork.Complete();
        }
Esempio n. 6
0
 public void Put(Guid id, [FromBody] PlaceSave value)
 {
     _placeService.Update(value, id);
 }
Esempio n. 7
0
 public async Task Put(PlaceSave placeSave, string id)
 {
     await _httpClient.PutJsonAsync(BaseUrl + Port + $"/api/v1.0/Places/{id}", placeSave);
 }
Esempio n. 8
0
 public async Task PostPlace(PlaceSave placeSave)
 {
     await _httpClient.PostJsonAsync(BaseUrl + Port + "/api/v1.0/Places", placeSave);
 }