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); }
public ServiceMessage Update(CoefficientEditDTO coefficientEditDTO) { return(new ServiceMessage("No permissions", false)); }