示例#1
0
        public async Task <IActionResult> GetTraveler(EmailRequest emailRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var traveler = await _context.Travelers
                           .Include(t => t.User)
                           .Include(t => t.Trips)
                           .ThenInclude(t => t.Viatics)
                           .FirstOrDefaultAsync(t => t.User.UserName.ToLower() == emailRequest.Email.ToLower());

            var response = new TravelerResponse
            {
                Id        = traveler.Id,
                FirstName = traveler.User.FirstName,
                LastName  = traveler.User.LastName,
                Company   = traveler.User.Company,
                Email     = traveler.User.Email,
                Trips     = traveler.Trips.Select(tr => new TripResponse
                {
                    Id          = tr.Id,
                    City        = tr.City,
                    Date        = tr.Date,
                    EndDate     = tr.EndDate,
                    Budget      = tr.Budget,
                    ViaticCount = tr.Viatics.Count(),
                    Viatics     = tr.Viatics.Select(v => new ViaticResponse
                    {
                        Id             = v.Id,
                        ViaticType     = v.ViaticType,
                        Description    = v.Description,
                        InvoiceAmmount = v.InvoiceAmmount,
                        InvoiceDate    = v.InvoiceDate,
                        ImageUrl       = v.ImageFullPath,
                        Name           = v.ViaticName,
                    }).ToList()
                }).ToList()
            };

            return(Ok(response));
        }
        public async Task UpdateUserData()
        {
            var url   = App.Current.Resources["UrlAPI"].ToString();
            var token = JsonConvert.DeserializeObject <TokenResponse>(Settings.Token);
            var email = JsonConvert.DeserializeObject <TravelerResponse>(Settings.Traveler).Email;

            var response = await _apiService.GetTravelerByEmail(
                url,
                "/api",
                "/Travelers/GetTravelerByEmail",
                "bearer",
                token.Token,
                email);

            if (response.IsSuccess)
            {
                var traveler = response.Result;
                Settings.Traveler = JsonConvert.SerializeObject(traveler);
                _traveler         = traveler;
                GetUserData();
            }
        }