-
-
Save Pownraj-2818/d426ed82d02a7637eb83a2dd8f7ebb4e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task<ActionResult> Reservee(ReservationRequestModel model) | |
{ | |
// Check if requested space exists | |
if (!await _spaceRepository.IsSpaceExistById(model.ReservedSpaceId)) | |
{ | |
return NotFound("Space Not Found"); | |
} | |
// Check if requested space is available | |
if (!await _reservationRepo.IsSpaceAvailable(model)) | |
{ | |
return BadRequest("Space Not Available!"); | |
} | |
// reservation request model -> reservation | |
var reservation = _mapper.Map<Reservation>(model); | |
// Get requested space and reserved by user | |
var space = await _spaceRepository.GetSpaceById(reservation.ReservedSpaceId); | |
var user = _mapper.Map<ReservationUserResponseModel>( | |
await _userRepository.GetByUsername( | |
await _userRepository.GetUsernameById(model.ReservedByUserId) | |
) | |
); | |
List<ReservationUserResponseModel> inviteesList; | |
// Set invitees list based on the invited category (team only, sub-team only or individuals) | |
if (model.IsMainTeamOnly) | |
{ | |
inviteesList = (List<ReservationUserResponseModel>)await _userRepository.GetUsersByTeamId(model.ReservedTeamId); | |
} | |
else if (model.IsSubTeamOnly) | |
{ | |
inviteesList = (List<ReservationUserResponseModel>)await _userRepository.GetUsersBySubTeamId(model.ReservedSubTeamId); | |
} | |
else | |
{ | |
inviteesList = (List<ReservationUserResponseModel>)model.ReservedUsers; | |
} | |
reservation.StatusId = 2; // SCHEDULED -> 2 | |
reservation.InvitedCount = inviteesList.Count; | |
reservation.Date = DateTime.Today; | |
_reservationRepo.Add(reservation); | |
// Add invitees in table after adding reservation | |
if (await _reservationRepo.SaveAllAsync()) | |
{ | |
// await this.AddInvitees(model, reservation.ReservationId); | |
foreach (var invitedUser in inviteesList) | |
{ | |
var invitee = new Invitee(invitedUser.Username, | |
invitedUser.Email, | |
false, | |
reservation.ReservationTitle, | |
space.SpaceName, | |
space.SpaceCategory.SpaceCategoryName, | |
reservation.StartsAt, | |
reservation.EndsAt, | |
(reservation.EndsAt - reservation.StartsAt).Minutes, | |
$"https://space360.azurewebsites.net/api/reservation/accept-invite?reservartionId={reservation.ReservationId}&userId={invitedUser.UserId}", | |
$"https://space360.azurewebsites.net/api/reservation/decline-invite" | |
); | |
await _inviteeRepo.Add(invitee); | |
} | |
await _inviteeRepo.SaveAllAsync(); | |
return Ok(new { message = "Reserved, Mail Has Been Sent" }); | |
} | |
return BadRequest("Something Went Wrong"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment