/// <summary> /// Sets the invitee view model for property owners /// Property owner's tennants and requisitions not yet declined should be /// sent back as invitees /// </summary> /// <param name="unitOfWork"></param> /// <param name="userId"></param> /// <param name="invitees"></param> private void setInviteeVMForPO(UnitOfWork unitOfWork, Guid userId, List <InviteeViewModel> invitees) { var owner = unitOfWork.Owner.GetOwnerByUserID(userId); var tennants = unitOfWork.Tennant.GetTennantsByOwnerId(owner.ID); var requisitions = unitOfWork.PropertyRequisition.GetRequestsByOwnerId(owner.ID); //populate invitee model with each ienumerable items foreach (var tennant in tennants) { InviteeViewModel inviteeViewModel = new InviteeViewModel() { UserID = tennant.User.ID, FullName = tennant.User.FirstName + " " + tennant.User.LastName, ImageUrl = tennant.PhotoUrl, inviteeType = EFPConstants.UserType.Tennant }; invitees.Add(inviteeViewModel); } foreach (var req in requisitions) { InviteeViewModel inviteeViewModel = new InviteeViewModel() { UserID = req.User.ID, FullName = req.User.FirstName + " " + req.User.LastName, ImageUrl = "", inviteeType = "R" }; invitees.Add(inviteeViewModel); } }
/// <summary> /// Sets the invitee view model for users who currently requested propeties /// </summary> /// <param name="unitOfWork"></param> /// <param name="userId"></param> /// <param name="invitees"></param> private void setInviteeVMForPropertyRequestors(UnitOfWork unitOfWork, Guid userId, List <InviteeViewModel> invitees) { var requisitions = unitOfWork.PropertyRequisition.GetRequestsMadeByUserId(userId); foreach (var req in requisitions) { InviteeViewModel inviteeViewModel = new InviteeViewModel() { UserID = req.Property.Owner.UserID, FullName = req.Property.Owner.User.FirstName + " " + req.Property.Owner.User.LastName, ImageUrl = "", inviteeType = "R" }; invitees.Add(inviteeViewModel); } }
/// <summary> /// Sets the invitee view model for tennants /// property owner and other tennants belonging to the same property /// should be sent back as invitees /// </summary> /// <param name="unitOfWork"></param> /// <param name="userId"></param> /// <param name="invitees"></param> private void setInviteeVMForTennant(UnitOfWork unitOfWork, Guid userId, List <InviteeViewModel> invitees) { var tennant = unitOfWork.Tennant.GetTennantByUserId(userId); var poUser = tennant.Property.Owner.User; //getting all tennants that are in the same property var currentPropertyId = tennant.PropertyID; var tennants = unitOfWork.Tennant.GetTennantsByPropertyId(currentPropertyId); InviteeViewModel inviteeViewModel = new InviteeViewModel() { UserID = poUser.ID, FullName = poUser.FirstName + " " + poUser.LastName, ImageUrl = "", inviteeType = "O" }; invitees.Add(inviteeViewModel); foreach (var t in tennants) { //exclude current signed in tennant from being populated if (!t.ID.Equals(tennant.ID)) { inviteeViewModel = new InviteeViewModel() { UserID = tennant.User.ID, FullName = tennant.User.FirstName + " " + tennant.User.LastName, ImageUrl = tennant.PhotoUrl, inviteeType = EFPConstants.UserType.Tennant }; invitees.Add(inviteeViewModel); } } }