private void Edit(CoefficientDisplayModel coefficientDisplayModel)
        {
            CoefficientInfoViewModel viewModel = new CoefficientInfoViewModel(coefficientDisplayModel);
            CoefficientInfoControl   control   = new CoefficientInfoControl(viewModel);
            Window window = WindowFactory.CreateByContentsSize(control);

            viewModel.CoefficientEdited += (s, e) =>
            {
                CoefficientEditModel coefficientEditModel = e.Coefficient;
                CoefficientEditDTO   coefficientEditDTO   = Mapper.Map <CoefficientEditModel, CoefficientEditDTO>(coefficientEditModel);

                using (ICoefficientService service = factory.CreateCoefficientService())
                {
                    ServiceMessage serviceMessage = service.Update(coefficientEditDTO);
                    RaiseReceivedMessageEvent(serviceMessage);

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

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

            if (coefficientEditDTO.Value <= 0 || coefficientEditDTO.NewValue <= 0)
            {
                message = "Value must be higher than 0";
                isValid = false;
            }
            else if (String.IsNullOrEmpty(coefficientEditDTO.Description))
            {
                message = "Coefficient must have a description";
                isValid = false;
            }

            return(isValid);
        }
示例#4
0
 public ServiceMessage Update(CoefficientEditDTO coefficientEditDTO)
 {
     return(new ServiceMessage("No permissions", false));
 }