Example #1
0
        private void Edit(BetDisplayModel betDisplayModel)
        {
            BetInfoViewModel viewModel = new BetInfoViewModel(betDisplayModel);
            BetInfoControl   control   = new BetInfoControl(viewModel);
            Window           window    = WindowFactory.CreateByContentsSize(control);

            viewModel.BetEdited += (s, e) =>
            {
                BetEditModel betEditModel = e.Bet;
                BetEditDTO   betEditDTO   = Mapper.Map <BetEditModel, BetEditDTO>(betEditModel);

                using (IBetService service = factory.CreateBetService())
                {
                    ServiceMessage serviceMessage = service.Update(betEditDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

                    if (serviceMessage.IsSuccessful)
                    {
                        window.Close();
                        Notify();
                    }
                }
            };

            window.Show();
        }
        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));
        }
        private bool Validate(BetEditDTO betEditDTO, ref string message)
        {
            bool isValid = true;

            if (betEditDTO.Sum <= 0)
            {
                message = "Invalid sum: must be more then 0";
                isValid = false;
            }

            return(isValid);
        }
Example #4
0
 public ServiceMessage Update(BetEditDTO betEditDTO)
 {
     return(new ServiceMessage("No permissions", false));
 }