示例#1
0
        public Main()
        {
            this.SubtitleClientFactory = new SubtitleClientFactory();
            this.MainPresenter         = new MainPresenter(this);

            InitializeComponent();
        }
        private void OnCommandLoadHealth(object sender, EventArgs e)
        {
            ITeamHealthView  view      = base._view as ITeamHealthView;
            ITeamHealthModel model     = base._model as ITeamHealthModel;
            IMainPresenter   presenter = SimpleResolver.Instance.Get <IMainPresenter>();

            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Pulling health report stats...");
                }, null);
            }
            Thread healthrefresh = new Thread(() => {
                if (!string.IsNullOrEmpty(model.AccessToken))
                {
                    this.RefreshHealth(model, presenter);
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate {
                            // update result and update view with model.
                            view.LoadViewHealthItems(model);
                            presenter.UpdateProgressInfo("Health stats refreshed at [" + model.RefreshDateTime.ToString() + "]");
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                        }, null);
                    }
                }
            });

            healthrefresh.Start();
        }
        public void TestInitialise()
        {
            _OriginalFactory = Factory.TakeSnapshot();

            _ConfigurationStorage = TestUtilities.CreateMockSingleton<IConfigurationStorage>();
            _Configuration = new Configuration();
            _ConfigurationStorage.Setup(cs => cs.Load()).Returns(_Configuration);

            _Log = TestUtilities.CreateMockSingleton<ILog>();
            _HeartbeatService = TestUtilities.CreateMockSingleton<IHeartbeatService>();
            _WebServer = new Mock<IWebServer>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties();
            _AutoConfigWebServer = TestUtilities.CreateMockSingleton<IAutoConfigWebServer>();
            _AutoConfigWebServer.Setup(s => s.WebServer).Returns(_WebServer.Object);
            _UPnpManager = new Mock<IUniversalPlugAndPlayManager>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties();
            _NewVersionChecker = TestUtilities.CreateMockSingleton<INewVersionChecker>();
            _HeartbeatTick = new EventRecorder<EventArgs>();
            _BaseStationAircraftList = new Mock<IBaseStationAircraftList>();
            _PluginManager = TestUtilities.CreateMockSingleton<IPluginManager>();
            _RebroadcastServerManager = TestUtilities.CreateMockSingleton<IRebroadcastServerManager>();

            _SelfConfiguringListener = TestUtilities.CreateMockSingleton<IAutoConfigListener>();
            _Listener = new Mock<IListener>(MockBehavior.Default) { DefaultValue = DefaultValue.Mock };
            _SelfConfiguringListener.Setup(r => r.Listener).Returns(_Listener.Object);

            _Presenter = Factory.Singleton.Resolve<IMainPresenter>();

            _Provider = new Mock<IMainPresenterProvider>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties();
            _Provider.Setup(p => p.UtcNow).Returns(DateTime.UtcNow);
            _Presenter.Provider = _Provider.Object;

            _View = new Mock<IMainView>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties();
        }
示例#4
0
        public MainForm()
        {
            _presenter      = new MainPresenter(this);
            this.KeyPreview = true;
            InitializeComponent();
            //pictureBoxContainer
            _pContainer            = new Panel();
            _pContainer.AutoScroll = true;
            _pContainer.Dock       = DockStyle.Fill;
            dualSplitterContainer.MainPanel.Controls.Add(_pContainer);
            //pictureBox
            _pictureBox = new PictureBox();
            _pContainer.Controls.Add(_pictureBox);
            _pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
            _pictureBox.Location = Point.Empty;
            _pictureBox.Anchor   = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
            //right panel
            dualSplitterContainer.RightPanel.BackColor = _backgroundColor;
            //left panel
            dualSplitterContainer.LeftPanel.BackColor = _backgroundColor;
            //splitters
            dualSplitterContainer.SplitterColor = _splitterColor;
            dualSplitterContainer.SplitterWidth = 10;
            //drawingPool
            _drawingPool = new DrawingPool();
            dualSplitterContainer.DrawingPool = _drawingPool;

            dualSplitterContainer.FinishedDrawing += OnDSCFinishedDrawing;
            dualSplitterContainer.Init();
        }
示例#5
0
 public MainWindow(ILogger <MainWindow> logger, IMainPresenter presenter)
 {
     InitializeComponent();
     _logger   = logger;
     Presenter = presenter;
     Setup();
 }
示例#6
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            handler       = new Handler();
            mainPresenter = new MainPresenter(this);

            toolbar       = FindViewById <Toolbar>(Resource.Id.toolbar);
            toolbar.Title = Resources.GetString(Resource.String.daily);
            SetSupportActionBar(toolbar);

            fm = SupportFragmentManager;

            bottomBar = BottomBar.AttachShy((CoordinatorLayout)FindViewById(Resource.Id.coordinatorLayout), FindViewById(Resource.Id.swipeRefreshLayout), bundle);

            bottomBar.UseFixedMode();

            bottomBar.SetItems(Resource.Menu.bottombar_menu);
            bottomBar.SetOnMenuTabClickListener(this);

            MobclickAgent.SetDebugMode(true);
            MobclickAgent.OpenActivityDurationTrack(false);
            MobclickAgent.SetScenarioType(this, MobclickAgent.EScenarioType.EUmNormal);

            updManager = IFlytekUpdate.GetInstance(this);
            updManager.SetDebugMode(true);
            updManager.SetParameter(UpdateConstants.ExtraWifionly, "true");
            updManager.SetParameter(UpdateConstants.ExtraNotiIcon, "true");
            updManager.SetParameter(UpdateConstants.ExtraStyle, UpdateConstants.UpdateUiDialog);
            updManager.AutoUpdate(this, this);
        }
示例#7
0
        static void Main()
        {
            var unityContainer = new UnityContainer();

            unityContainer
            .RegisterType <IMainView, MainView>(new ContainerControlledLifetimeManager())
            .RegisterType <IMainPresenter, MainPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IErrorMessageView, ErrorMessageView>()
            .RegisterType <IAddStudent, AddStudent>()
            .RegisterType <IStudentService, StudentService>(new ContainerControlledLifetimeManager())
            .RegisterType <ITeacherService, TeacherService>(new ContainerControlledLifetimeManager())
            .RegisterType <IAppointmentService, AppointmentService>(new ContainerControlledLifetimeManager())
            .RegisterType <IAddStudentPresenter, AddStudentPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IStudentsGridViewPresenter, StudentsGridViewPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IStudentsListViewPresenter, StudentsListViewPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IChartViewPresenter, ChartViewPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <ISchedulerViewPresenter, SchedulerViewPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IReportViewPresenter, ReportViewPresenter>(new ContainerControlledLifetimeManager())
            .RegisterType <IUnitOfWork, UnitOfWork>(new ContainerControlledLifetimeManager())
            .RegisterType <IModelDataAnnotationCheck, ModelDataAnnotationCheck>(new ContainerControlledLifetimeManager())
            .RegisterType <IUniversityLocalContext, UniversityLocalContext>(new ContainerControlledLifetimeManager())
            .RegisterType <IStudentDbContext, StudentDbContext>(new ContainerControlledLifetimeManager());

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            IMainPresenter mainPresenter = unityContainer.Resolve <MainPresenter>();

            IMainView mainView = mainPresenter.GetMainView();

            Application.Run((MainView)mainView);
        }
示例#8
0
        static void Main()
        {
            // -- config logger
            log4net.Config.XmlConfigurator.Configure();

            // -- config container
            var builder = new ContainerBuilder();

            // -- repositoy
            builder.RegisterType <PortfolioDbContext>().As <DbContext>();
            builder.RegisterType <LiveDataRepository>().As <ILiveDataRepository>();
            // -- service
            builder.RegisterType <PortfolioService>().As <IPortfolioService>();
            builder.RegisterType <UserService>().As <IUserService>();
            // -- presentation
            builder.RegisterType <MainView>().As <IMainView>();
            builder.RegisterType <MainPresenter>().As <IMainPresenter>();
            var container = builder.Build();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            IMainPresenter mainPresenter = container.Resolve <IMainPresenter>();
            IMainView      mainView      = mainPresenter.GetMainView();

            Application.Run((MainView)mainView);
        }
示例#9
0
        private string DownloadPaperDocs(IPaperModel model, IPaperView view, IMainPresenter presenter)
        {
            string errorMessage    = string.Empty;
            string outputFolder    = view.OutputFolder;
            string fileAccessToken = ApplicationResource.DefaultAccessToken;

            IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);

            service.DownloadPaperDocUrl = ApplicationResource.ActionDownloadPaperDocs;
            service.UserAgentVersion    = ApplicationResource.UserAgent;
            IServiceResponse response = null;

            foreach (PaperListViewItemModel item in model.Paper)
            {
                if (item.IsChecked)
                {
                    response = service.DownloadPaperDoc(item.MemberId, item.PaperId, outputFolder, item.PaperName, fileAccessToken);

                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            presenter.UpdateProgressInfo(string.Format("Downloaded Paper doc [" + item.PaperName + "]"));
                        }, null);
                    }
                }
            }
            return(errorMessage);
        }
 public OpenProjectForm(IMainPresenter presenter)
 {
     this.presenter = presenter;
     repository = presenter.Repository;
     InitializeComponent();
     BindProjectList();
 }
        private void OnCommandDeleteMemberGroup(object sender, System.EventArgs e)
        {
            IGroupsView    view      = base._view as IGroupsView;
            IGroupsModel   model     = base._model as IGroupsModel;
            IMainPresenter presenter = SimpleResolver.Instance.Get <IMainPresenter>();
            string         email     = view.UserEmail;

            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }
            Thread deletemembergroup = new Thread(() => {
                if (string.IsNullOrEmpty(model.AccessToken))
                {
                    SyncContext.Post(delegate {
                        presenter.EnableControl(true);
                        presenter.ActivateSpinner(false);
                        presenter.UpdateProgressInfo("");
                    }, null);
                }
                else
                {
                    if (email.Contains(","))
                    {
                        char delimiter  = ',';
                        string[] emails = email.Split(delimiter);
                        foreach (string newEmail in emails)
                        {
                            this.DeleteMemberGroup(model, newEmail, presenter);
                        }
                    }
                    if (!email.Contains(","))
                    {
                        this.DeleteMemberGroup(model, email, presenter);
                    }

                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            // update result and update view.
                            PresenterBase.SetViewPropertiesFromModel <IGroupsView, IGroupsModel>(
                                ref view, model
                                );
                            // update result and update view.
                            view.RenderGroupList();
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                            presenter.UpdateProgressInfo("Completed.");
                        }, null);
                    }
                }
            });

            deletemembergroup.Start();
        }
示例#12
0
        public MainForm()
        {
            InitializeComponent();

            ILoginPresenter loginPresenter = new LoginPresenter();

            mainPresenter = new MainPresenter();
            LoginForm loginForm = new LoginForm();

            loginPresenter.AttachView(loginForm);
            mainPresenter.AttachView(this);
            DialogResult loginResult = loginForm.ShowDialog();

            switch (loginResult)
            {
            case DialogResult.OK:
                mainPresenter.LoginSuccess(loginPresenter);
                break;

            case DialogResult.Cancel:
                MessageBox.Show("Ни хочиш нинада!!!111");
                this.Close();
                break;

            default:
                MessageBox.Show("WAT?");
                this.Close();
                break;
            }
        }
        private void OnCommandAccept(object sender, System.EventArgs e)
        {
            RegistryKey key = RegistryUtils.CreateKey(ApplicationResource.RegistryEntryPoint);

            RegistryUtils.SetKeyValue(key, ApplicationResource.RegistryKey, bool.TrueString);

            IView view = base._view;

            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    // hide legal view
                    view.HideView();

                    // show main view
                    IMainPresenter presenter = SimpleResolver.Instance.Get <IMainPresenter>(
                        new object[] {
                        new MainModel(), new MainView()
                    });
                    presenter.ShowView();
                }, null);
            }
            //now encrypt AppSettings to not make tokens visible (all appSettings encrypted)
            FileUtil.EncryptAppSettings("appSettings");
        }
        private string DeleteMemberGroup(IGroupsModel model, string email, IMainPresenter presenter)
        {
            string          errorMessage = string.Empty;
            IMemberServices service      = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);

            service.DeleteMemberGroupUrl = ApplicationResource.ActionDeleteMemberGroup;
            service.UserAgentVersion     = ApplicationResource.UserAgent;
            foreach (GroupListViewItemModel item in model.Groups.Where(m => m.IsChecked).ToList())
            {
                IServiceResponse response = service.DeleteMemberGroup(new MemberData()
                {
                    GroupId   = item.GroupId,
                    GroupName = item.GroupName
                }, email, model.AccessToken);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            presenter.UpdateProgressInfo(string.Format("Deleted user [" + email + "] from group [" + item.GroupName + "]"));
                        }, null);
                    }
                }
                else
                {
                    errorMessage = ErrorMessages.FAILED_TO_DELETE_MEMBER_FROM_GROUP;
                }
            }
            return(errorMessage);
        }
示例#15
0
        void SetupTestServices()
        {
            mainPresenter   = Substitute.For <IMainPresenter>();
            configPresenter = Substitute.For <IConfigPresenter>();

            serviceProvider = new TestServiceProvider(applicationController, mainPresenter, configPresenter);
        }
示例#16
0
        protected async override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);

            var fab           = FindViewById <FloatingActionButton>(Resource.Id.main_fab);
            var recView       = FindViewById <RecyclerView>(Resource.Id.main_recview);
            var layoutManager = new LinearLayoutManager(this);

            mainPresenter  = new MainPresenter(this);
            groupListNames = await mainPresenter.GetGroupsNames();

            recAdapter = new MainRecViewAdapter(groupListNames, true);

            recAdapter.ItemClick     += OnItemClick;
            recAdapter.ItemLongClick += OnItemLongClick;
            recView.SetAdapter(recAdapter);
            recView.SetLayoutManager(layoutManager);

            DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recView.Context,
                                                                                    layoutManager.Orientation);

            recView.AddItemDecoration(dividerItemDecoration);

            fab.Click += fabClicked;
        }
    static void Main(string[] args)
    {
        IApplicationController applicationController = new ApplicationController(new ServicesContainerAdapter());

        applicationController


        //RegisterView
        .RegisterView <IMainView, MainForm>()
        .RegisterView <IChildView, ChildForm>()


        //RegisterPresenter
        .RegisterPresenter <IMainPresenter, MainPresenter>()
        .RegisterPresenter <IChildPresenter, ChildPresenter>()


        //RegisterController
        .RegisterController <IMainControl, MainControl>()
        .RegisterController <IChildControl, ChildControl>();



        IMainPresenter mainPresenter = applicationController.Resolve <IMainPresenter>();

        mainPresenter.Init();

        Application.Run((Form)mainPresenter.FormObject);
    }
        private void DumpDevices(IDevicesModel model, IMainPresenter presenter) {
            if (SyncContext != null) {
                SyncContext.Post(delegate {
                    presenter.UpdateProgressInfo("Preparing Device Removal...");
                }, null);
            }

            int counter = 0;
            int total = model.DeviceList.Where(d => d.IsChecked && !string.IsNullOrEmpty(d.SessionId)).ToList().Count;
            IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
            service.DumpDevicesUrl = ApplicationResource.ActionDumpDevices;
            service.UserAgentVersion = ApplicationResource.UserAgent;

            foreach (DeviceListViewItemModel lvItem in model.DeviceList) {
                if (lvItem.IsChecked && !string.IsNullOrEmpty(lvItem.SessionId)) {
                    // notify progress
                    if (SyncContext != null) {
                        SyncContext.Post(delegate {
                            presenter.UpdateProgressInfo(string.Format("Removing device: {0}/{1}", ++counter, total));
                        }, null);
                    }

                    service.DumpDevices(
                        new MemberData() {
                            SessionId = lvItem.SessionId,
                            MemberId = lvItem.TeamId,
                            ClientType = lvItem.ClientType
                        },
                        model.UserAccessToken
                    );
                }
            }
        }
示例#19
0
        /// <summary>
        /// Called when the form is ready for use but not yet on screen.
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (!DesignMode)
            {
                toolStripDropDownButtonInvalidPluginCount.Visible    = false;
                toolStripDropDownButtonLaterVersionAvailable.Visible = false;

                Localise.Form(this);
                Localise.ToolStrip(contextMenuStripNotifyIcon);
                notifyIcon.Text = Strings.VirtualRadarServer;

                _OnlineHelp = new OnlineHelpHelper(this, OnlineHelpAddress.WinFormsMainDialog);

                _Presenter = Factory.Singleton.Resolve <IMainPresenter>();
                _Presenter.Initialise(this);
                _Presenter.UPnpManager = _UPnpManager;

                var runtimeEnvironment = Factory.Singleton.ResolveSingleton <IRuntimeEnvironment>();
                if (runtimeEnvironment.Is64BitProcess)
                {
                    Text = String.Format("{0} ({1})", Text, Strings.Title64Bit);
                }
            }
        }
示例#20
0
        public UsuariosPresenter(IMainPresenter mainPresenter, ISessionManager sessionManager)
        {
            this.mainPresenter = mainPresenter;
            this.sessionManager = sessionManager;

            view = CreateView();
        }
        void SetupTestServices()
        {
            mainPresenter = Substitute.For<IMainPresenter>();
            configPresenter = Substitute.For<IConfigPresenter>();

            serviceProvider = new TestServiceProvider(applicationController, mainPresenter, configPresenter);
        }
        private bool SearchFiles(
            IMemberServices service,
            string memberId,
            ITextSearchModel model,
            string email,
            IMainPresenter presenter) {
            bool filesAdded = false;
            bool SuppressStatus = ApplicationResource.SuppressFilenamesInStatus;
            try {
                service.SearchFilesUrl = ApplicationResource.ActionFileSearch;
                service.UserAgentVersion = ApplicationResource.UserAgent;
                IDataResponse response = service.SearchFiles(new MemberData() {
                    SearchText = model.QueryString,
                    SearchLimit = ApplicationResource.SearchFileCountLimit,//model.SearchResultsLimit,
                    SearchMode = model.GetSearchModeForService(),
                    MemberId = memberId
                }, model.AccessToken);

                if (response.StatusCode == System.Net.HttpStatusCode.OK) {
                    if (response.Data != null) {
                        string data = response.Data.ToString();
                        dynamic jsonDataSearch = JsonConvert.DeserializeObject<dynamic>(data);
                        if (jsonDataSearch["matches"] != null &&
                            jsonDataSearch["matches"].ToString() != "[]") {
                            int matchCount = jsonDataSearch["matches"].Count;
                            for (int j = 0; j < matchCount; j++) {
                                string pathLower = jsonDataSearch["matches"][j]["metadata"]["path_lower"];
                                // update model
                                MemberListViewItemModel item = new MemberListViewItemModel() {
                                    Email = email,
                                    Path = pathLower,
                                    MemberId = memberId
                                };
                                // add searched members to list.
                                model.MemberList.Add(item);

                                SyncContext.Post(delegate {
                                    if (!SuppressStatus)
                                    {
                                        presenter.UpdateProgressInfo(string.Format("Member: {0} File : {1}", email, item.Path));
                                    }
                                    else
                                    {
                                        presenter.UpdateProgressInfo(string.Format("Member: {0} File : Suppressing filename status...", email));
                                    }
                                }, null);
                            }

                            if (matchCount > 0) {
                                filesAdded = true;
                            }
                        }
                    }
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }
            return filesAdded;
        }
示例#23
0
        public MainForm()
        {
            InitializeComponent();

            mainPresenter = new MainPresenter {MainView = this};

            mainPresenter.CreateWindow(string.Empty);
        }
示例#24
0
        public MainWindow()
        {
            InitializeComponent();

            packetView    = new PacketView();
            this.Content  = packetView;
            mainPresenter = new MainPresenter(this);
        }
示例#25
0
文件: FormMain.cs 项目: crt106/WhuGIS
 public FormMain()
 {
     InitializeComponent();
     presenter = new Presenter(this);
     //赋值到全局变量
     ApplicationV.GlobalMapControl = this.Map;
     ApplicationV.GlobalTocControl = this.TocControl;
     _Instance = this;
 }
示例#26
0
        private void OnCommandMemberSearch(object sender, System.EventArgs e)
        {
            ITextSearchModel model     = base._model as ITextSearchModel;
            ITextSearchView  view      = base._view as ITextSearchView;
            IMainPresenter   presenter = SimpleResolver.Instance.Get <IMainPresenter>();

            // notify view to mark start of process
            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }

            // TODO: to improve stability, we will need to ensure to kill
            // thread when user exits application while thread is running for REST service call
            Thread memberSearch = new Thread(() => {
                if (string.IsNullOrEmpty(model.QueryString))
                {
                    SyncContext.Post(delegate {
                        presenter.ShowErrorMessage(ErrorMessages.MISSING_QUERYSTRING, ErrorMessages.DLG_DEFAULT_TITLE);
                        presenter.UpdateProgressInfo("");
                        presenter.ActivateSpinner(false);
                        presenter.EnableControl(true);
                    }, null);
                }
                else if (string.IsNullOrEmpty(model.AccessToken))
                {
                    SyncContext.Post(delegate {
                        presenter.ShowErrorMessage(ErrorMessages.INVALID_TOKEN, ErrorMessages.DLG_DEFAULT_TITLE);
                        presenter.UpdateProgressInfo("");
                        presenter.ActivateSpinner(false);
                        presenter.EnableControl(true);
                    }, null);
                }
                else
                {
                    // perform search
                    this.SearchMembers(model);
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate {
                            // update result and update view.
                            view.RenderMembersSearchResult();
                            presenter.UpdateProgressInfo("Completed");
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                        }, null);
                    }
                }
            });

            // start async search
            memberSearch.Start();
        }
        private void OnCommandListMembers(object sender, EventArgs e)
        {
            IDumpUserContentView  view      = base._view as IDumpUserContentView;
            IDumpUserContentModel model     = base._model as IDumpUserContentModel;
            IMainPresenter        presenter = SimpleResolver.Instance.Get <IMainPresenter>();

            // notify view to mark start of process
            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }

            // TODO: to improve stability, we will need to ensure to kill
            // thread when user exits application while thread is running for REST service call
            Thread memberSearch = new Thread(() => {
                if (string.IsNullOrEmpty(model.UserAccessToken))
                {
                    SyncContext.Post(delegate {
                        presenter.ShowErrorMessage(ErrorMessages.INVALID_TOKEN, ErrorMessages.DLG_DEFAULT_TITLE);
                        presenter.UpdateProgressInfo("");
                        presenter.ActivateSpinner(false);
                        presenter.EnableControl(true);
                    }, null);
                }
                else
                {
                    // perform search
                    this.SearchMembers(model, presenter);
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate {
                            // update result and update view.
                            PresenterBase.SetViewPropertiesFromModel <IDumpUserContentView, IDumpUserContentModel>(
                                ref view, model
                                );
                            view.RenderMembersSearchResult();
                            if (model.MemberList.Count > 0)
                            {
                                view.LazyInitializeContextMenu();
                                view.EnableContextMenuItems(true);
                                //view.EnableDumpControl(true);
                            }
                            presenter.UpdateProgressInfo("Completed");
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                        }, null);
                    }
                }
            });

            // start async search
            memberSearch.Start();
        }
 public SmallSearchPresenter(ISmallSearchView view, IMainPresenter presToAdd)
 {
     ComposContainer.Instance().Compose(this);
     _view                  = view;
     _presToAdd             = presToAdd;
     _view.CreatePresenter += () => CreatePresenter();
     _view.GetCameras      += SetCameraList;
     SetCameraList();
 }
示例#29
0
        private void SearchMembers(ITextSearchModel model)
        {
            if (!string.IsNullOrEmpty(model.QueryString) &&
                !string.IsNullOrEmpty(model.AccessToken))
            {
                MemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                service.ListMembersUrl   = ApplicationResource.ActionListMembers;
                service.UserAgentVersion = ApplicationResource.UserAgent;
                IDataResponse response = service.ListMembers(new MemberData()
                {
                    SearchLimit = model.SearchResultsLimit
                }, model.AccessToken);
                IMainPresenter presenter = SimpleResolver.Instance.Get <IMainPresenter>();

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (response.Data != null)
                    {
                        string  data     = response.Data.ToString();
                        dynamic jsonData = JsonConvert.DeserializeObject <dynamic>(data);

                        // clear existing data first
                        model.MemberList.Clear();

                        int resultCount = jsonData["members"].Count;
                        for (int i = 0; i < resultCount; i++)
                        {
                            dynamic idObj    = jsonData["members"][i]["profile"]["team_member_id"];
                            dynamic emailObj = jsonData["members"][i]["profile"]["email"];
                            string  memberId = idObj.Value as string;
                            string  email    = emailObj.Value as string;

                            // update model
                            MemberListViewItemModel lvItem = new MemberListViewItemModel()
                            {
                                Email    = email,
                                MemberId = memberId
                            };

                            // perform file search
                            if (!SearchFiles(service, memberId, model, email, presenter))
                            {
                                model.MemberList.Add(lvItem);
                            }
                            SyncContext.Post(delegate {
                                presenter.UpdateProgressInfo(string.Format("Searching Content(s) From : {0}", email));
                            }, null);
                        }
                    }
                }
                else
                {
                    // TODO: Report error
                }
            }
        }
示例#30
0
        public DialogResult ShowView()
        {
            _ViewModel = new ViewModel(this);

            _Presenter = Factory.Singleton.Resolve <IMainPresenter>();
            _Presenter.Initialise(this);
            _Presenter.UPnpManager = _UPnpManager;

            return(DialogResult.OK);
        }
示例#31
0
        public ApplicationController(ILoginPresenter loginFormPresenter, IMessageService messageService,
                                     DatabaseContext dbContext, IMainPresenter mainFormPresenter)
        {
            MessageService = messageService;
            Context        = dbContext;

            LoginFormPresenter = loginFormPresenter;
            LoginFormPresenter.OnPresenterClosed += (Tuple <LoginAttemptResult, Employee> obj) =>
            {
                try
                {
                    LoginAttemptResult = obj.Item1;
                    if (LoginAttemptResult == LoginResults.Success)
                    {
                        User = new User(Context, obj.Item2);
                    }
                }
                catch (Exception e)
                {
                    MessageService.
                    ShowError(e.Message + " Программа не может продолжать свою работу.");
                    Environment.Exit(0);
                }
            };

            MainFormPresenter = mainFormPresenter;
            MainFormPresenter.PresenterClosed    += (reloginAttempt) => this.reloginAttempt = reloginAttempt;
            MainFormPresenter.EntityTypeReceived += (type) =>
            {
                var tablePresenter = (ITablePresenter)Scope.Resolve(type);
                tablePresenter.FormClosed += (entityType) => MainFormPresenter.EnableButtAfterFormClosure(entityType);

                tablePresenter.FillingRequired += (user, model, fillingType, presenterType) =>
                {
                    var fillingPresenter = (IFillingPresenter)Scope.Resolve(presenterType);
                    fillingPresenter.FillingCompleted += (fillType) => tablePresenter.ApplyFilling(fillingType);
                    fillingPresenter.Run(user, model, fillingType);
                    fillingPresenter.PresenterClosure += () => tablePresenter.EnableFormsButts();
                };

                tablePresenter.RequestSearchCriteria += (entityType) =>
                {
                    var searchPresenter = Scope.Resolve <ISearchPresenter>();

                    searchPresenter.ReturnSearchCriteria += (searchBy, searchValue) =>
                                                            tablePresenter.ApplySearchCriteria(searchBy, searchValue);
                    searchPresenter.PresenterClosure += () => tablePresenter.EnableFormsButts();

                    searchPresenter.Run(entityType);
                };

                tablePresenter.Run(User);
            };
            MainFormPresenter.InfoRequired += (infoType) => Scope.Resolve <IInfoPresenter>().Run(infoType);
        }
示例#32
0
        public void ResolvePresenters()
        {
            IoC            ioc       = new IoC();
            IMainPresenter presenter = ioc.Container.Resolve <IMainPresenter>();

            Assert.That(presenter, Is.Not.Null);
            Assert.That(presenter.MainView, Is.TypeOf <EditorForm>());

            Assert.That(ioc.Container.Resolve <IMainPresenter>(), Is.TypeOf <EditorPresenter>());
            Assert.That(ioc.Container.Resolve <EditorMenuPresenter>(), Is.Not.Null);
        }
        private void OnCommandSetFolderSyncSetting(object sender, System.EventArgs e)
        {
            ITeamFoldersView  view      = base._view as ITeamFoldersView;
            ITeamFoldersModel model     = base._model as ITeamFoldersModel;
            IMainPresenter    presenter = SimpleResolver.Instance.Get <IMainPresenter>();
            TeamFoldersModel  teamModel = view.GetTeamFolderIds();
            bool syncSetting            = view.SyncSetting;

            if (SyncContext != null)
            {
                SyncContext.Post(delegate
                {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }
            Thread setfoldersyncsetting = new Thread(() =>
            {
                if (string.IsNullOrEmpty(model.AccessToken))
                {
                    SyncContext.Post(delegate
                    {
                        presenter.EnableControl(true);
                        presenter.ActivateSpinner(false);
                        presenter.UpdateProgressInfo("");
                    }, null);
                }
                else
                {
                    foreach (TeamFoldersListViewItemModel lvItem in teamModel.TeamFolders)
                    {
                        this.SetDefaultSyncSetting(model, lvItem.TeamFolderId, syncSetting, presenter);
                    }
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            // update result and update view.
                            PresenterBase.SetViewPropertiesFromModel <ITeamFoldersView, ITeamFoldersModel>(
                                ref view, model
                                );
                            // update result and update view.
                            view.RenderTeamFoldersList();
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                            //presenter.UpdateProgressInfo("Completed.");
                        }, null);
                    }
                }
            });

            setfoldersyncsetting.Start();
        }
示例#34
0
        public MainForm(IMainPresenter mainPresenter)
        {
            this.InitializeComponent();

            this.mainPresenter      = mainPresenter;
            this.mainPresenter.View = this;

            this.InitializePictureBox();

            this.mainPresenter.CreateGraph();
        }
        private void OnCommandDumpFiles(object sender, EventArgs e)
        {
            IDumpUserContentView  view      = base._view as IDumpUserContentView;
            IDumpUserContentModel model     = base._model as IDumpUserContentModel;
            IMainPresenter        presenter = SimpleResolver.Instance.Get <IMainPresenter>();

            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }

            // TODO: to improve stability, we will need to ensure to kill
            // thread when user exits application while thread is running for REST service call
            Thread dumpFiles = new Thread(() => {
                if (string.IsNullOrEmpty(model.UserAccessToken))
                {
                    SyncContext.Post(delegate {
                        presenter.ShowErrorMessage(ErrorMessages.INVALID_TOKEN, ErrorMessages.DLG_DEFAULT_TITLE);
                        presenter.UpdateProgressInfo("");
                        presenter.ActivateSpinner(false);
                        presenter.EnableControl(true);
                    }, null);
                }
                else if (string.IsNullOrEmpty(model.OutputFolder))
                {
                    SyncContext.Post(delegate {
                        presenter.ShowErrorMessage(ErrorMessages.MISSING_OUTPUT_FOLDER, ErrorMessages.DLG_DEFAULT_TITLE);
                        presenter.UpdateProgressInfo("");
                        presenter.ActivateSpinner(false);
                        presenter.EnableControl(true);
                    }, null);
                }
                else
                {
                    this.DumpFiles(model, presenter);
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate {
                            // update result and update view.
                            presenter.UpdateProgressInfo("Completed");
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                        }, null);
                    }
                }
            });

            dumpFiles.Start();
        }
        public void Initialize(IPomodoroTimerServiceProvider serviceProvider)
        {
            this.serviceProvider = serviceProvider;

            mainPresenter = serviceProvider.GetMainPresenter();
            presenters.Add(mainPresenter);

            configPresenter = serviceProvider.GetConfigPresenter();
            presenters.Add(configPresenter);

            configPresenter.ExecuteConfiguring();
        }
示例#37
0
        public void Initialize(IPomodoroTimerServiceProvider serviceProvider)
        {
            this.serviceProvider = serviceProvider;

            mainPresenter = serviceProvider.GetMainPresenter();
            presenters.Add(mainPresenter);

            configPresenter = serviceProvider.GetConfigPresenter();
            presenters.Add(configPresenter);

            configPresenter.ExecuteConfiguring();
        }
示例#38
0
        private void OnCommandCancelSettings(object sender, System.EventArgs e)
        {
            ISettingsView  view      = base._view as ISettingsView;
            IMainPresenter presenter = SimpleResolver.Instance.Get <IMainPresenter>();

            if (SyncContext != null)
            {
                SyncContext.Post(delegate {
                    view.HideView();
                    presenter.UpdateProgressInfo("Settings Update Cancelled");
                }, null);
            }
        }
 public bool LoadInputFile(IProvisioningModel model, IMainPresenter presenter) {
     bool loaded = true;
     try {
         FileInfo fInfo = new FileInfo(model.InputFilePath);
         if (fInfo.Exists) {
             // try load.
             model.Members.Clear();
             CsvConfiguration config = new CsvConfiguration() {
                 HasHeaderRecord = false
             };
             using (CsvReader reader = new CsvReader(new StreamReader(fInfo.FullName), config)) {
                 while (reader.Read()) {
                     try {
                         MemberListViewItemModel lvItem = new MemberListViewItemModel() {
                             Email = reader.GetField<string>(0),
                             FirstName = reader.GetField<string>(1),
                             LastName = reader.GetField<string>(2),
                             IsChecked = true
                         };
                         model.Members.Add(lvItem);
                     } catch {
                         throw new InvalidDataException(ErrorMessages.INVALID_CSV_DATA);
                     }
                 }
                 if (model.Members.Any()) {
                     loaded = true;
                 }
             }
         } else {
             throw new InvalidDataException(ErrorMessages.MISSING_CSV_FILE);
         }
     } catch (Exception e) {
         // error message.
         SyncContext.Post(delegate {
             presenter.ShowErrorMessage(e.Message, ErrorMessages.DLG_DEFAULT_TITLE);
             presenter.UpdateProgressInfo("");
             presenter.ActivateSpinner(false);
             presenter.EnableControl(true);
         }, null);
     }
     return loaded;
 }
        private void GetTeamFolders(ITeamFoldersModel model, IMainPresenter presenter)
        {
            IMemberServices service = service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
            service.ListTeamFolderUrl = ApplicationResource.ActionListTeamFolder;
            service.UserAgentVersion = ApplicationResource.UserAgent;
            string fileAccessToken = ApplicationResource.DefaultAccessToken;
            IDataResponse response = service.ListTeamFolders(fileAccessToken);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                if (response.Data != null)
                {
                    string data = response.Data.ToString();
                    dynamic jsonData = JsonConvert.DeserializeObject<dynamic>(data);

                    // clear existing data first
                    model.TeamFolders.Clear();
                    //changed from entries to team_folders
                    int resultCount = jsonData["team_folders"].Count;
                    for (int i = 0; i < resultCount; i++)
                    {
                        dynamic team_folders = jsonData["team_folders"][i];
                        dynamic teamFolderName = team_folders["name"];
                        dynamic teamFolderId = team_folders["team_folder_id"];
                        dynamic status = team_folders["status"][".tag"];

                    // update model
                    TeamFoldersListViewItemModel lvItem = new TeamFoldersListViewItemModel()
                    {
                        TeamFolderName = teamFolderName,
                        TeamFolderId = teamFolderId,
                        Status = status
                    };
                        model.TeamFolders.Add(lvItem);
                    }
                }
            }
        }
示例#41
0
 public MainForm()
 {
     InitializeComponent();
     presenter = new MainPresenter(this);
 }
        private void SearchMembers(IDumpUserContentModel model, IMainPresenter presenter) {
            if (!string.IsNullOrEmpty(model.UserAccessToken)) {
                MemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                service.ListMembersUrl = ApplicationResource.ActionListMembers;
                service.UserAgentVersion = ApplicationResource.UserAgent;
                IDataResponse response = service.ListMembers(new MemberData() {
                    SearchLimit = ApplicationResource.SearchDefaultLimit
                }, model.UserAccessToken);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    if (response.Data != null)
                    {
                        string data = response.Data.ToString();
                        dynamic jsonData = JsonConvert.DeserializeObject<dynamic>(data);

                        // clear existing data first
                        model.MemberList.Clear();
                        int total = 0;
                        int resultCount = jsonData["members"].Count;
                        for (int i = 0; i < resultCount; i++) {
                            dynamic profile = jsonData["members"][i]["profile"];
                            dynamic idObj = profile["team_member_id"];
                            dynamic emailObj = profile["email"];
                            dynamic status = profile["status"];
                            if (status != null && (status[".tag"].ToString().Equals("active") || status[".tag"].ToString().Equals("suspended") || status[".tag"].ToString().Equals("invited"))) {
                                string teamId = idObj.Value as string;
                                string email = emailObj.Value as string;

                                // update model
                                TeamListViewItemModel lvItem = new TeamListViewItemModel() {
                                    Email = email,
                                    TeamId = teamId
                                };

                                model.MemberList.Add(lvItem);
                            }
                            if (SyncContext != null) {
                                SyncContext.Post(delegate {
                                    presenter.UpdateProgressInfo("Scanning Account(s): " + (++total));
                                }, null);
                            }
                        }
                        //if the memberID count is above limit - default 1000 we need to grab the cursor and call continue
                        bool hasMore = jsonData["has_more"];
                        string cursor = jsonData["cursor"];

                        while (hasMore) {
                            service.ListMembersContinuationUrl = ApplicationResource.ActionListMembersContinuation;
                            IDataResponse responseCont = service.ListMembersContinuation(new MemberData() {
                                Cursor = cursor
                            }, model.UserAccessToken);

                            string dataCont = responseCont.Data.ToString();
                            dynamic jsonDataCont = JsonConvert.DeserializeObject<dynamic>(dataCont);

                            int resultContCount = jsonDataCont["members"].Count;
                            for (int i = 0; i < resultContCount; i++) {
                                dynamic profile = jsonDataCont["members"][i]["profile"];
                                dynamic idObj = profile["team_member_id"];
                                dynamic emailObj = profile["email"];
                                dynamic status = profile["status"];
                                if (status != null && (status[".tag"].ToString().Equals("active") || status[".tag"].ToString().Equals("suspended") || status[".tag"].ToString().Equals("invited")))
                                {
                                    string teamId = idObj.Value as string;
                                    string email = emailObj.Value as string;

                                    // update model
                                    TeamListViewItemModel lvItem = new TeamListViewItemModel() {
                                        Email = email,
                                        TeamId = teamId
                                    };

                                    model.MemberList.Add(lvItem);
                                }
                                if (SyncContext != null) {
                                    SyncContext.Post(delegate {
                                        presenter.UpdateProgressInfo("Scanning Account(s): " + (++total));
                                    }, null);
                                }
                            }
                            hasMore = jsonDataCont["has_more"];
                            cursor = jsonDataCont["cursor"];
                        }
                    }
                }
            }
        }
        private void DumpFiles(IDumpUserContentModel model, IMainPresenter presenter) {
            if (SyncContext != null) {
                SyncContext.Post(delegate {
                    presenter.UpdateProgressInfo("Preparing Download...");
                }, null);
            }
            string ProvisionToken = ApplicationResource.DefaultProvisionToken;
            int counter = 0;
            int total = model.MemberList.Where(d => d.IsChecked && !string.IsNullOrEmpty(d.FileName)).ToList().Count;
            IMemberServices service = new MemberServices(ApplicationResource.ContentUrl, ApplicationResource.ApiVersion);
            service.FileDumpUrl = ApplicationResource.ActionFilesDownload;
            service.UserAgentVersion = ApplicationResource.UserAgent;

            foreach (TeamListViewItemModel lvItem in model.MemberList) {
                if (lvItem.IsChecked && !string.IsNullOrEmpty(lvItem.FileName)) {
                    // notify progress
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate {
                            presenter.UpdateProgressInfo(string.Format("Downloading File: {0}/{1}", ++counter, total));
                        }, null);
                    }

                    service.DumpFile(
                        new MemberData() {
                            Email = lvItem.Email,
                            Path = lvItem.FilePath,
                            FileName = lvItem.FileName,
                            MemberId = lvItem.TeamId,
                            ZipFiles = model.ZipFiles
                        },
                        model.OutputFolder,
                        model.UserAccessToken
                    );
                    if (model.SuspendUser)
                    {
                        IMemberServices serviceSus = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                        serviceSus.SuspendMemberUrl = ApplicationResource.ActionSuspendMember;
                        serviceSus.UserAgentVersion = ApplicationResource.UserAgent;
                        IServiceResponse response = serviceSus.SuspendMember(new MemberData()
                        {
                            Email = lvItem.Email
                        }, ProvisionToken);

                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            if (SyncContext != null)
                            {
                                SyncContext.Post(delegate {
                                    presenter.UpdateProgressInfo(string.Format("Suspended Member: {0}", lvItem.Email));
                                }, null);
                            }
                        }
                        else
                        {
                            if (SyncContext != null)
                            {
                                SyncContext.Post(delegate {
                                    presenter.UpdateProgressInfo(string.Format(ErrorMessages.FAILED_TO_SUSPEND_MEMBER));
                                }, null);
                            }
                        }
                    }
                    if (model.DeleteUser)
                    {
                        IMemberServices serviceDel = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                        serviceDel.RemoveMemberUrl = ApplicationResource.ActionRemoveMember;
                        serviceDel.UserAgentVersion = ApplicationResource.UserAgent;
                        IServiceResponse response = serviceDel.RemoveMember(new MemberData()
                        {
                            Email = lvItem.Email,
                            KeepAccount = model.KeepAccount
                            
                        }, ProvisionToken);

                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            if (SyncContext != null)
                            {
                                SyncContext.Post(delegate {
                                    presenter.UpdateProgressInfo(string.Format("Removed Member: {0}", lvItem.Email));
                                }, null);
                            }
                        }
                        else
                        {
                            if (SyncContext != null)
                            {
                                SyncContext.Post(delegate {
                                    presenter.UpdateProgressInfo(string.Format(ErrorMessages.FAILED_TO_REMOVE_MEMBER));
                                }, null);
                            }
                        }
                    }
                }
            }
        }
        private bool SearchFiles(
            IMemberServices service,
            TeamListViewItemModel item,
            IDumpUserContentModel model,
            IMainPresenter presenter)
        {
            bool filesAdded = false;
            try
            {
                service.ListFolderUrl = ApplicationResource.ActionListFolder;
                service.UserAgentVersion = ApplicationResource.UserAgent;
                IDataResponse response = service.ListFolders(
                    new MemberData() {
                        MemberId = item.TeamId
                    }, model.UserAccessToken);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    if (response.Data != null)
                    {
                        string content = response.Data as string;
                        dynamic jsonDataSearch = JsonConvert.DeserializeObject<dynamic>(content);

                        int entryCount = 0;
                        if (jsonDataSearch["entries"] != null)
                        {
                            entryCount = jsonDataSearch["entries"].Count;
                        }
                        //remove existing file entries.
                        for (int i = model.MemberList.Count - 1; i >= 0; i--)
                        {
                            TeamListViewItemModel lvItem = model.MemberList[i];
                            if (lvItem.TeamId.Equals(item.TeamId))
                            {
                                model.MemberList.RemoveAt(i);
                            }
                        }

                        int total = 0;
                        for (int i = 0; i < entryCount; i++)
                        {
                            if (jsonDataSearch["entries"][i][".tag"].ToString().Equals("file"))
                            {
                                TeamListViewItemModel lvItem = new TeamListViewItemModel()
                                {
                                    Email = item.Email,
                                    TeamId = item.TeamId,
                                    FileName = jsonDataSearch["entries"][i]["name"].ToString(),
                                    FilePath = jsonDataSearch["entries"][i]["path_lower"].ToString(),
                                    FileSize = FileUtil.FormatFileSize(Convert.ToInt64(jsonDataSearch["entries"][i]["size"].ToString())),
                                    IsChecked = true
                                };
                                model.MemberList.Add(lvItem);
                                SyncContext.Post(delegate
                                {
                                    presenter.UpdateProgressInfo(string.Format("Searching Files For : {0} File Count: {1}", item.Email, (++total)));
                                }, null);
                            }
                        }
                        if (entryCount > 0)
                        {
                            filesAdded = true;
                        }                        
                    }
                }
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }
            return filesAdded;
        }
 public void SetUp()
 {
     mocks = new MockRepository();
     queryView = (IQueryView)mocks.CreateMock(typeof(IQueryView));
     mainPresenter = (IMainPresenter)mocks.CreateMock(typeof(IMainPresenter));
     SetupResult.On(mainPresenter).Call(mainPresenter.CurrentProject).Return(prj);
     QueryPresenterWithMockView.MockView = queryView;
     presenter = new QueryPresenterWithMockView(mainPresenter);
 }
        private void GetDevices(IDevicesModel model, IMainPresenter presenter) {
            if (!string.IsNullOrEmpty(model.UserAccessToken)) {
                IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                service.GetDevicesUrl = ApplicationResource.ActionListTeamDevices;
                service.UserAgentVersion = ApplicationResource.UserAgent;
                List<string[]> members = new List<string[]>();

                //BEGIN GET MEMBERS
                MemberServices serviceMembers = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
                serviceMembers.ListMembersUrl = ApplicationResource.ActionListMembers;
                IDataResponse responseMembers = serviceMembers.ListMembers(new MemberData()
                {
                    SearchLimit = ApplicationResource.SearchDefaultLimit
                }, ApplicationResource.DefaultAccessToken);

                if (responseMembers.StatusCode == HttpStatusCode.OK)
                {
                    if (responseMembers.Data != null)
                    {
                        string data = responseMembers.Data.ToString();
                        dynamic jsonData = JsonConvert.DeserializeObject<dynamic>(data);

                        int resultCount = jsonData["members"].Count;
                        for (int i = 0; i < resultCount; i++)
                        {
                            dynamic idObj = jsonData["members"][i]["profile"]["team_member_id"];
                            dynamic emailObj = jsonData["members"][i]["profile"]["email"];
                            string teamId = idObj.Value as string;
                            string email = emailObj.Value as string;

                            string[] str = new string[2];
                            str[0] = teamId;
                            str[1] = email;
                            members.Add(str);
                        }
                        //if the memberID count is above limit - grab the cursor and call continue
                        bool hasMore = jsonData["has_more"];
                        string cursor = jsonData["cursor"];

                        while (hasMore)
                        {
                            serviceMembers.ListMembersContinuationUrl = ApplicationResource.ActionListMembersContinuation;
                            IDataResponse responseMembersCont = serviceMembers.ListMembersContinuation(new MemberData()
                            {
                                Cursor = cursor
                            }, ApplicationResource.DefaultAccessToken);

                            string dataCont = responseMembersCont.Data.ToString();
                            dynamic jsonDataCont = JsonConvert.DeserializeObject<dynamic>(dataCont);

                            int resultContCount = jsonDataCont["members"].Count;
                            for (int i = 0; i < resultContCount; i++)
                            {
                                dynamic idObj = jsonDataCont["members"][i]["profile"]["team_member_id"];
                                dynamic emailObj = jsonDataCont["members"][i]["profile"]["email"];
                                string teamId = idObj.Value as string;
                                string email = emailObj.Value as string;

                                string[] str = new string[2];
                                str[0] = teamId;
                                str[1] = email;
                                members.Add(str);
                            }
                            hasMore = jsonDataCont["has_more"];
                            cursor = jsonDataCont["cursor"];
                        }
                    }
                }
                //END GET MEMBERS
                bool FilterCriteriaContains = false;
                bool FilterCriteriaNotContains = false;
                bool FilterCriteriaBeginsWith = false;
                bool FilterCriteriaEndsWith = false;
                if (model.FilterCriteria == "CONTAINS") {
                    FilterCriteriaContains = true;
                }
                if (model.FilterCriteria == "NOT CONTAINS") {
                    FilterCriteriaNotContains = true;
                }
                if (model.FilterCriteria == "BEGINS WITH") {
                    FilterCriteriaBeginsWith = true;
                }
                if (model.FilterCriteria == "ENDS WITH") {
                    FilterCriteriaEndsWith = true;
                }
                IDataResponse response = service.FindDevices(new MemberData() {
                    //no cursor needed on first hit
                }, model.UserAccessToken);

                if (response.StatusCode == HttpStatusCode.OK) {
                    if (response.Data != null) {
                        string data = response.Data.ToString();
                        dynamic jsonDevicesData = JsonConvert.DeserializeObject<dynamic>(data);

                        // clear existing data first
                        model.DeviceList.Clear();

                        int resultCount = jsonDevicesData["devices"].Count;
                        if (resultCount > 0) {
                            for (int i = 0; i < resultCount; i++) {
                                DateTime created = new DateTime();
                                string teamId = string.Empty;
                                string deviceName = string.Empty;
                                string ipAddress = string.Empty;
                                string sessionId = string.Empty;
                                string clientType = string.Empty;
                                string email = string.Empty;

                                dynamic idObj = jsonDevicesData["devices"][i]["team_member_id"];
                                int resultWebCount = jsonDevicesData["devices"][i]["web_sessions"].Count;
                                int resultDesktopCount = jsonDevicesData["devices"][i]["desktop_clients"].Count;
                                int resultMobileCount = jsonDevicesData["devices"][i]["mobile_clients"].Count;

                                if (resultWebCount > 0) {
                                    for (int i2 = 0; i2 < resultWebCount; i2++) {
                                        dynamic deviceNameObj = jsonDevicesData["devices"][i]["web_sessions"][i2]["user_agent"];
                                        dynamic ipAddressObj = jsonDevicesData["devices"][i]["web_sessions"][i2]["ip_address"];
                                        dynamic sessionIdObj = jsonDevicesData["devices"][i]["web_sessions"][i2]["session_id"];
                                        clientType = "Web";
                                        dynamic createdObj = jsonDevicesData["devices"][i]["web_sessions"][i2]["created"];
                                        if (idObj != null) {
                                            teamId = idObj.Value as string;
                                        }
                                        if (deviceNameObj != null) {
                                            deviceName = deviceNameObj.Value as string;
                                        }
                                        if (ipAddressObj != null) {
                                            ipAddress = ipAddressObj.Value as string;
                                        }
                                        if (sessionIdObj != null) {
                                            sessionId = sessionIdObj.Value as string;
                                        }
                                        if (createdObj != null)
                                        {
                                            created = jsonDevicesData["devices"][i]["web_sessions"][i2]["created"];
                                        }
                                        foreach (string[] lvitem in members)
                                        {
                                            if (teamId == lvitem[0])
                                            {
                                                email = lvitem[1];
                                            }
                                        }
                                        // update model
                                        DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                            Created = created,
                                            TeamId = teamId,
                                            DeviceName = deviceName,
                                            IpAddress = ipAddress,
                                            SessionId = sessionId,
                                            ClientType = clientType,
                                            Email = email
                                        };
                                        if (string.IsNullOrEmpty(model.Filter)) {
                                            model.DeviceList.Add(lvItem);
                                        }
                                        if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                            if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                            if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                        }
                                        if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                            if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                //do nothing, don't add to list
                                            }
                                            if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                //do nothing, don't add to list
                                            }
                                            if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                        }
                                        if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                            if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                            if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                        }
                                        if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                            if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                            if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                        }
                                    }
                                    if (resultDesktopCount > 0) {
                                        for (int i3 = 0; i3 < resultDesktopCount; i3++) {
                                            dynamic deviceNameObj = jsonDevicesData["devices"][i]["desktop_clients"][i3]["host_name"];
                                            dynamic ipAddressObj = jsonDevicesData["devices"][i]["desktop_clients"][i3]["ip_address"];
                                            dynamic sessionIdObj = jsonDevicesData["devices"][i]["desktop_clients"][i3]["session_id"];
                                            clientType = "Desktop";
                                            dynamic createdObj = jsonDevicesData["devices"][i]["desktop_clients"][i3]["created"];
                                            if (idObj != null) {
                                                teamId = idObj.Value as string;
                                            }
                                            if (deviceNameObj != null) {
                                                deviceName = deviceNameObj.Value as string;
                                            }
                                            if (ipAddressObj != null) {
                                                ipAddress = ipAddressObj.Value as string;
                                            }
                                            if (sessionIdObj != null) {
                                                sessionId = sessionIdObj.Value as string;
                                            }
                                            if (createdObj != null)
                                            {
                                                created = jsonDevicesData["devices"][i]["desktop_clients"][i3]["created"];
                                            }
                                            foreach (string[] lvitem in members)
                                            {
                                                if (teamId == lvitem[0])
                                                {
                                                    email = lvitem[1];
                                                }
                                            }
                                            // update model
                                            DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                                Created = created,
                                                TeamId = teamId,
                                                DeviceName = deviceName,
                                                IpAddress = ipAddress,
                                                SessionId = sessionId,
                                                ClientType = clientType,
                                                Email = email
                                            };
                                            if (string.IsNullOrEmpty(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                            if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                    //do nothing, don't add to list
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                    //do nothing, don't add to list
                                                }
                                                if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                        }
                                    }
                                    if (resultMobileCount > 0) {
                                        for (int i4 = 0; i4 < resultMobileCount; i4++) {
                                            dynamic deviceNameObj = jsonDevicesData["devices"][i]["mobile_clients"][i4]["device_name"];
                                            dynamic ipAddressObj = jsonDevicesData["devices"][i]["mobile_clients"][i4]["ip_address"];
                                            dynamic sessionIdObj = jsonDevicesData["devices"][i]["mobile_clients"][i4]["session_id"];
                                            clientType = "Mobile";
                                            dynamic createdObj = jsonDevicesData["devices"][i]["mobile_clients"][i4]["created"];
                                            if (idObj != null) {
                                                teamId = idObj.Value as string;
                                            }
                                            if (deviceNameObj != null) {
                                                deviceName = deviceNameObj.Value as string;
                                            }
                                            if (ipAddressObj != null) {
                                                ipAddress = ipAddressObj.Value as string;
                                            }
                                            if (sessionIdObj != null) {
                                                sessionId = sessionIdObj.Value as string;
                                            }
                                            if (createdObj != null)
                                            {
                                                created = jsonDevicesData["devices"][i]["mobile_clients"][i4]["created"];
                                            }
                                            foreach (string[] lvitem in members)
                                            {
                                                if (teamId == lvitem[0])
                                                {
                                                    email = lvitem[1];
                                                }
                                            }
                                            // update model
                                            DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                                Created = created,
                                                TeamId = teamId,
                                                DeviceName = deviceName,
                                                IpAddress = ipAddress,
                                                SessionId = sessionId,
                                                ClientType = clientType,
                                                Email = email
                                            };
                                            if (string.IsNullOrEmpty(model.Filter)) {
                                                model.DeviceList.Add(lvItem);
                                            }
                                            if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                    //do nothing, don't add to list
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                    //do nothing, don't add to list
                                                }
                                                if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                            if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //if the device count has more, we need to pull next batch from cursor value
                            bool hasMore = jsonDevicesData["has_more"];
                            string cursor = jsonDevicesData["cursor"];

                            while (hasMore) {
                                service.GetDevicesUrl = ApplicationResource.ActionListTeamDevices;
                                IDataResponse responseCont = service.FindDevices(new MemberData() {
                                    Cursor = cursor
                                }, model.UserAccessToken);

                                string dataCont = responseCont.Data.ToString();
                                dynamic jsonDevicesDataCont = JsonConvert.DeserializeObject<dynamic>(dataCont);

                                int resultCountCont = jsonDevicesDataCont["devices"].Count;
                                if (resultCountCont > 0) {
                                    for (int i = 0; i < resultCountCont; i++) {
                                        DateTime created = new DateTime();
                                        string teamId = string.Empty;
                                        string deviceName = string.Empty;
                                        string ipAddress = string.Empty;
                                        string sessionId = string.Empty;
                                        string clientType = string.Empty;
                                        string email = string.Empty;

                                        dynamic idObj = jsonDevicesDataCont["devices"][i]["team_member_id"];
                                        int resultWebCount = jsonDevicesDataCont["devices"][i]["web_sessions"].Count;
                                        int resultDesktopCount = jsonDevicesDataCont["devices"][i]["desktop_clients"].Count;
                                        int resultMobileCount = jsonDevicesDataCont["devices"][i]["mobile_clients"].Count;

                                        if (resultWebCount > 0) {
                                            for (int i2 = 0; i2 < resultWebCount; i2++) {
                                                dynamic deviceNameObj = jsonDevicesDataCont["devices"][i]["web_sessions"][i2]["user_agent"];
                                                dynamic ipAddressObj = jsonDevicesDataCont["devices"][i]["web_sessions"][i2]["ip_address"];
                                                dynamic sessionIdObj = jsonDevicesDataCont["devices"][i]["web_sessions"][i2]["session_id"];
                                                clientType = "Web";
                                                dynamic createdObj = jsonDevicesDataCont["devices"][i]["web_sessions"][i2]["created"];
                                                if (idObj != null) {
                                                    teamId = idObj.Value as string;
                                                }
                                                if (deviceNameObj != null) {
                                                    deviceName = deviceNameObj.Value as string;
                                                }
                                                if (ipAddressObj != null) {
                                                    ipAddress = ipAddressObj.Value as string;
                                                }
                                                if (sessionIdObj != null) {
                                                    sessionId = sessionIdObj.Value as string;
                                                }
                                                if (createdObj != null)
                                                {
                                                    created = jsonDevicesDataCont["devices"][i]["web_sessions"][i2]["created"];
                                                }
                                                foreach (string[] lvitem in members)
                                                {
                                                    if (teamId == lvitem[0])
                                                    {
                                                        email = lvitem[1];
                                                    }
                                                }
                                                // update model
                                                DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                                    Created = created,
                                                    TeamId = teamId,
                                                    DeviceName = deviceName,
                                                    IpAddress = ipAddress,
                                                    SessionId = sessionId,
                                                    ClientType = clientType,
                                                    Email = email
                                                };
                                                if (string.IsNullOrEmpty(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                            }
                                        }
                                        if (resultDesktopCount > 0) {
                                            for (int i3 = 0; i3 < resultDesktopCount; i3++) {
                                                dynamic deviceNameObj = jsonDevicesDataCont["devices"][i]["desktop_clients"][i3]["host_name"];
                                                dynamic ipAddressObj = jsonDevicesDataCont["devices"][i]["desktop_clients"][i3]["ip_address"];
                                                dynamic sessionIdObj = jsonDevicesDataCont["devices"][i]["desktop_clients"][i3]["session_id"];
                                                clientType = "Desktop";
                                                dynamic createdObj = jsonDevicesDataCont["devices"][i]["desktop_clients"][i3]["created"];
                                                if (idObj != null) {
                                                    teamId = idObj.Value as string;
                                                }
                                                if (deviceNameObj != null) {
                                                    deviceName = deviceNameObj.Value as string;
                                                }
                                                if (ipAddressObj != null) {
                                                    ipAddress = ipAddressObj.Value as string;
                                                }
                                                if (sessionIdObj != null) {
                                                    sessionId = sessionIdObj.Value as string;
                                                }
                                                if (createdObj != null)
                                                {
                                                    created = jsonDevicesDataCont["devices"][i]["desktop_clients"][i3]["created"];
                                                }
                                                foreach (string[] lvitem in members)
                                                {
                                                    if (teamId == lvitem[0])
                                                    {
                                                        email = lvitem[1];
                                                    }
                                                }
                                                // update model
                                                DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                                    Created = created,
                                                    TeamId = teamId,
                                                    DeviceName = deviceName,
                                                    IpAddress = ipAddress,
                                                    SessionId = sessionId,
                                                    ClientType = clientType,
                                                    Email = email
                                                };
                                                if (string.IsNullOrEmpty(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                            }
                                        }
                                        if (resultMobileCount > 0) {
                                            for (int i4 = 0; i4 < resultMobileCount; i4++) {
                                                dynamic deviceNameObj = jsonDevicesDataCont["devices"][i]["mobile_clients"][i4]["device_name"];
                                                dynamic ipAddressObj = jsonDevicesDataCont["devices"][i]["mobile_clients"][i4]["ip_address"];
                                                dynamic sessionIdObj = jsonDevicesDataCont["devices"][i]["mobile_clients"][i4]["session_id"];
                                                clientType = "Mobile";
                                                dynamic createdObj = jsonDevicesDataCont["devices"][i]["mobile_clients"][i4]["created"];
                                                if (idObj != null) {
                                                    teamId = idObj.Value as string;
                                                }
                                                if (deviceNameObj != null) {
                                                    deviceName = deviceNameObj.Value as string;
                                                }
                                                if (ipAddressObj != null) {
                                                    ipAddress = ipAddressObj.Value as string;
                                                }
                                                if (sessionIdObj != null) {
                                                    sessionId = sessionIdObj.Value as string;
                                                }
                                                if (createdObj != null)
                                                {
                                                    created = jsonDevicesDataCont["devices"][i]["mobile_clients"][i4]["created"];
                                                }
                                                foreach (string[] lvitem in members)
                                                {
                                                    if (teamId == lvitem[0])
                                                    {
                                                        email = lvitem[1];
                                                    }
                                                }
                                                // update model
                                                DeviceListViewItemModel lvItem = new DeviceListViewItemModel() {
                                                    Created = created,
                                                    TeamId = teamId,
                                                    DeviceName = deviceName,
                                                    IpAddress = ipAddress,
                                                    SessionId = sessionId,
                                                    ClientType = clientType,
                                                    Email = email
                                                };
                                                if (string.IsNullOrEmpty(model.Filter)) {
                                                    model.DeviceList.Add(lvItem);
                                                }
                                                if (FilterCriteriaContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaNotContains && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.Contains(model.Filter)) {
                                                        //do nothing, don't add to list
                                                    }
                                                    if ((model.FilterType == "IpAddress" && (!ipAddress.Contains(model.Filter))) || (model.FilterType == "DeviceName" && (!deviceName.Contains(model.Filter)))) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaBeginsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.StartsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                                if (FilterCriteriaEndsWith && !string.IsNullOrEmpty(model.Filter)) {
                                                    if (model.FilterType == "IpAddress" && ipAddress.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                    if (model.FilterType == "DeviceName" && deviceName.EndsWith(model.Filter)) {
                                                        model.DeviceList.Add(lvItem);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                hasMore = jsonDevicesDataCont["has_more"];
                                cursor = jsonDevicesDataCont["cursor"];
                            }
                        }
                    }
                }
            }
        }
 protected virtual IProjectView CreateView(IMainPresenter mainPresenter)
 {
     return new ProjectView(this,mainPresenter.View);
 }
 public QueryPresenter(IMainPresenter mainPresenter)
     : this(mainPresenter, new Query(DefaultName,string.Empty))
 {
 }
 public ProjectPresenter(Project prj, IMainPresenter mainPresenter)
 {
     this.mainPresenter = mainPresenter;
     this.prj = prj;
     this.view  = CreateView(mainPresenter);
 }
 private string SetFolderStatus(ITeamFoldersModel model, string teamFolderId, bool activeSetting, IMainPresenter presenter)
 {
     string errorMessage = string.Empty;
     string fileAccessToken = ApplicationResource.DefaultAccessToken;
     IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
     if (activeSetting)
     {
         service.ActivateTeamFolderUrl = ApplicationResource.ActionActivateTeamFolder;
     }
     if (!activeSetting)
     {
         service.ArchiveTeamFolderUrl = ApplicationResource.ActionArchiveTeamFolder;
     }
     service.UserAgentVersion = ApplicationResource.UserAgent;
     IServiceResponse response = service.SetFolderStatus(teamFolderId, activeSetting, fileAccessToken);
     if (response.StatusCode == HttpStatusCode.OK)
     {
         if (SyncContext != null)
         {
             SyncContext.Post(delegate
             {
                 presenter.UpdateProgressInfo(string.Format("Updated team folder status for [" + teamFolderId + "]"));
             }, null);
         }
     }
     else
     {
         errorMessage = ErrorMessages.FAILED_TO_UPDATE_TEAM_FOLDER_STATUS;
     }
     return errorMessage;
 }
示例#51
0
        public ExecPresenter(IMainPresenter mainPresenter)
        {
            this.MainPresenter = mainPresenter;

            BindFunctions();
        }
 public void SetUp()
 {
     mocks = new MockRepository();
     view = mocks.CreateMock(typeof (IMainView)) as IMainView;
     repository = mocks.CreateMock(typeof (IProjectsRepository)) as IProjectsRepository;
     presenter = new MainPresenter(this.view, this.repository);
 }
示例#53
0
        /// <summary>
        /// Called when the form is ready for use but not yet on screen.
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if(!DesignMode) {
                toolStripDropDownButtonInvalidPluginCount.Visible = false;
                toolStripDropDownButtonLaterVersionAvailable.Visible = false;

                Localise.Form(this);

                _OnlineHelp = new OnlineHelpHelper(this, OnlineHelpAddress.WinFormsMainDialog);

                _Presenter = Factory.Singleton.Resolve<IMainPresenter>();
                _Presenter.Initialise(this);
                _Presenter.BaseStationAircraftList = _BaseStationAircraftList;
                _Presenter.UPnpManager = _UPnpManager;
            }
        }
 public MainForm(IProjectsRepository repository)
     : this()
 {
     presenter = new MainPresenter(this, repository);
 }
 private string SetDefaultSyncSetting(ITeamFoldersModel model, string teamFolderId, bool syncSetting, IMainPresenter presenter)
 {
     string errorMessage = string.Empty;
     string fileAccessToken = ApplicationResource.DefaultAccessToken;
     string syncStringSetting = "sync";
     IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
     service.SyncSettingTeamFolderUrl = ApplicationResource.ActionUpdateDefaultSyncSettingTeamFolder;
     if (!syncSetting)
     {
         syncStringSetting = "no_sync";
     }
     service.UserAgentVersion = ApplicationResource.UserAgent;
     IServiceResponse response = service.SetFolderSyncSetting(teamFolderId, syncStringSetting, fileAccessToken);
     if (response.StatusCode == HttpStatusCode.OK)
     {
         if (SyncContext != null)
         {
             SyncContext.Post(delegate
             {
                 presenter.UpdateProgressInfo(string.Format("Updated default sync setting for [" + teamFolderId + "]"));
             }, null);
         }
     }
     if (response.StatusCode.ToString() == "BadRequest")
     {
         if (SyncContext != null)
         {
             SyncContext.Post(delegate {
                 presenter.UpdateProgressInfo("Error: This endpoint is only available for teams with access to managed sync");
             }, null);
         }
     }
     else
     {
         errorMessage = ErrorMessages.FAILED_TO_UPDATE_TEAM_FOLDER_STATUS;
     }
     return errorMessage;
 }
        private string ProvisionRoles(IProvisioningModel model, IMainPresenter presenter)
        {
            string errorMessage = string.Empty;
            IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
            service.AddMemberUrl = ApplicationResource.ActionAddMember;
            service.UserAgentVersion = ApplicationResource.UserAgent;
            try
            {
                foreach (MemberListViewItemModel item in model.Members.Where(m => m.IsChecked).ToList())
                {
                    IServiceResponse response = service.AddMember(new MemberData()
                    {
                        Email = item.Email,
                        FirstName = item.FirstName,
                        LastName = item.LastName,
                        SendWelcomeEmail = model.SendWelcomeEmail,
                        ProvisionStatus = item.ProvisionStatus,
                        RoleName = model.SelectedRole
                        
                    }, model.AccessToken);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (SyncContext != null)
                        {
                            SyncContext.Post(delegate
                            {
                                if (response.Message.Contains("success"))
                                {
                                    item.ProvisionStatus = "Provisioned successfully.";
                                    presenter.UpdateProgressInfo(string.Format("Added Member: {0}: {1} {2}", item.Email, item.FirstName, item.LastName));
                                }
                                if (response.Message.Contains("team_license_limit"))
                                {
                                    item.ProvisionStatus = "Team is already full.The organization has no available licenses.";
                                    presenter.UpdateProgressInfo("Team is already full. The organization has no available licenses.");
                                }
                                if (response.Message.Contains("free_team_member_limit_reached"))
                                {
                                    item.ProvisionStatus = "Team is already full. The free team member limit has been reached.";
                                    presenter.UpdateProgressInfo("Team is already full. The free team member limit has been reached.");
                                }
                                if (response.Message.Contains("user_already_on_team"))
                                {
                                    item.ProvisionStatus = "User is already on this team. The provided email address is associated with a user who is already a member of (including in recoverable state) or invited to the team.";
                                    presenter.UpdateProgressInfo("User is already on this team. The provided email address is associated with a user who is already a member of (including in recoverable state) or invited to the team.");
                                }
                                if (response.Message.Contains("user_on_another_team"))
                                {
                                    item.ProvisionStatus = "User is already on another team. The provided email address is associated with a user that is already a member or invited to another team.";
                                    presenter.UpdateProgressInfo("User is already on another team. The provided email address is associated with a user that is already a member or invited to another team.");
                                }
                                if (response.Message.Contains("user_already_paired"))
                                {
                                    item.ProvisionStatus = "User is already paired.";
                                    presenter.UpdateProgressInfo("User is already paired.");
                                }
                                if (response.Message.Contains("user_migration_failed"))
                                {
                                    item.ProvisionStatus = "User migration has failed.";
                                    presenter.UpdateProgressInfo("User migration has failed.");
                                }
                                if (response.Message.Contains("duplicate_external_member_id"))
                                {
                                    item.ProvisionStatus = "A user with the given external member ID already exists on the team (including in recoverable state).";
                                    presenter.UpdateProgressInfo("A user with the given external member ID already exists on the team (including in recoverable state).");
                                }
                                if (response.Message.Contains("user_creation_failed"))
                                {
                                    item.ProvisionStatus = "User creation has failed.";
                                    presenter.UpdateProgressInfo("User creation has failed.");
                                }
                            }, null);
                        }
                    }
                    else
                    {
                        errorMessage = ErrorMessages.FAILED_TO_ADD_MEMBER;
                    }
                }
            }
            catch (Exception)
            {
                // error message.
                SyncContext.Post(delegate
                {
                    presenter.ShowErrorMessage(ErrorMessages.FAILED_TO_ADD_MEMBER, ErrorMessages.DLG_DEFAULT_TITLE);
                    presenter.UpdateProgressInfo("");
                    presenter.ActivateSpinner(false);
                    presenter.EnableControl(true);
                }, null);
            }
            return errorMessage;
        }
 private string CreateTeamFolder(ITeamFoldersModel model, string teamFolderName, IMainPresenter presenter)
 {
     string errorMessage = string.Empty;
     string fileAccessToken = ApplicationResource.DefaultAccessToken;
     IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
     service.CreateTeamFolderUrl = ApplicationResource.ActionCreateTeamFolder;
     service.UserAgentVersion = ApplicationResource.UserAgent;
     IServiceResponse response = service.CreateTeamFolder(teamFolderName, fileAccessToken);
     if (response.StatusCode == HttpStatusCode.OK)
     {
         if (SyncContext != null)
         {
             SyncContext.Post(delegate
             {
                 presenter.UpdateProgressInfo(string.Format("Created team folder [" + teamFolderName + "]"));
             }, null);
         }
     }
     else
     {
         errorMessage = ErrorMessages.FAILED_TO_CREATE_TEAMFOLDER;
     }
     return errorMessage;
 }
        private string UnsuspendMember(IProvisioningModel model, IMainPresenter presenter)
        {
            string errorMessage = string.Empty;
            IMemberServices service = service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
            service.UnSuspendMemberUrl = ApplicationResource.ActionUnsuspendMember;
            service.UserAgentVersion = ApplicationResource.UserAgent;
            try
            {
                foreach (MemberListViewItemModel item in model.Members.Where(m => m.IsChecked).ToList())
                {
                    IServiceResponse response = service.UnSuspendMember(new MemberData()
                    {
                        Email = item.Email
                    }, model.AccessToken);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (SyncContext != null)
                        {
                            SyncContext.Post(delegate
                            {
                                presenter.UpdateProgressInfo(string.Format("Unsuspended Member: {0}", item.Email));
                            }, null);
                        }
                    }
                    else
                    {
                        errorMessage = ErrorMessages.FAILED_TO_UNSUSPEND_MEMBER;
                    }
                }
            }
            catch (Exception)
            {
                // error message.
                SyncContext.Post(delegate
                {
                    presenter.ShowErrorMessage(ErrorMessages.FAILED_TO_UNSUSPEND_MEMBER, ErrorMessages.DLG_DEFAULT_TITLE);
                    presenter.UpdateProgressInfo("");
                    presenter.ActivateSpinner(false);
                    presenter.EnableControl(true);
                }, null);
            }
            return errorMessage;
        }
 public QueryPresenter(IMainPresenter mainPresenter, Query query)
 {
     this.mainPresenter = mainPresenter;
     this.query = query;
     this.view = CreateView();
 }
        private string UpdateProfile(IProvisioningModel model, IMainPresenter presenter)
        {
            string errorMessage = string.Empty;
            IMemberServices service = service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion);
            service.SetProfileUrl = ApplicationResource.ActionSetProfile;
            service.UserAgentVersion = ApplicationResource.UserAgent;
            try
            {
                foreach (MemberListViewItemModel item in model.Members.Where(m => m.IsChecked).ToList())
                {
                    IServiceResponse response = service.SetProfile(new MemberData()
                    {
                        Email = item.Email,
                        NewEmail = item.NewEmail,
                        NewExternalId = item.NewExternalId
                    }, model.AccessToken);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        if (SyncContext != null)
                        {
                            SyncContext.Post(delegate
                            {
                                presenter.UpdateProgressInfo(string.Format("Updated profile for: {0}", item.Email));
                            }, null);
                        }
                    }
                    else if ((response.Message).Contains("user_not_found"))
                    {
                        errorMessage = ErrorMessages.USER_NOT_FOUND;
                    }
                    else if ((response.Message).Contains("user_not_in_team"))
                    {
                        errorMessage = ErrorMessages.USER_NOT_IN_TEAM;
                    }
                    else
                    {
                        errorMessage = ErrorMessages.FAILED_TO_UPDATE_PROFILE;
                    }
                }
            }
            catch(Exception)
            {
                //just catch the exception and return error message
                SyncContext.Post(delegate {
                    presenter.ShowErrorMessage(ErrorMessages.FAILED_TO_UPDATE_PROFILE, ErrorMessages.DLG_DEFAULT_TITLE);
                    presenter.UpdateProgressInfo("");
                    presenter.ActivateSpinner(false);
                    presenter.EnableControl(true);
                }, null);
            }
            return errorMessage;
        }