private bool DoUpdates(ImportAthleteAction importAthleteAction) { if (importAthleteAction.Exception != null) { return(false); } var athleteMgmt = new AthleteManagement(Global.ConnectionString, SessionProps); if (!importAthleteAction.AthleteIsStored || !importAthleteAction.AthleteClubIsStored || !importAthleteAction.AthleteClubIsUpToDate) { Action <string, Guid> TweetAction = (tweet, athleteClubGuid) => { //no tweeting when mass importing }; athleteMgmt.SaveAthlete(importAthleteAction.AthleteClub.Inti_Athlete.FirstName, importAthleteAction.AthleteClub.Inti_Athlete.LastName, importAthleteAction.AthleteClub.Inti_Athlete.GUID, SelectedTournament, importAthleteAction.AthleteClub.ClubGUID, importAthleteAction.AthleteClub.PositionGUID, importAthleteAction.AthleteClub.Price ?? 0, true, importAthleteAction.AthleteClub.Inti_Club.ShortName, TweetAction); } return(true); }
protected void btnSave_Click(object sender, EventArgs e) { var athleteManagement = new AthleteManagement(Global.ConnectionString, SessionProps); var playerGUIDvar = this.GetRedirectParameter("athleteGUID", false); Guid playerGUID = Guid.Empty; Guid newPlayerGUID = Guid.Empty; var newPlayer = playerGUIDvar == null; if (playerGUIDvar != null) { playerGUID = new Guid(playerGUIDvar.ToString()); } try { Action <string, Guid> TweetAthlete = (tweet, athleteClubGuid) => { var url = "http://interntipset.com/Player/" + athleteClubGuid.ToString(); Global.SendTweet(tweet, url, SessionProps); }; newPlayerGUID = athleteManagement.SaveAthlete(FirstName.Text, LastName.Text, playerGUID, new Guid(drpTournament.SelectedValue), (drpClubs.SelectedItem.Text == "---" ? Guid.Empty : new Guid(drpClubs.SelectedValue)), (drpPosition.SelectedItem.Text == "---" ? Guid.Empty : new Guid(drpPosition.SelectedValue)), int.Parse(Price.Text), IsActive.Checked, drpClubs.SelectedItem.Text, TweetAthlete); } catch (DuplicateNameException duplicateNameException) { PlayerEditMessage.Text = "Det finns redan en spelare med detta namnet. Gå tillbaka till söksidan och editera den spelaren om det är samma person. Gör annars namnet unikt."; } catch (Exception exception) { PlayerEditMessage.Text = exception.Message; } if (newPlayerGUID != playerGUID) { WebControlManager.RedirectWithQueryString("AdminPlayerEdit.aspx", new string[] { "athleteGUID" }, new string[] { newPlayerGUID.ToString() }); } }
private ImportAthleteAction GetOrCreateAthleteImportAction(Guid selectedTournament, PlayerDetails playerDetails) { var importAthleteAction = new ImportAthleteAction(); try { //verify and get club var club = new ClubManagement(Global.ConnectionString, SessionProps).GetClubByCode(selectedTournament, playerDetails.ClubCode); //verify and get position Inti_Position position = null; if (!String.IsNullOrEmpty(playerDetails.PosCode)) { position = new CommonDataFetches(Global.ConnectionString, SessionProps).GetPosition(playerDetails.PosCode); } //try to get athlete var athlete = new AthleteManagement(Global.ConnectionString, SessionProps).GetAthleteByName(playerDetails.FirstName, playerDetails.LastName); importAthleteAction.AthleteIsStored = (athlete != null); if (athlete == null) { //athlete is added with full name? var searchString = String.IsNullOrEmpty(playerDetails.FirstName) ? playerDetails.LastName : String.Format("{0}, {1}", playerDetails.FirstName, playerDetails.LastName); IList <Inti_Athlete> matchingAthletes; using (var db = Global.GetConnection()) { matchingAthletes = Searching.SearchForAthletes(db, searchString); } if (matchingAthletes.Count == 0) { //do we have position? if (position != null) { //create new athlete athlete = new Inti_Athlete(); athlete.FirstName = playerDetails.FirstName; athlete.LastName = playerDetails.LastName; } else { importAthleteAction.Exception = new Exception("Ny spelare men position saknas. Ange med position"); } } else { if (matchingAthletes.Count == 1) { athlete = matchingAthletes[0]; importAthleteAction.ImportAction += "OBS, kontrollera namnet. "; } else { var message = "Flera spelare matchar namnet:"; foreach (var matchingAthlete in matchingAthletes) { message += (matchingAthlete.FirstName + " " + matchingAthlete.LastName).Trim() + ", "; } importAthleteAction.Exception = new Exception(message); } } } if (athlete != null) { //is the athlete already in tournament? var athleteClub = new AthleteManagement(Global.ConnectionString, SessionProps).GetAthleteClubByTournament(athlete.GUID, selectedTournament); importAthleteAction.AthleteClubIsStored = (athleteClub != null); importAthleteAction.AthleteClubIsUpToDate = true; if (athleteClub == null) { if (position != null) { athleteClub = new Inti_AthleteClub(); athleteClub.Inti_Athlete = athlete; athleteClub.Inti_Club = club; athleteClub.Inti_Position = position; athleteClub.Price = playerDetails.Price; } else { importAthleteAction.Exception = new Exception("Befintlig spelare men position saknas. Ange med position"); } } else { importAthleteAction.AthleteClubIsUpToDate = (athleteClub.Inti_Club.GUID == club.GUID); //new club if (athleteClub.Inti_Club.GUID != club.GUID) { athleteClub.Inti_Club = club; } if (position != null && athleteClub.Inti_Position.GUID != position.GUID) { importAthleteAction.Exception = new Exception(String.Format("Changed position from {0} to {1}, is it the correct player?", athleteClub.Inti_Position.ShortName, position.ShortName)); } if (athleteClub.Price != playerDetails.Price) { importAthleteAction.Exception = new Exception(String.Format("Changed price from {0} to {1}, is it the correct player?", athleteClub.Price, playerDetails.Price)); } } //set import action importAthleteAction.ImportAction += GetImportAction(importAthleteAction); importAthleteAction.AthleteClub = athleteClub; } } catch (Exception exception) { importAthleteAction.Exception = exception; } return(importAthleteAction); }