public ServiceMessage Update(BetEditDTO betEditDTO) { string message = ""; bool success = true; string sportName = betEditDTO.SportName; string tournamentName = betEditDTO.TournamentName; DateTime dateOfEvent = betEditDTO.DateOfEvent; List <ParticipantBaseDTO> participants = betEditDTO.EventParticipants; string coefficientDescription = betEditDTO.CoefficientDescription; decimal sum = betEditDTO.Sum; string clientPhoneNumber = betEditDTO.ClientPhoneNumber; if (success = ValidateBase(betEditDTO, ref message) && Validate(betEditDTO, ref message)) { try { IEnumerable <ParticipantEntity> participantEntities = participants .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName)); EventEntity eventEntity = unitOfWork .Events .Get(sportName, tournamentName, dateOfEvent, participantEntities); CoefficientEntity coefficientEntity = unitOfWork .Coefficients .Get(eventEntity.Id, coefficientDescription); if (coefficientEntity != null) { BetEntity betEntity = unitOfWork.Bets.Get(coefficientEntity.Id, clientPhoneNumber); if (betEntity != null) { betEntity.Sum = sum; unitOfWork.Commit(); message = "Edited bet"; } else { message = "Such bet not found"; success = true; } } else { message = "Such coefficient was not found"; success = false; } } catch (Exception ex) { message = ExceptionMessageBuilder.BuildMessage(ex); success = false; } } return(new ServiceMessage(message, success)); }
//TODO //merge create and update without code duplication public ServiceMessage Create(CoefficientCreateDTO coefficientCreateDTO) { string message = ""; bool success = true; if (success = IsValid(coefficientCreateDTO, ref message)) { string sportName = coefficientCreateDTO.SportName; string tournamentName = coefficientCreateDTO.TournamentName; DateTime dateOfEvent = coefficientCreateDTO.DateOfEvent; List <ParticipantBaseDTO> participants = coefficientCreateDTO.Participants; decimal value = coefficientCreateDTO.Value; string description = coefficientCreateDTO.Description; try { IEnumerable <ParticipantEntity> participantEntities = participants .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName)); EventEntity eventEntity = unitOfWork.Events.Get(sportName, tournamentName, dateOfEvent, participantEntities); bool exists = unitOfWork.Coefficients.Exists(eventEntity.Id, description); if (!exists) { CoefficientEntity coefficientEntity = new CoefficientEntity { EventId = eventEntity.Id, Value = value, Description = description }; unitOfWork.Coefficients.Add(coefficientEntity); unitOfWork.Commit(); message = "Coefficient added"; } else { message = "Such coefficient already exists"; success = false; } } catch (Exception ex) { message = ExceptionMessageBuilder.BuildMessage(ex); success = false; } } return(new ServiceMessage(message, success)); }
public ServiceMessage Update(CoefficientEditDTO coefficientEditDTO) { string message = ""; bool success = true; if (success = IsValid(coefficientEditDTO, ref message)) { string sportName = coefficientEditDTO.SportName; string tournamentName = coefficientEditDTO.TournamentName; DateTime dateOfEvent = coefficientEditDTO.DateOfEvent; List <ParticipantBaseDTO> participants = coefficientEditDTO.Participants; decimal value = coefficientEditDTO.Value; string description = coefficientEditDTO.Description; try { IEnumerable <ParticipantEntity> participantEntities = participants .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName)) .ToList(); EventEntity eventEntity = unitOfWork.Events.Get(sportName, tournamentName, dateOfEvent, participantEntities); bool exists = unitOfWork.Coefficients.Exists(eventEntity.Id, description); if (exists) { CoefficientEntity coefficientEntity = unitOfWork.Coefficients.Get(eventEntity.Id, description); coefficientEntity.Value = coefficientEditDTO.NewValue; coefficientEntity.Description = coefficientEditDTO.NewDescription; coefficientEntity.Win = coefficientEditDTO.Win; unitOfWork.Commit(); message = "Coefficient edited"; } else { message = "Such coefficient doesn't exist"; success = false; } } catch (Exception ex) { message = ExceptionMessageBuilder.BuildMessage(ex); success = false; } } return(new ServiceMessage(message, success)); }
public ServiceMessage Delete(CoefficientBaseDTO coefficientBaseDTO) { string message = ""; bool success = true; string sportName = coefficientBaseDTO.SportName; string tournamentName = coefficientBaseDTO.TournamentName; DateTime dateOfEvent = coefficientBaseDTO.DateOfEvent; List <ParticipantBaseDTO> participants = coefficientBaseDTO.Participants; string description = coefficientBaseDTO.Description; try { IEnumerable <ParticipantEntity> participantEntities = participants .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName)) .ToList(); EventEntity eventEntity = unitOfWork.Events.Get(sportName, tournamentName, dateOfEvent, participantEntities); if (eventEntity != null) { CoefficientEntity coefficientEntity = unitOfWork.Coefficients.Get(eventEntity.Id, description); if (coefficientEntity != null) { unitOfWork.Coefficients.Remove(coefficientEntity); unitOfWork.Commit(); message = "Coefficient deleted"; } else { message = "Such coefficient doesn't exist"; success = false; } } else { message = "Such event doesn't exist"; success = false; } } catch (Exception ex) { message = ExceptionMessageBuilder.BuildMessage(ex); success = false; } return(new ServiceMessage(message, success)); }
public ServiceMessage Create(BetCreateDTO betCreateDTO) { string message = ""; bool success = true; string sportName = betCreateDTO.SportName; string tournamentName = betCreateDTO.TournamentName; DateTime dateOfEvent = betCreateDTO.DateOfEvent; List <ParticipantBaseDTO> participants = betCreateDTO.EventParticipants; string coefficientDescription = betCreateDTO.CoefficientDescription; decimal sum = betCreateDTO.Sum; string clientPhoneNumber = betCreateDTO.ClientPhoneNumber; string bookmakerPhoneNumber = betCreateDTO.BookmakerPhoneNumber; if (success = ValidateBase(betCreateDTO, ref message) && Validate(betCreateDTO, ref message)) { try { IEnumerable <ParticipantEntity> participantEntities = participants .Select(p => unitOfWork.Participants.Get(p.Name, p.SportName, p.CountryName)); EventEntity eventEntity = unitOfWork .Events .Get(sportName, tournamentName, dateOfEvent, participantEntities); CoefficientEntity coefficientEntity = unitOfWork .Coefficients .Get(eventEntity.Id, coefficientDescription); if (coefficientEntity != null) { bool exists = unitOfWork.Bets.Exists(coefficientEntity.Id, clientPhoneNumber); if (!exists) { ClientEntity clientEntity = unitOfWork .Clients .Get(clientPhoneNumber); BookmakerEntity bookmakerEntity = unitOfWork .Bookmakers .Get(bookmakerPhoneNumber); BetEntity betEntity = new BetEntity { ClientId = clientEntity.Id, BookmakerId = bookmakerEntity.Id, CoefficientId = coefficientEntity.Id, RegistrationDate = DateTime.Now, Sum = sum }; unitOfWork.Bets.Add(betEntity); unitOfWork.Commit(); message = "Created new bet"; } else { message = "Such bet already exists"; success = false; } } else { message = "Such coefficient was not found"; success = false; } } catch (Exception ex) { message = ExceptionMessageBuilder.BuildMessage(ex); success = false; } } return(new ServiceMessage(message, success)); }