public async Task <ReplaceOneResult> UpdateCampingTrip(string id, CampingTripFull trip) { var tripNonFull = new CampingTrip(trip); return(await campingTripContext.CampingTrips .ReplaceOneAsync(n => n.ID.Equals(id), tripNonFull, new UpdateOptions { IsUpsert = true })); }
public async Task <IEnumerable <CampingTripFull> > GetAllUnconfirmedTrips() { var driverIsNull = Builders <CampingTrip> .Filter.Eq(trip => trip.DriverID, 0); var hasGuide = Builders <CampingTrip> .Filter.Eq(trip => trip.HasGuide, true); var guideIdNull = Builders <CampingTrip> .Filter.Eq(trip => trip.GuideID, 0); var hasPhotographer = Builders <CampingTrip> .Filter.Eq(trip => trip.HasPhotographer, true); var photographerIsNull = Builders <CampingTrip> .Filter.Eq(trip => trip.PhotographerID, 0); var organizedByUser = Builders <CampingTrip> .Filter.Eq(trip => trip.OrganizationType, TypeOfOrganization.orderByUser); var trips = await campingTripContext.CampingTrips.Find((driverIsNull | (hasGuide & guideIdNull) | (hasPhotographer & photographerIsNull))& organizedByUser)?.ToListAsync(); var campingTrips = new List <CampingTripFull>(); if (trips != null) { foreach (var trip in trips) { var tripFull = new CampingTripFull(trip); tripFull.Organizer = await GetUserAsync(trip.OrganzierID); campingTrips.Add(tripFull); } } return(campingTrips); }
private async Task <CampingTripFull> GetCampingTripMembersAndDPGForAdmin(CampingTrip trip, bool getMembers = true) { var fullTrip = new CampingTripFull(trip); if (getMembers && trip.OrganizationType != TypeOfOrganization.orderByUser) { fullTrip.MembersOfCampingTrip = await GetCampingTripMembersAsync(trip.MembersOfCampingTrip); } if (trip.HasPhotographer && trip.PhotographerID != 0) { fullTrip.Photographer = await GetTripPhotographerAsync(trip.PhotographerID); } if (trip.DriverID != 0) { fullTrip.Driver = await GetTripDriverAsync(trip.DriverID); } if (trip.HasGuide && trip.GuideID != 0) { fullTrip.Guide = await GetTripGuideAsync(trip.GuideID); } if (trip.OrganzierID != 0) { fullTrip.Organizer = await GetUserAsync(trip.OrganzierID); } return(fullTrip); }
public async Task AddCampingTripAsync(CampingTripFull item) { var trip = new CampingTrip(item); await campingTripContext.CampingTrips.InsertOneAsync(trip); item.ID = trip.ID; await SendingServiceRequestsAsync(item); }
public void Put(string campingTripId, [FromBody] CampingTripFull campingTrip) { var identity = (ClaimsIdentity)User.Identity; IEnumerable <Claim> claims = identity.Claims; var userIdClaim = claims.Where(claim => claim.Type == "user_id").First(); if (userIdClaim == null) { throw new Exception("user_id claim not found"); } if (!int.TryParse(userIdClaim.Value, out int userId)) { throw new Exception("Invalid value for user_id in users claims"); } campingTripRepository.UpdateUserRegistredCampingTripAsync(campingTripId, userId, campingTrip); }
public async Task SendingServiceRequestsAsync(CampingTripFull campingTrip) { var tokenClient = new TokenClient(discoveryResponse.TokenEndpoint, "campingTrip", "secret"); var tokenResponce = await tokenClient.RequestClientCredentialsAsync("userManagement"); var httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://localhost:5000/"); httpClient.SetBearerToken(tokenResponce.AccessToken); var guideAndPhotographer = 0; if (campingTrip.HasGuide) { var responseGuide = await httpClient.GetAsync("api/Guide"); if (responseGuide.IsSuccessStatusCode) { var content = responseGuide.Content; var guidesJson = await content.ReadAsStringAsync(); var guides = JsonConvert.DeserializeObject <List <Guide> >(guidesJson); if (guides != null) { foreach (var guide in guides) { await AddServiceRequestAsync(new ServiceRequest { CampingTripId = campingTrip.ID, ProviderId = guide.Id, RequestValidityPeriod = campingTrip.DepartureDate }); } } } guideAndPhotographer++; } if (campingTrip.HasPhotographer) { var responsePhotographer = await httpClient.GetAsync("api/Photographer"); if (responsePhotographer.IsSuccessStatusCode) { var content = responsePhotographer.Content; var photographersJson = await content.ReadAsStringAsync(); var photographers = JsonConvert.DeserializeObject <List <Photographer> >(photographersJson); if (photographers != null) { foreach (var photographer in photographers) { await AddServiceRequestAsync(new ServiceRequest { CampingTripId = campingTrip.ID, ProviderId = photographer.Id, RequestValidityPeriod = campingTrip.DepartureDate }); } } } guideAndPhotographer++; } var response = await httpClient.GetAsync($"api/Car/{campingTrip.CountOfMembers + guideAndPhotographer}"); if (response.IsSuccessStatusCode) { var content = response.Content; var carsJson = await content.ReadAsStringAsync(); var cars = JsonConvert.DeserializeObject <List <CarWithDriverId> >(carsJson); if (cars != null) { foreach (var car in cars) { await AddServiceRequestAsync(new ServiceRequest { CampingTripId = campingTrip.ID, ProviderId = car.DriverId, RequestValidityPeriod = campingTrip.DepartureDate }); } } } }
private async Task <CampingTripFull> GetCampingTripMembersAndDPGForUser(CampingTrip trip, bool getMembers = true) { var fullTrip = new CampingTripFull(trip); if (getMembers && trip.OrganizationType == TypeOfOrganization.orderByAdmin) { var members = await GetCampingTripMembersAsync(trip.MembersOfCampingTrip); if (members != null) { if (fullTrip.MembersOfCampingTrip == null) { fullTrip.MembersOfCampingTrip = new List <User>(); } foreach (var member in members) { fullTrip.MembersOfCampingTrip.Add(new User { Id = member.Id, FirstName = member.FirstName, LastName = member.LastName, Gender = member.Gender, Img = member.Img }); } } } if (trip.HasPhotographer && trip.PhotographerID != 0) { var potographer = await GetTripPhotographerAsync(trip.PhotographerID); fullTrip.Photographer = new Photographer { Id = potographer.Id, FirstName = potographer.FirstName, LastName = potographer.LastName, Gender = potographer.Gender, Camera = potographer.Camera, KnowledgeOfLanguages = potographer.KnowledgeOfLanguages, HasCameraStabilizator = potographer.HasCameraStabilizator, HasDron = potographer.HasDron, HasGopro = potographer.HasGopro, Profession = potographer.Profession, Img = potographer.Img, Rating = potographer.Rating, WorkExperience = potographer.WorkExperience, NumberOfAppraisers = potographer.NumberOfAppraisers }; } if (trip.DriverID != 0) { var driver = await GetTripDriverAsync(trip.DriverID); fullTrip.Driver = new Driver { Id = driver.Id, FirstName = driver.FirstName, LastName = driver.LastName, Gender = driver.Gender, Img = driver.Img, Car = driver.Car, KnowledgeOfLanguages = driver.KnowledgeOfLanguages, NumberOfAppraisers = driver.NumberOfAppraisers, Rating = driver.Rating, }; } if (trip.HasGuide && trip.GuideID != 0) { var guide = await GetTripGuideAsync(trip.GuideID); fullTrip.Guide = new Guide { Id = guide.Id, FirstName = guide.FirstName, LastName = guide.LastName, Gender = guide.Gender, Img = guide.Img, EducationGrade = guide.EducationGrade, KnowledgeOfLanguages = guide.KnowledgeOfLanguages, NumberOfAppraisers = guide.NumberOfAppraisers, Places = guide.Places, Profession = guide.Profession, Rating = guide.Rating, WorkExperience = guide.WorkExperience }; } return(fullTrip); }
public async Task UpdateUserRegistredCampingTripAsync(string campingTripId, int orginizerId, CampingTripFull campingTrip) { var tripNonFull = new CampingTrip(campingTrip); await campingTripContext.CampingTrips .ReplaceOneAsync(n => n.ID.Equals(campingTripId) && n.OrganzierID == orginizerId, tripNonFull, new UpdateOptions { IsUpsert = true }); }
public async void Put(string tripId, [FromBody] CampingTripFull campingTrip) { await campingTripRepository.UpdateCampingTrip(tripId, campingTrip); }
public void Put(string id, [FromBody] CampingTripFull campingTrip) { campingTripRepository.UpdateCampingTrip(id, campingTrip); }
public void Post([FromBody] CampingTripFull campingTrip) { campingTripRepository.AddCampingTripAsync(campingTrip); }
public async void Put(string campingTripId, [FromBody] CampingTripFull campingTrip) { await campingTripRepository.SendingServiceRequestsAsync(campingTrip); }