@@ -61,7 +61,10 @@ public ActionResult Index()
61
61
. Include ( c => c . CreatedBy )
62
62
. GroupBy ( c => c . OrganisationId ) )
63
63
{
64
- InvitationViewModel viewModel = new InvitationViewModel ( ) ;
64
+ InvitationViewModel viewModel = new InvitationViewModel
65
+ {
66
+ OrganisationInviteId = orgGrp . First ( ) . OrganisationInviteId
67
+ } ;
65
68
66
69
Organisation organisation = db . Organisations . First ( ba => ba . OrganisationId == orgGrp . Key ) ;
67
70
viewModel . OrganisationId = organisation . OrganisationId ;
@@ -119,22 +122,20 @@ public ActionResult Accept(int id)
119
122
return NotFound ( "Could not find user" ) ;
120
123
}
121
124
122
- var organisation = db . Organisations . FirstOrDefault ( ba => ba . OrganisationId == id ) ;
125
+ var invite = db . OrganisationInvites . FirstOrDefault ( uc => uc . InviteEmail . ToLower ( ) == CurrentUser . Email . ToLower ( ) && uc . AcceptedOn == null && uc . RejectedOn == null && uc . OrganisationInviteId == id ) ;
123
126
124
- if ( organisation == null )
127
+ if ( invite == null )
125
128
{
126
- return NotFound ( "Organisation not found" ) ;
129
+ return NotFound ( "Invite not found" ) ;
127
130
}
128
131
129
- // remove other invitations to other organisations
130
- db . OrganisationInvites . RemoveWhere ( uc => uc . InviteEmail . ToLower ( ) == CurrentUser . Email . ToLower ( ) && uc . OrganisationId != id ) ;
132
+ var organisation = db . Organisations . FirstOrDefault ( ba => ba . OrganisationId == invite . OrganisationId ) ;
131
133
132
- db . SaveChanges ( ) ;
134
+ if ( organisation == null )
135
+ {
136
+ return NotFound ( "Organisation not found" ) ;
137
+ }
133
138
134
- var invitationsToAccept = db . OrganisationInvites
135
- . Where ( uc => uc . InviteEmail == CurrentUser . Email && uc . OrganisationId == id )
136
- . ToList ( ) ;
137
-
138
139
List < DatabaseConnection > leave = new List < DatabaseConnection > ( ) ;
139
140
List < DatabaseConnection > migrate = new List < DatabaseConnection > ( ) ;
140
141
@@ -173,11 +174,16 @@ public ActionResult Accept(int id)
173
174
174
175
CurrentUser . OrganisationId = organisation . OrganisationId ;
175
176
176
- foreach ( var invite in invitationsToAccept )
177
+ invite . AcceptedOn = DateTime . Now ;
178
+
179
+ // reject other invitations to other organisations
180
+ var invitesToReject = db . OrganisationInvites . Where ( uc => uc . InviteEmail . ToLower ( ) == CurrentUser . Email . ToLower ( ) && uc . OrganisationInviteId != invite . OrganisationInviteId ) ;
181
+
182
+ foreach ( var inviteToReject in invitesToReject )
177
183
{
178
- invite . AcceptedOn = DateTime . Now ;
184
+ inviteToReject . RejectedOn = DateTime . Now ;
179
185
}
180
-
186
+
181
187
db . SaveChanges ( ) ;
182
188
183
189
return RedirectToAction ( "Index" , "Home" ) ;
@@ -190,7 +196,13 @@ public ActionResult Reject(int id)
190
196
return NotFound ( "Could not find user" ) ;
191
197
}
192
198
193
- var invite = db . OrganisationInvites . First ( i => i . InviteEmail . ToLower ( ) == CurrentUser . Email . ToLower ( ) && i . OrganisationId == id && i . AcceptedOn == null && i . RejectedOn == null ) ;
199
+ var invite = db . OrganisationInvites . FirstOrDefault ( uc => uc . InviteEmail . ToLower ( ) == CurrentUser . Email . ToLower ( ) && uc . AcceptedOn == null && uc . RejectedOn == null && uc . OrganisationInviteId == id ) ;
200
+
201
+ if ( invite == null )
202
+ {
203
+ return NotFound ( "Invite not found" ) ;
204
+ }
205
+
194
206
invite . RejectedOn = DateTime . Now ;
195
207
196
208
db . SaveChanges ( ) ;
0 commit comments