Esempio n. 1
0
        public ActionResult Create([Bind(Include = "Id,Name,ContactNo,Designation,EmailId,CNIC,InstituteId,RequestStatusId,CreatedAt,Address,City,CompetitionId")] CompetitionRegistration competitionRegistration)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        if (competitionRegistration.CompetitionId == 2)
                        {
                            var teamLead                = Request.Form["DramaTeamLeader"];
                            var totalMembers            = Request.Form["DramaTotalTeamMembers"];
                            var dramaDescription        = Request.Form["DramaDescription"];
                            var toSaveWithAddressString = " || " + teamLead + " || " + totalMembers + " || " + dramaDescription;
                            competitionRegistration.Address = competitionRegistration.Address + " !Drama! " + toSaveWithAddressString;
                        }

                        competitionRegistration.RequestStatusId = 1;
                        competitionRegistration.CreatedAt       = DateTime.Now;
                        db.CompetitionRegistrations.Add(competitionRegistration);
                        db.SaveChanges();
                        string actionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                        string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                        return(RedirectToAction("SubmissionResponce", "Home", new { status = "You are successfully registerd for Competition with your crdentials,Team SEE Lahore will soon respond you through Email.Stay Connected for Bigest Event of Lahore, See Lahore 2018", url = controllerName + "/" + actionName }));
                    }
                    catch (DbEntityValidationException ex)
                    {
                        string message = "";
                        foreach (var validationErrors in ex.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                message = message + validationError.PropertyName + "  " + validationError.ErrorMessage + "\n\n";
                            }
                        }

                        HomeController.EntityinfoMessage(competitionRegistration.Name + ": " + message);
                        HomeController.EntitywriteErrorLog(ex);
                        string actionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                        string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                        return(RedirectToAction("SubmissionResponce", "Home", new { status = "Due to Server overload something went wrong! please try again. Sorry for Inconvenience", url = controllerName + "/" + actionName }));
                    }
                }


                ViewBag.CompetitionId   = new SelectList(db.Competitions, "Id", "CompetitionName", competitionRegistration.CompetitionId);
                ViewBag.InstituteId     = new SelectList(db.Institutes, "Id", "Institute1");
                ViewBag.RequestStatusId = new SelectList(db.RequestStatus, "Id", "Status", competitionRegistration.RequestStatusId);
                return(View(competitionRegistration));
            }
            catch (Exception ex)
            {
                string actionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                HomeController.infoMessage(ex.Message);
                HomeController.writeErrorLog(ex);
                return(RedirectToAction("SubmissionResponce", "Home", new { status = "Due to Server overload something went wrong! please try again. Sorry for Inconvenience", url = controllerName + "/" + actionName }));
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            CompetitionRegistration competitionRegistration = db.CompetitionRegistrations.Find(id);

            db.CompetitionRegistrations.Remove(competitionRegistration);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 3
0
        public virtual CompetitionRegistration CreateRegistration(string forename, string surname, string emailAddress)
        {
            var data = new CompetitionRegistration();

            data.CompetitionID = this.ID;
            data.Forename      = forename;
            data.Surname       = surname;
            data.EmailAddress  = emailAddress;
            return(data);
        }
        public async Task SendConfirmationEmails(CompetitionRegistration registration, Entities.Competition competition)
        {
            var dates = await this._competitionDateRepository.GetByCompetition(competition.ID);

            var message1 = new CompetitionRegistrationPlayerConfirmationEmailMessage(competition, registration, dates);

            await this._emailSender.Send(message1);

            var message2 = new CompetitionRegistrationOrganiserConfirmationEmailMessage(competition, registration, dates);

            await this._emailSender.Send(message2);
        }
        // GET: CompetitionRegistrations/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompetitionRegistration competitionRegistration = db.CompetitionRegistrations.Find(id);

            if (competitionRegistration == null)
            {
                return(HttpNotFound());
            }
            return(View(competitionRegistration));
        }
 public ActionResult Edit([Bind(Include = "Id,Name,ContactNo,Designation,EmailId,CNIC,InstituteId,RequestStatusId,CreatedAt,Address,City,CompetitionId")] CompetitionRegistration competitionRegistration)
 {
     if (ModelState.IsValid)
     {
         competitionRegistration.CreatedAt       = DateTime.Now;
         db.Entry(competitionRegistration).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.InstituteId     = new SelectList(db.Institutes, "Id", "Institute1");
     ViewBag.CompetitionId   = new SelectList(db.Competitions, "Id", "CompetitionName", competitionRegistration.CompetitionId);
     ViewBag.RequestStatusId = new SelectList(db.RequestStatus, "Id", "Status", competitionRegistration.RequestStatusId);
     return(View(competitionRegistration));
 }
        public ActionResult UpdateStatus(int?id, int?Status)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompetitionRegistration competitionRegistration = db.CompetitionRegistrations.Find(id);

            if (competitionRegistration == null)
            {
                return(HttpNotFound());
            }
            competitionRegistration.RequestStatusId = Status;
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
        // GET: CompetitionRegistrations/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompetitionRegistration competitionRegistration = db.CompetitionRegistrations.Find(id);

            if (competitionRegistration == null)
            {
                return(HttpNotFound());
            }
            ViewBag.InstituteId     = new SelectList(db.Institutes, "Id", "Institute1");
            ViewBag.CompetitionId   = new SelectList(db.Competitions, "Id", "CompetitionName", competitionRegistration.CompetitionId);
            ViewBag.RequestStatusId = new SelectList(db.RequestStatus, "Id", "Status", competitionRegistration.RequestStatusId);
            return(View(competitionRegistration));
        }
        protected void bAjaxPostback_Click(object sender, EventArgs e)
        {
            string status = string.Empty;
            try
            {

                Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance;
                aqufitEntities entities = new aqufitEntities();
                switch (hiddenAjaxAction.Value)
                {
                    case "saveRegistration":
                        CompetitionRegistration registration = null;
                        if (string.IsNullOrWhiteSpace(hiddenAjaxRegistrationId.Value))
                        {
                            registration = new CompetitionRegistration();
                        }
                        else
                        {
                            long rId = Convert.ToInt64(hiddenAjaxRegistrationId.Value);
                            registration = entities.CompetitionRegistrations.FirstOrDefault(r => r.Id == rId);
                        }
                        registration.Competition = entities.Competitions.FirstOrDefault( c => c.Id == 1 ); // ********** TMP
                        User test = entities.UserSettings.OfType<User>().FirstOrDefault(u => u.Id == UserSettings.Id);
                        registration.UserSetting = test;
                        // we have a chance to correct user "miss information"
                        int compType = Convert.ToInt32( ddlCompetitionType.SelectedValue );
                        registration.RegistrationType = compType;
                        registration.DateTime = DateTime.Now;
                        if (!string.IsNullOrWhiteSpace(hiddenAjaxValue.Value))
                        {
                            long affilId = Convert.ToInt64(hiddenAjaxValue.Value);
                            registration.GroupAffiliate = entities.UserSettings.OfType<Group>().FirstOrDefault(g => g.Id == affilId);
                        }
                        if (compType == 1)
                        {
                            if (atiSlimControl.Email != test.UserEmail) test.UserEmail = atiSlimControl.Email;
                            if (atiBodyComp.Gender != test.Sex) test.Sex = atiBodyComp.Gender;
                            if (!test.BirthDate.HasValue || atiBodyComp.BirthDate != test.BirthDate.Value) test.BirthDate = atiBodyComp.BirthDate;
                            registration.RegistrationType = 1;  // individual
                            registration.MailingAddress = txtAddress.Text;
                            registration.ContactPhone = txtPhone.Text;
                            registration.ContactEmail = test.UserEmail;
                            registration.EmergContactName = txtEmergName.Text;
                            registration.EmergContactPhone = txtEmergPhone.Text;
                            registration.EmergContactRelation = txtEmergRelation.Text;
                            registration.ExtraInfo = txtMedical.Text;
                            // save and load the new registration ID
                            entities.SaveChanges();
                            registration = entities.CompetitionRegistrations.OrderByDescending(r => r.Id).FirstOrDefault(r => r.UserSetting.Id == UserSettings.Id);
                            hiddenAjaxRegistrationId.Value = "" + registration.Id;

                            // now we need to add the users PR's to their profiles...
                            SaveCompWorkoutPR();
                        }
                        else
                        {   // team registration...
                            registration.MailingAddress = txtTeamAddress.Text;
                            registration.ContactPhone = txtTeamPhone.Text;
                            registration.TeamName = txtTeamName.Text;
                            registration.ContactEmail = txtTeamEmail.Text;
                            registration.RegistrationType = 2;  // team

                            // save and load the new registration ID
                            entities.SaveChanges();
                            registration = entities.CompetitionRegistrations.OrderByDescending(r => r.Id).FirstOrDefault(r => r.UserSetting.Id == UserSettings.Id);
                            hiddenAjaxRegistrationId.Value = "" + registration.Id;
                        }

                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(6); ");
                        break;
                    case "checkTeamLimit":
                        long gId = Convert.ToInt64(hiddenAjaxValue.Value);
                        int count = entities.CompetitionRegistrations.Where(r => r.GroupAffiliate.Id == gId && r.RegistrationType == 2 ).Count(); // more the 2 affiliate teams alreay ??
                        if (count >= 2)
                        {
                            Group check = entities.UserSettings.OfType<Group>().FirstOrDefault( g => g.Id == gId );
                            RadAjaxManager1.ResponseScripts.Add(" alert('Sorry the affiliate [ " + check.UserFirstName + " ] already has 2 teams signed up.' );" );
                        }
                        else
                        {
                            RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(3);");
                        }
                        break;
                    case "connectCompAthlete":
                        long aid = Convert.ToInt64(hiddenAjaxValue.Value);
                        CompetitionAthlete athlete = entities.CompetitionAthletes.Include("CompetitionWODs").Include("CompetitionWODs.WOD").Include("CompetitionWODs.WOD.WODType").Include("CompetitionAffiliate").Include("CompetitionAffiliate.CFAffiliate").Include("CompetitionAffiliate.CFAffiliate.UserSetting").FirstOrDefault(a => a.Id == aid);
                        // first lets get any info we can off the profile (weight, height)
                        User thisUser = entities.UserSettings.OfType<User>().Include("BodyCompositions").FirstOrDefault( u => u.Id == UserSettings.Id );
                        BodyComposition bc = thisUser.BodyCompositions.FirstOrDefault();
                        if (bc == null)
                        {
                            bc = new BodyComposition();
                            bc.UserSetting = thisUser;
                            entities.AddToBodyComposition(bc);
                        }
                        bc.Height = athlete.Height;
                        bc.Weight = athlete.Weight;
                        entities.SaveChanges();
                        bool loadImg = true;
                        try
                        {
                            Utils.ImageUtil.MakeImageProfilePic(Utils.ImageUtil.ReadImageDataFromUrl(athlete.ImgUrl), UserSettings.Id);
                        }
                        catch (Exception)
                        {
                            loadImg = false;
                        }
                        // next see if we can add them to any groups (via the affiliate)
                        if (athlete.CompetitionAffiliate != null && athlete.CompetitionAffiliate.CFAffiliate != null && athlete.CompetitionAffiliate.CFAffiliate.UserSetting != null)
                        {
                            dataMan.JoinGroup(thisUser.Id, athlete.CompetitionAffiliate.CFAffiliate.UserSetting.Id, ConstsUtil.Relationships.GROUP_MEMBER);
                        }
                        // now add all the games workouts to the site.
                        foreach (CompetitionWOD cw in athlete.CompetitionWODs)
                        {
                            // so far we think they are all AMRAPS
                            dataMan.SaveWorkout(thisUser, (int)Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "", true, cw.WOD.Id, cw.Score, null);
                        }
                        if (loadImg)
                        {
                            RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(2); ");
                        }
                        else
                        {
                            RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(1); ");
                        }
                        break;
                    case "friendRequest":
                        long fid = Convert.ToInt64(hiddenAjaxValue.Value);
                        dataMan.sendFriendRequest(UserSettings.Id, fid);
                        status = "Friend request has been sent.";
                        break;
                    case "joinGroup":
                        long gid = Convert.ToInt64(hiddenAjaxValue.Value);
                        bool isOwner = hiddenAjaxValue2.Value == "true" ? true : false;
                        bool sendRequestToAll = hiddenAjaxValue3.Value == "1" ? true : false;
                        dataMan.JoinGroup(UserSettings.Id, gid, ConstsUtil.Relationships.GROUP_MEMBER);
                        Group group = entities.UserSettings.OfType<Group>().FirstOrDefault(g => g.Id == gid);
                        if (sendRequestToAll)
                        {
                            long[] memberIdArray = entities.UserFriends.Where(g => (g.DestUserSettingKey == gid || g.SrcUserSettingKey == gid) && g.Relationship >= (int)Affine.Utils.ConstsUtil.Relationships.GROUP_OWNER).Select(g => (g.DestUserSettingKey == gid ? g.SrcUserSettingKey : g.DestUserSettingKey)).ToArray();
                            int numMembers = memberIdArray.Length;
                            foreach (long mid in memberIdArray)
                            {
                                dataMan.sendFriendRequest(UserSettings.Id, mid);
                            }
                        }
                        if (isOwner)
                        {
                            dataMan.makeGroupOwnerRequest(UserSettings as User, group);
                        }
                        if (Request["step"] != null)
                        {   // todo: store this owne
                            RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.JoinGroupDialog.close(); Aqufit.Page.Actions.LoadStep(4); ");
                        }
                        else
                        {
                            RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.JoinGroupDialog.close(); Aqufit.Windows.SuccessDialog.open(\"{'html':'You have been added to the group.'}\");");
                        }
                        break;
                }
            }
            catch (Exception ex)
            {
                status = "ERROR: There was a problem with the action (" + ex.Message + ex.StackTrace.Replace("'","").Replace("\n","")+")";
                RadAjaxManager1.ResponseScripts.Add("alert('" + status + "'); ");
            }
        }
Esempio n. 10
0
        protected void bAjaxPostback_Click(object sender, EventArgs e)
        {
            string status = string.Empty;

            try
            {
                Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance;
                aqufitEntities entities = new aqufitEntities();
                switch (hiddenAjaxAction.Value)
                {
                case "saveRegistration":
                    CompetitionRegistration registration = null;
                    if (string.IsNullOrWhiteSpace(hiddenAjaxRegistrationId.Value))
                    {
                        registration = new CompetitionRegistration();
                    }
                    else
                    {
                        long rId = Convert.ToInt64(hiddenAjaxRegistrationId.Value);
                        registration = entities.CompetitionRegistrations.FirstOrDefault(r => r.Id == rId);
                    }
                    registration.Competition = entities.Competitions.FirstOrDefault(c => c.Id == 1);       // ********** TMP
                    User test = entities.UserSettings.OfType <User>().FirstOrDefault(u => u.Id == UserSettings.Id);
                    registration.UserSetting = test;
                    // we have a chance to correct user "miss information"
                    int compType = Convert.ToInt32(ddlCompetitionType.SelectedValue);
                    registration.RegistrationType = compType;
                    registration.DateTime         = DateTime.Now;
                    if (!string.IsNullOrWhiteSpace(hiddenAjaxValue.Value))
                    {
                        long affilId = Convert.ToInt64(hiddenAjaxValue.Value);
                        registration.GroupAffiliate = entities.UserSettings.OfType <Group>().FirstOrDefault(g => g.Id == affilId);
                    }
                    if (compType == 1)
                    {
                        if (atiSlimControl.Email != test.UserEmail)
                        {
                            test.UserEmail = atiSlimControl.Email;
                        }
                        if (atiBodyComp.Gender != test.Sex)
                        {
                            test.Sex = atiBodyComp.Gender;
                        }
                        if (!test.BirthDate.HasValue || atiBodyComp.BirthDate != test.BirthDate.Value)
                        {
                            test.BirthDate = atiBodyComp.BirthDate;
                        }
                        registration.RegistrationType     = 1;  // individual
                        registration.MailingAddress       = txtAddress.Text;
                        registration.ContactPhone         = txtPhone.Text;
                        registration.ContactEmail         = test.UserEmail;
                        registration.EmergContactName     = txtEmergName.Text;
                        registration.EmergContactPhone    = txtEmergPhone.Text;
                        registration.EmergContactRelation = txtEmergRelation.Text;
                        registration.ExtraInfo            = txtMedical.Text;
                        // save and load the new registration ID
                        entities.SaveChanges();
                        registration = entities.CompetitionRegistrations.OrderByDescending(r => r.Id).FirstOrDefault(r => r.UserSetting.Id == UserSettings.Id);
                        hiddenAjaxRegistrationId.Value = "" + registration.Id;

                        // now we need to add the users PR's to their profiles...
                        SaveCompWorkoutPR();
                    }
                    else
                    {       // team registration...
                        registration.MailingAddress   = txtTeamAddress.Text;
                        registration.ContactPhone     = txtTeamPhone.Text;
                        registration.TeamName         = txtTeamName.Text;
                        registration.ContactEmail     = txtTeamEmail.Text;
                        registration.RegistrationType = 2;      // team

                        // save and load the new registration ID
                        entities.SaveChanges();
                        registration = entities.CompetitionRegistrations.OrderByDescending(r => r.Id).FirstOrDefault(r => r.UserSetting.Id == UserSettings.Id);
                        hiddenAjaxRegistrationId.Value = "" + registration.Id;
                    }

                    RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(6); ");
                    break;

                case "checkTeamLimit":
                    long gId   = Convert.ToInt64(hiddenAjaxValue.Value);
                    int  count = entities.CompetitionRegistrations.Where(r => r.GroupAffiliate.Id == gId && r.RegistrationType == 2).Count();     // more the 2 affiliate teams alreay ??
                    if (count >= 2)
                    {
                        Group check = entities.UserSettings.OfType <Group>().FirstOrDefault(g => g.Id == gId);
                        RadAjaxManager1.ResponseScripts.Add(" alert('Sorry the affiliate [ " + check.UserFirstName + " ] already has 2 teams signed up.' );");
                    }
                    else
                    {
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(3);");
                    }
                    break;

                case "connectCompAthlete":
                    long aid = Convert.ToInt64(hiddenAjaxValue.Value);
                    CompetitionAthlete athlete = entities.CompetitionAthletes.Include("CompetitionWODs").Include("CompetitionWODs.WOD").Include("CompetitionWODs.WOD.WODType").Include("CompetitionAffiliate").Include("CompetitionAffiliate.CFAffiliate").Include("CompetitionAffiliate.CFAffiliate.UserSetting").FirstOrDefault(a => a.Id == aid);
                    // first lets get any info we can off the profile (weight, height)
                    User            thisUser = entities.UserSettings.OfType <User>().Include("BodyCompositions").FirstOrDefault(u => u.Id == UserSettings.Id);
                    BodyComposition bc       = thisUser.BodyCompositions.FirstOrDefault();
                    if (bc == null)
                    {
                        bc             = new BodyComposition();
                        bc.UserSetting = thisUser;
                        entities.AddToBodyComposition(bc);
                    }
                    bc.Height = athlete.Height;
                    bc.Weight = athlete.Weight;
                    entities.SaveChanges();
                    bool loadImg = true;
                    try
                    {
                        Utils.ImageUtil.MakeImageProfilePic(Utils.ImageUtil.ReadImageDataFromUrl(athlete.ImgUrl), UserSettings.Id);
                    }
                    catch (Exception)
                    {
                        loadImg = false;
                    }
                    // next see if we can add them to any groups (via the affiliate)
                    if (athlete.CompetitionAffiliate != null && athlete.CompetitionAffiliate.CFAffiliate != null && athlete.CompetitionAffiliate.CFAffiliate.UserSetting != null)
                    {
                        dataMan.JoinGroup(thisUser.Id, athlete.CompetitionAffiliate.CFAffiliate.UserSetting.Id, ConstsUtil.Relationships.GROUP_MEMBER);
                    }
                    // now add all the games workouts to the site.
                    foreach (CompetitionWOD cw in athlete.CompetitionWODs)
                    {
                        // so far we think they are all AMRAPS
                        dataMan.SaveWorkout(thisUser, (int)Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "", true, cw.WOD.Id, cw.Score, null);
                    }
                    if (loadImg)
                    {
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(2); ");
                    }
                    else
                    {
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.LoadStep(1); ");
                    }
                    break;

                case "friendRequest":
                    long fid = Convert.ToInt64(hiddenAjaxValue.Value);
                    dataMan.sendFriendRequest(UserSettings.Id, fid);
                    status = "Friend request has been sent.";
                    break;

                case "joinGroup":
                    long gid              = Convert.ToInt64(hiddenAjaxValue.Value);
                    bool isOwner          = hiddenAjaxValue2.Value == "true" ? true : false;
                    bool sendRequestToAll = hiddenAjaxValue3.Value == "1" ? true : false;
                    dataMan.JoinGroup(UserSettings.Id, gid, ConstsUtil.Relationships.GROUP_MEMBER);
                    Group group = entities.UserSettings.OfType <Group>().FirstOrDefault(g => g.Id == gid);
                    if (sendRequestToAll)
                    {
                        long[] memberIdArray = entities.UserFriends.Where(g => (g.DestUserSettingKey == gid || g.SrcUserSettingKey == gid) && g.Relationship >= (int)Affine.Utils.ConstsUtil.Relationships.GROUP_OWNER).Select(g => (g.DestUserSettingKey == gid ? g.SrcUserSettingKey : g.DestUserSettingKey)).ToArray();
                        int    numMembers    = memberIdArray.Length;
                        foreach (long mid in memberIdArray)
                        {
                            dataMan.sendFriendRequest(UserSettings.Id, mid);
                        }
                    }
                    if (isOwner)
                    {
                        dataMan.makeGroupOwnerRequest(UserSettings as User, group);
                    }
                    if (Request["step"] != null)
                    {       // todo: store this owne
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.JoinGroupDialog.close(); Aqufit.Page.Actions.LoadStep(4); ");
                    }
                    else
                    {
                        RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.JoinGroupDialog.close(); Aqufit.Windows.SuccessDialog.open(\"{'html':'You have been added to the group.'}\");");
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                status = "ERROR: There was a problem with the action (" + ex.Message + ex.StackTrace.Replace("'", "").Replace("\n", "") + ")";
                RadAjaxManager1.ResponseScripts.Add("alert('" + status + "'); ");
            }
        }
        public async Task <DefaultCommandResponse> Handle(CreateDoublesRegistrationCommand command)
        {
            var attempt = await this.StoreAttempt(command);

            var status = false;
            DefaultCommandResponse response;

            this._unitOfWork.Begin();
            this._registrationUnitOfWork.Begin();

            RecaptchaResponse recaptchaResponse = null;

            try
            {
                CompetitionRegistration registration = null;
                this._validationResult = this._validator.Validate(command);

                if (this._validationResult.IsValid)
                {
                    await this.Load(command);

                    RegistrationValidatorHelper.Validate(this._validationResult, this._competition);
                }

                if (this._validationResult.IsValid)
                {
                    RegistrationValidatorHelper.ValidateGameFormat(this._validationResult, this._competition, GameFormats.Doubles);
                }

                if (this._validationResult.IsValid)
                {
                    recaptchaResponse = await this._recaptchaService.Validate(command.Registration, "opens/registration", this._validationResult);
                }

                if (this._validationResult.IsValid)
                {
                    registration = this._competition.CreateRegistration(command.Registration.Contact.Forename, command.Registration.Contact.Surname, command.Registration.Contact.EmailAddress);

                    foreach (var player in command.Registration.Players)
                    {
                        var entrant = registration.CreateEntrant(this._competition);
                        entrant.CreatePlayer(player.Player1.Forename, player.Player1.Surname);
                        entrant.CreatePlayer(player.Player2.Forename, player.Player2.Surname);
                        if (player.QualificationDate.HasValue)
                        {
                            entrant.CompetitionDateID = player.QualificationDate.Value;
                        }
                    }

                    await this._competitionRegistrationRepository.Save(registration);
                }

                if (this._validationResult.IsValid)
                {
                    this._unitOfWork.SoftCommit();
                    this._registrationUnitOfWork.SoftCommit();

                    await this._registrationEmailManager.SendConfirmationEmails(registration, this._competition);

                    status   = true;
                    response = DefaultCommandResponse.Create(this._validationResult);
                    this.StoreAttemptResponse(attempt, response);
                }
                else
                {
                    this._unitOfWork.Rollback();
                    this._registrationUnitOfWork.Rollback();
                    response = DefaultCommandResponse.Create(this._validationResult);
                    this.StoreAttemptResponse(attempt, response);
                }
            }
            catch (Exception e)
            {
                this._unitOfWork.Rollback();
                this._registrationUnitOfWork.Rollback();
                Console.WriteLine(e);
                throw;
            }
            finally
            {
                if (recaptchaResponse != null && recaptchaResponse.Data != null)
                {
                    attempt.RecaptchaScore = recaptchaResponse.Data.Score;
                }

                attempt.Status = status;
                await this._competitionRegistrationAttemptRepository.Save(attempt);
            }

            return(response);
        }
 public CompetitionRegistrationPlayerConfirmationEmailMessage(Entities.Competition competition, CompetitionRegistration competitionRegistration, List <CompetitionDate> dates)
 {
     this._competition             = competition;
     this._competitionRegistration = competitionRegistration;
     this._dates = dates;
 }