// GET: ServiceConnection public ActionResult Index(int?userId) { Session["CurrentUserId"] = userId; if (!userId.HasValue) { return(HttpNotFound()); } var userChannels = userChannelSerivce.FindUserChannels(userId.Value).Where(channel => channel.IsActive); if (userChannels.Any()) { viewModel = GenerateServiceConnectionVM(userChannels); } else { viewModel = new ServiceConnectionViewModel(); } return(View(viewModel)); }
private ServiceConnectionViewModel GenerateServiceConnectionVM(IEnumerable <UserChannel> userChannels) { //get channels' Ids var channelMagento = userChannels.SingleOrDefault(channel => channel.ChannelType == Shared.Enums.ChannelType.Magento); var channelEbay = userChannels.SingleOrDefault(channel => channel.ChannelType == Shared.Enums.ChannelType.Ebay); var channelEmail = userChannels.SingleOrDefault(channel => channel.ChannelType == Shared.Enums.ChannelType.Email); //assign channels into viewmodel ServiceConnectionViewModel model = new ServiceConnectionViewModel(); if (channelMagento != null) { model.channelMagento = mapper.Map <ChannelMagentoViewModel>( channelMagentoService.GetChannel(channelMagento.ChannelId) ); model.channelMagento.IsConnected = magentoService.IsConnected(model.channelMagento.Host, model.channelMagento.Username, model.channelMagento.Password); } if (channelEbay != null) { model.channelEbay = mapper.Map <ChannelEbayViewModel>( channelEbayService.GetChannel(channelEbay.ChannelId) ); var validateToken = ebayService.IsValidToken(model.channelEbay.Token); if (!validateToken.HasError && validateToken.Result) { model.channelEbay.IsConnected = true; } } if (channelEmail != null) { var channelEmailModel = channelEmailService.GetChannel(channelEmail.ChannelId); model.channelEmail = mapper.Map <ChannelEmailViewModel>(channelEmailModel); var token = mapper.Map <SmartHub.Channels.Gmail.Models.Token>(channelEmailModel); model.channelEmail.IsConnected = gmailService.IsConnected(token); } return(model); }