Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }