@@ -498,6 +498,8 @@ public ActionResult DeleteRegistration(string id, string ref_id = null)
498498 {
499499 reg . Deleted = true ;
500500 erManager . UpdateEventRegistration ( reg ) ;
501+ MoveFromWaitingList ( reg . Event . Id ) ;
502+
501503 }
502504 }
503505 else if ( ref_id != null )
@@ -507,13 +509,77 @@ public ActionResult DeleteRegistration(string id, string ref_id = null)
507509 {
508510 reg . Deleted = true ;
509511 erManager . UpdateEventRegistration ( reg ) ;
512+ MoveFromWaitingList ( reg . Event . Id ) ;
510513 }
511514 }
512515 }
513516 }
514517 return Json ( new { result = "redirect" , url = Url . Action ( "EventRegistration" , "EventRegistration" , new { area = "EMM" } ) } , JsonRequestBehavior . AllowGet ) ;
515518 }
516519
520+ private void MoveFromWaitingList ( long eventId )
521+ {
522+ using ( var erManager = new EventRegistrationManager ( ) )
523+ using ( var eventManager = new EventManager ( ) )
524+ {
525+ int countWaitingList = erManager . GetAllWaitingListRegsByEvent ( eventId ) . Count ;
526+ if ( countWaitingList > 0 )
527+ {
528+ var reg = erManager . GetLatestWaitingListEntry ( eventId ) ;
529+ reg . WaitingList = false ;
530+ erManager . UpdateEventRegistration ( reg ) ;
531+ var e = eventManager . GetEventById ( eventId ) ;
532+ SendWaitingListNotification ( reg . Data , e ) ;
533+ }
534+ }
535+ }
536+
537+ private void SendWaitingListNotification ( XmlDocument data , Event e )
538+ {
539+ // todo: add not allowed / log in info to mail
540+
541+ EmailStructure emailStructure = new EmailStructure ( ) ;
542+ emailStructure = EmailHelper . ReadFile ( e . EventLanguage ) ;
543+
544+ string first_name = data . GetElementsByTagName ( emailStructure . lableFirstName ) [ 0 ] . InnerText ;
545+ string last_name = data . GetElementsByTagName ( emailStructure . lableLastname ) [ 0 ] . InnerText ;
546+ string email = data . GetElementsByTagName ( emailStructure . lableEmail ) [ 0 ] . InnerText ;
547+
548+ string url = Request . Url . GetLeftPart ( UriPartial . Authority ) ;
549+
550+ string mail_message = "" ;
551+ string subject = emailStructure . removeFromWaitingListSubject + e . Name ;
552+
553+ string body = emailStructure . bodyTitle + first_name + " " + last_name + ", " + "<br/><br/>" +
554+ emailStructure . removeFromWaitingList1 + e . Name + emailStructure . removeFromWaitingList2 + "<br/><br/>" +
555+ emailStructure . bodyClosing + "<br/>" +
556+ emailStructure . bodyClosingName ;
557+
558+
559+ var es = new EmailService ( ) ;
560+
561+ // If no explicit Reply to mail is set use the SystemEmail
562+ string replyTo = "" ;
563+ if ( String . IsNullOrEmpty ( e . EmailReply ) )
564+ {
565+ replyTo = ConfigurationManager . AppSettings [ "SystemEmail" ] ;
566+ }
567+ else
568+ {
569+ replyTo = e . EmailReply ;
570+ }
571+
572+ es . Send (
573+ subject ,
574+ body ,
575+ new List < string > { email } , // to
576+ new List < string > { e . EmailCC } , // CC
577+ new List < string > { ConfigurationManager . AppSettings [ "SystemEmail" ] , e . EmailBCC } , // Allways send BCC to SystemEmail + additional set
578+ new List < string > { replyTo }
579+ ) ;
580+
581+ }
582+
517583 public ActionResult Save ( )
518584 {
519585 using ( EventManager eManager = new EventManager ( ) )
@@ -633,7 +699,7 @@ private void CreateNewEventRegistration(Event e, XDocument data, User user, stri
633699 }
634700
635701 // Save registration and send notification
636- erManager . CreateEventRegistration ( XmlMetadataWriter . ToXmlDocument ( data ) , e , user , false , ref_id , waitingList ) ;
702+ erManager . CreateEventRegistration ( XmlMetadataWriter . ToXmlDocument ( data ) , e , user , false , ref_id , waitingList , DateTime . Now ) ;
637703
638704 SendEmailNotification ( notificationType , email , ref_id , data , e , user ) ;
639705 }
0 commit comments