Example #1
0
        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)));
        }
Example #2
0
        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)));
        }
Example #3
0
        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();
        }