Пример #1
0
        public UIElement GetAddElement()
        {
            DataServiceMessage <string> bookmakerServiceMessage;
            DataServiceMessage <IEnumerable <ClientDisplayDTO> >      clientServiceMessage;
            DataServiceMessage <IEnumerable <string> >                sportServiceMessage;
            DataServiceMessage <IEnumerable <TournamentDisplayDTO> >  tournamentServiceMessage;
            DataServiceMessage <IEnumerable <EventDisplayDTO> >       eventServiceMessage;
            DataServiceMessage <IEnumerable <CoefficientDisplayDTO> > coefficientServiceMessage;

            using (IBookmakerService service = factory.CreateBookmakerService())
            {
                bookmakerServiceMessage = service.GetLoggedInBookmakersPhoneNumber();
                RaiseReceivedMessageEvent(bookmakerServiceMessage);
            }
            using (IClientService service = factory.CreateClientService())
            {
                clientServiceMessage = service.GetAll();
                RaiseReceivedMessageEvent(clientServiceMessage);
            }
            using (ISportService service = factory.CreateSportService())
            {
                sportServiceMessage = service.GetAll();
                RaiseReceivedMessageEvent(sportServiceMessage);
            }
            using (ITournamentService service = factory.CreateTournamentService())
            {
                tournamentServiceMessage = service.GetAll();
                RaiseReceivedMessageEvent(tournamentServiceMessage);
            }
            using (IEventService service = factory.CreateEventService())
            {
                eventServiceMessage = service.GetAll();
                RaiseReceivedMessageEvent(eventServiceMessage);
            }
            using (ICoefficientService service = factory.CreateCoefficientService())
            {
                coefficientServiceMessage = service.GetAll();
                RaiseReceivedMessageEvent(coefficientServiceMessage);
            }

            bool success =
                bookmakerServiceMessage.IsSuccessful &&
                clientServiceMessage.IsSuccessful &&
                sportServiceMessage.IsSuccessful &&
                tournamentServiceMessage.IsSuccessful &&
                eventServiceMessage.IsSuccessful &&
                coefficientServiceMessage.IsSuccessful;

            UIElement element;

            if (success)
            {
                string bookmakerPhoneNumber = bookmakerServiceMessage.Data;
                IEnumerable <ClientDisplayModel> clients = clientServiceMessage
                                                           .Data
                                                           .Select(client => Mapper.Map <ClientDisplayDTO, ClientDisplayModel>(client));
                IEnumerable <string> sports = sportServiceMessage.Data;
                IEnumerable <TournamentDisplayModel> tournaments = tournamentServiceMessage
                                                                   .Data
                                                                   .Select(tournament => Mapper.Map <TournamentDisplayDTO, TournamentDisplayModel>(tournament));
                IEnumerable <EventDisplayModel> events = eventServiceMessage
                                                         .Data
                                                         .Select(_event => Mapper.Map <EventDisplayDTO, EventDisplayModel>(_event));
                IEnumerable <CoefficientDisplayModel> coefficients = coefficientServiceMessage
                                                                     .Data
                                                                     .Select(coefficient => Mapper.Map <CoefficientDisplayDTO, CoefficientDisplayModel>(coefficient));

                element = Add(bookmakerPhoneNumber, clients, sports, tournaments, events, coefficients);
            }
            else
            {
                List <ServiceMessage> messages = new List <ServiceMessage>()
                {
                    bookmakerServiceMessage,
                    clientServiceMessage,
                    sportServiceMessage,
                    tournamentServiceMessage,
                    eventServiceMessage,
                    coefficientServiceMessage
                };

                ErrorViewModel viewModel = new ErrorViewModel(messages);
                ErrorControl   control   = new ErrorControl(viewModel);

                element = control;
            }

            return(element);
        }