/// <summary> /// Constructor. /// </summary> /// <param name="service">The service which provides features.</param> /// <param name="firstAccess">True if the user access for the first time, false otherwise.</param> public UIFeatures(WService service, bool firstAccess) { _service = service; InitializeComponent(); Logo.Source = new BitmapImage(new Uri(Setting.Default.ProxyRoot + _service.Image)); //load the settings foreach (WFeature item in UIController.Proxy.GetChosenFeatures(UIController.MyProfile.Username, UIController.Password, _service.Id)) { CheckBox checkBox = new CheckBox(); checkBox.Name = item.Name; checkBox.Content = item.Description; checkBox.Margin = new Thickness(5, 2, 5, 2); if (item.IsChosen || firstAccess) checkBox.IsChecked = true; SettingsList.Children.Add(checkBox); } }
/// <summary> /// Constructor. /// </summary> /// <param name="service">Social network service interface reference.</param> public UIService(WService service) { Contract.Requires(service != null); InitializeComponent(); Service = service; Title.Text = Service.Name; Logo.Source = new BitmapImage(new Uri(Setting.Default.ProxyRoot + Service.Image)); if (Service.Registered) { ToolTip = "Select " + Service.Name + " features"; Active.Fill = new SolidColorBrush(Color.FromRgb(0, 192, 0)); } else { ToolTip = "Subscribe to " + Service.Name; Active.Fill = new SolidColorBrush(Color.FromRgb(192, 0, 0)); } }
/// <summary> /// Convert a ServiceInstance (used for the database) in a WService (used for the web). /// </summary> /// <param name="db">Database connector data context.</param> /// <param name="user">User that requires the conversion.</param> /// <param name="serviceInstance">The ServiceInstance to convert.</param> /// <param name="calculateFeature">True if you need to have all the information about the User, false otherwise.</param> /// <returns>A WService.</returns> public static WService ServiceInstanceToWService(ConnectorDataContext db, User user, ServiceInstance serviceInstance, bool calculateFeature) { WService result = null; if (calculateFeature) { bool isRegistered = false; Stopwatch w = Stopwatch.StartNew(); IEnumerable<ServiceInstance> myServices = db.Registrations.Where(r => r.user == user.id).Select(r => r.ServiceInstance); w.Stop(); ILog log = LogManager.GetLogger("QueryLogger"); log.Info(" Elapsed time: " + w.Elapsed + ", user id: " + user.id + ", select all service instances of an user"); if (myServices.Contains(serviceInstance)) isRegistered = true; List<FeaturesType> privateFeatures = ServiceFactory.getService(serviceInstance.Service.name).GetPrivateFeatures(); bool requireOAuth = false; int oauthVersion = 0; if (privateFeatures.Contains(FeaturesType.OAuth1)) { requireOAuth = true; oauthVersion = 1; } else if (privateFeatures.Contains(FeaturesType.OAuth2)) { requireOAuth = true; oauthVersion = 2; } bool requireTFSAuthentication = false; bool requireTFSDomain = false; if (privateFeatures.Contains(FeaturesType.TFSAuthenticationWithDomain)) { requireTFSAuthentication = true; requireTFSDomain = true; } else if (privateFeatures.Contains(FeaturesType.TFSAuthenticationWithoutDomain)) { requireTFSAuthentication = true; requireTFSDomain = false; } result = new WService() { Id = serviceInstance.id, Name = serviceInstance.name, Host = serviceInstance.host, BaseService = serviceInstance.Service.name, Image = serviceInstance.Service.image, Registered = isRegistered, RequireOAuth = requireOAuth, OAuthVersion = oauthVersion, RequireTFSAuthentication = requireTFSAuthentication, RequireTFSDomain = requireTFSDomain }; } else { result = new WService() { Id = serviceInstance.id, Name = serviceInstance.name, BaseService = serviceInstance.Service.name, Image = serviceInstance.Service.image }; } return result; }
/// <summary> /// Convert a ServiceInstance (used for the database) in a WService (used for the web). /// </summary> /// <param name="db">Database connector data context.</param> /// <param name="user">User that requires the conversion.</param> /// <param name="serviceInstance">The ServiceInstance to convert.</param> /// <param name="calculateFeature">True if you need to have all the information about the User, false otherwise.</param> /// <returns>A WService.</returns> public static WService ServiceInstanceToWService(SocialTFSEntities db, User user, ServiceInstance serviceInstance, bool calculateFeature) { WService result = null; if (calculateFeature) { bool isRegistered = false; IEnumerable<ServiceInstance> myServices = db.Registration.Where(r => r.pk_fk_user == user.pk_id).Select(r => r.ServiceInstance); if (myServices.Contains(serviceInstance)) isRegistered = true; List<FeaturesType> privateFeatures = ServiceFactory.getService(serviceInstance.Service.name).GetPrivateFeatures(); bool requireOAuth = false; int oauthVersion = 0; if (privateFeatures.Contains(FeaturesType.OAuth1)) { requireOAuth = true; oauthVersion = 1; } else if (privateFeatures.Contains(FeaturesType.OAuth2)) { requireOAuth = true; oauthVersion = 2; } bool requireTFSAuthentication = false; bool requireTFSDomain = false; if (privateFeatures.Contains(FeaturesType.TFSAuthenticationWithDomain)) { requireTFSAuthentication = true; requireTFSDomain = true; } else if (privateFeatures.Contains(FeaturesType.TFSAuthenticationWithoutDomain)) { requireTFSAuthentication = true; requireTFSDomain = false; } result = new WService() { Id = serviceInstance.pk_id, Name = serviceInstance.name, Host = serviceInstance.host, BaseService = serviceInstance.Service.name, Image = serviceInstance.Service.image, Registered = isRegistered, RequireOAuth = requireOAuth, OAuthVersion = oauthVersion, RequireTFSAuthentication = requireTFSAuthentication, RequireTFSDomain = requireTFSDomain }; } else { result = new WService() { Id = serviceInstance.pk_id, Name = serviceInstance.name, BaseService = serviceInstance.Service.name, Image = serviceInstance.Service.image }; } return result; }