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"); }
public IActionResult Post([FromBody] PlaceSave resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } return(Created($"/api/v1/places/", _placeService.SaveAsync(resource))); }
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; }
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)); }
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(); }
public void Put(Guid id, [FromBody] PlaceSave value) { _placeService.Update(value, id); }
public async Task Put(PlaceSave placeSave, string id) { await _httpClient.PutJsonAsync(BaseUrl + Port + $"/api/v1.0/Places/{id}", placeSave); }
public async Task PostPlace(PlaceSave placeSave) { await _httpClient.PostJsonAsync(BaseUrl + Port + "/api/v1.0/Places", placeSave); }