public async Task <IActionResult> PostViatic([FromBody] ViaticRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var traveler = await _context.Travelers.FindAsync(request.TravelerId); if (traveler == null) { return(BadRequest("Not valid Traveler.")); } var trip = await _context.Trips.FindAsync(request.TripId); if (trip == null) { return(BadRequest("Not valid Trip.")); } var imageUrl = string.Empty; if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = $"{guid}.jpg"; var folder = "wwwroot\\images\\Pets"; var fullPath = $"~/images/Pets/{file}"; var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { imageUrl = fullPath; } } var viatic = new Viatic { ViaticName = request.Name, Description = request.Description, InvoiceDate = request.InvoiceDate.ToUniversalTime(), ImageUrl = imageUrl, InvoiceAmmount = request.InvoiceAmmount, ViaticType = request.ViaticType, Traveler = traveler, Trip = trip }; _context.Viatics.Add(viatic); await _context.SaveChangesAsync(); return(Ok(_converterHelper.ToViaticResponse(viatic))); }
public async Task <IActionResult> PutViatic([FromRoute] int id, [FromBody] ViaticRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != request.Id) { return(BadRequest()); } var oldViatic = await _context.Viatics.FindAsync(request.Id); if (oldViatic == null) { return(BadRequest("Viatic doesn't exists.")); } var imageUrl = oldViatic.ImageUrl; if (request.ImageArray != null && request.ImageArray.Length > 0) { var stream = new MemoryStream(request.ImageArray); var guid = Guid.NewGuid().ToString(); var file = $"{guid}.jpg"; var folder = "wwwroot\\images\\Pets"; var fullPath = $"~/images/Pets/{file}"; var response = FilesHelper.UploadPhoto(stream, folder, file); if (response) { imageUrl = fullPath; } } oldViatic.ViaticName = request.Name; oldViatic.Description = request.Description; oldViatic.InvoiceDate = request.InvoiceDate.ToUniversalTime(); oldViatic.ImageUrl = imageUrl; oldViatic.InvoiceAmmount = request.InvoiceAmmount; _context.Viatics.Update(oldViatic); await _context.SaveChangesAsync(); return(Ok(_converterHelper.ToViaticResponse(oldViatic))); }
private async void SaveAsync() { EntryEmpty = "Transparent"; var isValid = ValidateData(); if (!isValid) { return; } IsEnable = false; IsRunning = true; var url = App.Current.Resources["UrlAPI"].ToString(); var token = JsonConvert.DeserializeObject <TokenResponse>(Settings.Token); var traveler = JsonConvert.DeserializeObject <TravelerResponse>(Settings.Traveler); var viaticRequest = new ViaticRequest { Id = Viatic.Id, Name = Viatic.Name, Description = Viatic.Description, InvoiceAmmount = Viatic.InvoiceAmmount, InvoiceDate = Viatic.InvoiceDate, ViaticType = SelectedViaticType.Name, TripId = TripIdNumber, TravelerId = traveler.Id, }; Response <object> response; if (IsEdit) { response = await _apiService.PutAsync( url, "/api", "/Viatics", viaticRequest.Id, viaticRequest, "bearer", token.Token); } else { response = await _apiService.PostAsync( url, "/api", "/Viatics", viaticRequest, "bearer", token.Token); } IsEnable = true; IsRunning = false; if (!response.IsSuccess) { await Application.Current.MainPage.DisplayAlert(Languages.Error, response.Message, Languages.Accept); return; } await App.Current.MainPage.DisplayAlert( Languages.TripEditCreation, string.Format(Languages.CreateEditTripConfirm, IsEdit ? Languages.Edited : Languages.Created), Languages.Accept); await Shell.Current.Navigation.PopAsync(); await TripViewModel.GetInstance().UpdateUserData(); }