Beispiel #1
0
        private async Task <IActionResult> GetLesseeAsync(EmailRequest emailRequest)
        {
            var lessee = await _dataContext.Lessees
                         .Include(o => o.User)
                         .Include(o => o.Contracts)
                         .ThenInclude(c => c.Owner)
                         .ThenInclude(o => o.User)
                         .FirstOrDefaultAsync(o => o.User.UserName.ToLower().Equals(emailRequest.Email.ToLower()));

            var properties = await _dataContext.Properties
                             .Include(p => p.PropertyType)
                             .Include(p => p.PropertyImages)
                             .Where(p => p.IsAvailable)
                             .ToListAsync();

            var response = new OwnerResponse
            {
                Id          = lessee.Id,
                RoleId      = 2,
                FirstName   = lessee.User.FirstName,
                LastName    = lessee.User.LastName,
                Address     = lessee.User.Address,
                Document    = lessee.User.Document,
                Email       = lessee.User.Email,
                PhoneNumber = lessee.User.PhoneNumber,
                Properties  = properties?.Select(p => new PropertyResponse
                {
                    Address        = p.Address,
                    HasParkingLot  = p.HasParkingLot,
                    Id             = p.Id,
                    IsAvailable    = p.IsAvailable,
                    Neighborhood   = p.Neighborhood,
                    Price          = p.Price,
                    PropertyImages = p.PropertyImages?.Select(pi => new PropertyImageResponse
                    {
                        Id       = pi.Id,
                        ImageUrl = pi.ImageFullPath
                    }).ToList(),
                    PropertyType = p.PropertyType.Name,
                    Remarks      = p.Remarks,
                    Rooms        = p.Rooms,
                    SquareMeters = p.SquareMeters,
                    Stratum      = p.Stratum
                }).ToList(),
                Contracts = lessee.Contracts?.Select(c => new ContractResponse
                {
                    EndDate   = c.EndDate,
                    Id        = c.Id,
                    IsActive  = c.IsActive,
                    Price     = c.Price,
                    Remarks   = c.Remarks,
                    StartDate = c.StartDate
                }).ToList()
            };

            return(Ok(response));
        }
Beispiel #2
0
 public Task <OwnerResponse> GetAsync(Guid id)
 {
     return(base.ExecuteWithExceptionHandledOperation(async() =>
     {
         var owner = await _ownerRepository.GetAsync(id);
         OwnerResponse ownerResponse = new OwnerResponse(owner.Id, owner.Name, owner.DateOfBirth, owner.Address);
         return ownerResponse;
     }));
 }
Beispiel #3
0
        public async Task <IActionResult> GetOwner(EmailRequest emailRequest)
        {
            // validation des champs
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            // on trouve le propriétaire via son email
            var owner = await _dataContext.Owners
                        .Include(o => o.User)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.PetType)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.Histories)
                        .ThenInclude(h => h.ServiceType)
                        .FirstOrDefaultAsync(o => o.User.Email.ToLower() == emailRequest.Email.ToLower());

            // si le propriétaire n'est pas trouvé, on retourne une erreur
            if (owner == null)
            {
                return(NotFound());
            }

            var response = new OwnerResponse
            {
                Id          = owner.Id,
                FirstName   = owner.User.FirstName,
                LastName    = owner.User.LastName,
                Document    = owner.User.Document,
                Address     = owner.User.Address,
                PhoneNumber = owner.User.PhoneNumber,
                Email       = owner.User.Email,
                Pets        = owner.Pets.Select(p => new PetResponse
                {
                    ImageUrl  = p.ImageUrl,
                    Id        = p.Id,
                    Name      = p.Name,
                    Race      = p.Race,
                    Born      = p.Born,
                    Remarks   = p.Remarks,
                    PetType   = p.PetType.Name,
                    Histories = p.Histories.Select(h => new HistoryResponse
                    {
                        Date        = h.Date,
                        Description = h.Description,
                        Id          = h.Id,
                        Remarks     = h.Remarks,
                        ServiceType = h.ServiceType.Name
                    }).ToList()
                }).ToList()
            };

            // on retourne le propriétaire avec tous les éléments associés (animaux, type de service ....)
            return(Ok(response));
        }
Beispiel #4
0
        public async Task <IActionResult> GetOwner(EmailRequest emailRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var owner = await _dataContext.Owners
                        .Include(o => o.User)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.PetType)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.Histories)
                        .ThenInclude(h => h.ServiceType)
                        .FirstOrDefaultAsync(o => o.User.UserName.ToLower() == emailRequest.Email.ToLower()); //equals revienta si es nullo en cambio == no revienta....por eso usa ==

            if (owner == null)
            {
                return(NotFound()); // devuelve rta 400
            }

            var response = new OwnerResponse
            {
                Id          = owner.Id,
                FirstName   = owner.User.FirstName,
                LastName    = owner.User.LastName,
                Address     = owner.User.Address,
                Document    = owner.User.Document,
                Email       = owner.User.Email,
                PhoneNumber = owner.User.PhoneNumber,
                Pets        = owner.Pets.Select(p => new PetResponse
                {
                    Born      = p.Born,
                    Id        = p.Id,
                    ImageUrl  = p.ImageFullPath,
                    Name      = p.Name,
                    Race      = p.Race,
                    Remarks   = p.Remarks,
                    PetType   = p.PetType.Name,
                    Histories = p.Histories.Select(h => new HistoryResponse
                    {
                        Date        = h.Date,
                        Description = h.Description,
                        Id          = h.Id,
                        Remarks     = h.Remarks,
                        ServiceType = h.ServiceType.Name
                    }).ToList()
                }).ToList()
            };



            return(Ok(response));  //envolvemos en OK devueve una rta 200
        }
        public static OwnerResponse ToOwnerModel(this PersonDTO person)
        {
            OwnerResponse model = new OwnerResponse();

            model.Id          = person.Id;
            model.FirstName   = person.FirstName;
            model.LastName    = person.LastName;
            model.PhoneNumber = person.PhoneNumber;
            model.UserName    = person.UserName;
            return(model);
        }
        public async Task <IActionResult> GetOwner(EmailRequest emailRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var owner = await _dataContext.Owners
                        .Include(o => o.User)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.PetType)
                        .Include(o => o.Pets)
                        .ThenInclude(p => p.Histories)
                        .ThenInclude(h => h.ServiceType)
                        //.FirstOrDefaultAsync(o => o.User.UserName.ToLower().Equals(emailRequest.Email.ToLower()));
                        .FirstOrDefaultAsync(o => o.User.UserName.ToLower() == emailRequest.Email.ToLower());

            var response = new OwnerResponse
            {
                Id          = owner.Id,
                FirstName   = owner.User.FirstName,
                LastName    = owner.User.LastName,
                Address     = owner.User.Address,
                Document    = owner.User.Document,
                Email       = owner.User.Email,
                PhoneNumber = owner.User.PhoneNumber,
                Pets        = owner.Pets.Select(p => new PetResponse
                {
                    Born      = p.Born,
                    Id        = p.Id,
                    ImageUrl  = p.ImageFullPath,
                    Name      = p.Name,
                    Race      = p.Race,
                    Remarks   = p.Remarks,
                    PetType   = p.PetType.Name,
                    Histories = p.Histories.Select(h => new HistoryResponse
                    {
                        Date        = h.Date,
                        Description = h.Description,
                        Id          = h.Id,
                        Remarks     = h.Remarks,
                        ServiceType = h.ServiceType.Name
                    }).ToList()
                }).ToList()
            };

            //if (owner == null)
            //{
            //    return NotFound();
            //}
            return(Ok(response));
        }
Beispiel #7
0
        public async Task <Response <OwnerResponse> > GetOwnerByEmailAsync(
            string urlBase,
            string servicePrefix,
            string controller,
            string tokenType,
            string accessToken,
            string email)
        {
            try
            {
                EmailRequest request = new EmailRequest {
                    Email = email
                };
                string        requestString = JsonConvert.SerializeObject(request);
                StringContent content       = new StringContent(requestString, Encoding.UTF8, "application/json");
                HttpClient    client        = new HttpClient
                {
                    BaseAddress = new Uri(urlBase)
                };

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, accessToken);
                string url = $"{servicePrefix}{controller}";
                HttpResponseMessage response = await client.PostAsync(url, content);

                string result = await response.Content.ReadAsStringAsync();

                if (!response.IsSuccessStatusCode)
                {
                    return(new Response <OwnerResponse>
                    {
                        IsSuccess = false,
                        Message = result,
                    });
                }

                OwnerResponse owner = JsonConvert.DeserializeObject <OwnerResponse>(result);
                return(new Response <OwnerResponse>
                {
                    IsSuccess = true,
                    Result = owner
                });
            }
            catch (Exception ex)
            {
                return(new Response <OwnerResponse>
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }
 private async void SelectProperty()
 {
     Settings.Property = JsonConvert.SerializeObject(this);
     _owner            = JsonConvert.DeserializeObject <OwnerResponse>(Settings.Owner);
     _property         = JsonConvert.DeserializeObject <PropertyResponse>(Settings.Property);
     if (_owner.RoleId == 1 && _property.Contracts != null)
     {
         await _navigationService.NavigateAsync("PropertyTabbedPage");
     }
     else
     {
         await _navigationService.NavigateAsync("PropertyPage");
     }
 }
Beispiel #9
0
        private async void SelectAgenda()
        {
            OwnerResponse owner = JsonConvert.DeserializeObject <OwnerResponse>(Settings.Owner);

            if (!IsAvailable && Owner.Id != owner.Id)
            {
                return;
            }

            NavigationParameters parameters = new NavigationParameters
            {
                { "Agenda", this }
            };

            await _navigationService.NavigateAsync(nameof(AssignModifyAgendaPage), parameters);
        }
Beispiel #10
0
        public async Task <IActionResult> Post([FromBody] CreateOwnerRequest ownerRequest)
        {
            var owner = new Owner
            {
                Name        = ownerRequest.Name,
                DateOfBirth = ownerRequest.DateOfBirth,
                Address     = ownerRequest.Address
            };

            await _ownerService.CreateOwnerAsync(owner);

            var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent().ToString()}";
            var locationUrl = baseUrl + "/" + ApiRoutes.Owners.Get.Replace("{ownerId}", owner.Id.ToString());

            var response = new OwnerResponse {
                Id = owner.Id
            };

            return(Created(locationUrl, response));
        }
Beispiel #11
0
        public async Task <IActionResult> GetOwnerByEmailAsync(EmailRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var owner = await _dataContext.Owners
                        .Include(o => o.User)
                        .Include(o => o.Properties)
                        .ThenInclude(p => p.PropertyType)
                        .Include(o => o.Properties)
                        .ThenInclude(p => p.PropertyImages)
                        .Include(o => o.Contracts)
                        .ThenInclude(c => c.Lessee)
                        .ThenInclude(l => l.User)
                        .FirstOrDefaultAsync(o => o.User.Email.ToLower() == request.Email.ToLower());

            if (owner == null)
            {
                return(NotFound());
            }

            var response = new OwnerResponse
            {
                Id          = owner.Id,
                FirstName   = owner.User.FirstName,
                LastName    = owner.User.LastName,
                Address     = owner.User.Address,
                Document    = owner.User.Document,
                Email       = owner.User.Email,
                PhoneNumber = owner.User.PhoneNumber,
                Properties  = owner.Properties?.Select(p => new PropertyResponse
                {
                    Address   = p.Address,
                    Contracts = p.Contracts?.Select(c => new ContractResponse
                    {
                        EndDate   = c.EndDate,
                        Id        = c.Id,
                        IsActive  = c.IsActive,
                        Lessee    = ToLessesResponse(c.Lessee),
                        Price     = c.Price,
                        Remarks   = c.Remarks,
                        StartDate = c.StartDate
                    }).ToList(),
                    HasParkingLot  = p.HasParkingLot,
                    Id             = p.Id,
                    IsAvailable    = p.IsAvailable,
                    Neighborhood   = p.Neighborhood,
                    Price          = p.Price,
                    PropertyImages = p.PropertyImages?.Select(pi => new PropertyImageResponse
                    {
                        Id       = pi.Id,
                        ImageUrl = pi.ImageFullPath
                    }).ToList(),
                    PropertyType = p.PropertyType.Name,
                    Remarks      = p.Remarks,
                    Rooms        = p.Rooms,
                    SquareMeters = p.SquareMeters,
                    Stratum      = p.Stratum
                }).ToList()
            };

            return(Ok(response));
        }
        private async Task <IActionResult> GetOwnerAsync(EmailRequest emailRequest)
        {
            var owner = await _dataContext.Owners
                        .Include(o => o.User)
                        .Include(o => o.Properties)
                        .ThenInclude(p => p.PropertyType)
                        .Include(o => o.Properties)
                        .ThenInclude(p => p.PropertyImages)
                        .Include(o => o.Contracts)
                        .ThenInclude(c => c.Lessee)
                        .ThenInclude(l => l.User)
                        .OrderByDescending(p => p.Id)
                        .FirstOrDefaultAsync(o => o.User.UserName.ToLower().Equals(emailRequest.Email.ToLower()));

            var response = new OwnerResponse
            {
                RoleId      = 1,
                Id          = owner.Id,
                FirstName   = owner.User.FirstName,
                LastName    = owner.User.LastName,
                Address     = owner.User.Address,
                Document    = owner.User.Document,
                Email       = owner.User.Email,
                PhoneNumber = owner.User.PhoneNumber,
                Properties  = owner.Properties?.Select(p => new PropertyResponse
                {
                    Address   = p.Address,
                    Contracts = p.Contracts?.Select(c => new ContractResponse
                    {
                        EndDate   = c.EndDate,
                        Id        = c.Id,
                        IsActive  = c.IsActive,
                        Lessee    = ToLessesResponse(c.Lessee),
                        Price     = c.Price,
                        Remarks   = c.Remarks,
                        StartDate = c.StartDate
                    }).ToList(),
                    HasParkingLot  = p.HasParkingLot,
                    Id             = p.Id,
                    IsAvailable    = p.IsAvailable,
                    Neighborhood   = p.Neighborhood,
                    Price          = p.Price,
                    PropertyImages = p.PropertyImages?.Select(pi => new PropertyImageResponse
                    {
                        Id       = pi.Id,
                        ImageUrl = pi.ImageFullPath
                    }).ToList(),
                    PropertyType = p.PropertyType.Name,
                    Remarks      = p.Remarks,
                    Rooms        = p.Rooms,
                    Bathrooms    = p.Bathrooms,
                    Balconies    = p.Balconies,
                    SquareMeters = p.SquareMeters,
                    Stratum      = p.Stratum,
                    Latitude     = p.Latitude,
                    Longitude    = p.Longitude,
                    Typeprop     = p.Typeprop
                }).ToList(),
                Contracts = owner.Contracts?.Select(c => new ContractResponse
                {
                    EndDate   = c.EndDate,
                    Id        = c.Id,
                    IsActive  = c.IsActive,
                    Price     = c.Price,
                    Remarks   = c.Remarks,
                    StartDate = c.StartDate
                }).ToList()
            };

            return(Ok(response));
        }