Skip to content

Instantly share code, notes, and snippets.

@Pownraj-2818
Created August 19, 2022 07:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pownraj-2818/d426ed82d02a7637eb83a2dd8f7ebb4e to your computer and use it in GitHub Desktop.
Save Pownraj-2818/d426ed82d02a7637eb83a2dd8f7ebb4e to your computer and use it in GitHub Desktop.
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