public void BaseUriString_BaseUriIsNotSet_ReturnsNull()
        {
            redmine = new RedmineService();

            Assert.IsNull(redmine.BaseUri);
            Assert.IsNull(redmine.BaseUriString);
        }
        private void SaveConfiguration()
        {
            RedmineService redmineService;

            try
            {
                redmineService = RedmineService.ConnectAndCreate(RedmineUrl, RedmineApiKey);
            }
            catch (RedmineException ex)
            {
                Messenger.Default.Send(new NotificationMessage($"Error connecting to Redmine service: {ex.Message}"));
                redmineService = null;
            }

            if (redmineService == null)
            {
                Messenger.Default.Send(new RedmineConnectionFailMessage());
            }
            else
            {
                // Save configuration
                _configuration.RedmineApiKey = RedmineApiKey;
                _configuration.RedmineUrl    = RedmineUrl;

                // Send success message
                Messenger.Default.Send(new RedmineConnectionSuccessMessage(redmineService));
            }
        }
        static void Main(string[] args)
        {
            //var redmineActivitys = RedmineService.GetActivities().Result;
            //var spareActivity = redmineActivitys.time_entry_activities.Cast<SpareActivity>().ToList();
            //ClockifyService.AddTags(spareActivity);

            //var result = RedmineService.GetUsersDictionary().Result;
            //Console.WriteLine("lol");
            //foreach (var item in result)
            //{
            //    if (item.Value != null)
            //    {
            //        Console.WriteLine("{" + $"\"{item.Value.Id}\", \"{item.Value.ApiKey}\"" + "},");
            //    }
            //}

            //var result = ClockifyService.GetUseres().Result;
            //foreach (var item in result)
            //{
            //    Console.WriteLine("{"+$"\"{item.Id}\", \"{item.Name}\"" + "},");
            //}

            var redmineActivitys = RedmineService.GetActivities().Result;
            var clockifyTags     = ClockifyService.GetTags().Result;

            foreach (var item in redmineActivitys.time_entry_activities)
            {
                Console.WriteLine("{" + $"\"{clockifyTags.Where(x => x.name == item.name).FirstOrDefault()?.id}\", \"{item.id}\"" + "},");
            }
        }
        public void GetProjects_BaseUriIsNotSet_ThrowsInvalidOperationException()
        {
            redmine = new RedmineService();

            Assert.IsNull(redmine.BaseUri);
            Assert.That(() => redmine.GetProjects(), Throws.InstanceOf <InvalidOperationException>());
        }
 public void SetUp()
 {
     redmine = new RedmineService
     {
         Username      = "******",
         Password      = "******",
         BaseUriString = "test://redmine/",
     };
 }
Example #6
0
        public async void init()
        {
            var sv = new RedmineService();

            sv.ApiKey  = "7ee40c509bc59555251e2fd757f2e4a6e816989f";
            sv.BaseUrl = "http://openccpm.com/redmine/";
            int pid = 10;

            this.items = await sv.GetIssues(pid);
        }
Example #7
0
        // POST: Tasks/GetIssue/5
        public async Task <IActionResult> GetIssue(string id)
        {
            var person = await CurrentPersonAsync();

            if (!String.IsNullOrEmpty(person.ApiKey))
            {
                RedmineService redmine   = new RedmineService(_context, person.ApiKey);
                ReadmineIssue  issueInfo = new ReadmineIssue();
                issueInfo = await redmine.ReadIssueAsync(id);

                return(PartialView(issueInfo));
            }
            return(PartialView(null));
        }
Example #8
0
        private async void Load()
        {
            var redmineService = new RedmineService(null);
            var response       = await redmineService.GetIssues();

            foreach (var issue in response.issues)
            {
                if (!double.IsNaN(issue.lat))
                {
                    var pushpin = new Pushpin();
                    MapLayer.SetPosition(pushpin, new Location(issue.lat, issue.lng));
                    Map.Children.Add(pushpin);

                    var toolTip = new ToolTip();
                    toolTip.Content = issue.subject;
                    pushpin.ToolTip = toolTip;
                }
            }
        }
Example #9
0
 public ProjectSelectionViewModel(RedmineService service)
 {
     _service        = service;
     _logTimeCommand = new RelayCommand(LogTime, CanLogTime);
     if (IsInDesignMode)
     {
         User = new User
         {
             FirstName = "Tester",
             LastName  = "Probe",
             Email     = "*****@*****.**"
         };
         Period = WorkPeriod.Current;
     }
     else
     {
         InitializeData();
     }
 }
Example #10
0
        public MainWindow()
        {
            Messenger.Default.Register <NotificationMessageAction>(this, ShowConfirmation);
            Messenger.Default.Register <NotificationMessage>(this, ShowNotification);
            Messenger.Default.Register <SelectProjectMessage>(this, message => NavigateToSelectProject());
            Messenger.Default.Register <LogTimeMessage>(this, message => NavigateToLogTime());
            Messenger.Default.Register <EditConfigurationMessage>(this, message => NavigateToConfiguration());
            Messenger.Default.Register <UnsavedHoursReportMessage>(this, UpdateUnsavedHours);
            Messenger.Default.Register <ShowHelpMessage>(this, ShowHelpWindow);

            InitializeComponent();

            RedmineService redmineService = null;
            var            configuration  = new LoggerConfiguration();

            if (!string.IsNullOrWhiteSpace(configuration.RedmineUrl) &&
                !string.IsNullOrWhiteSpace(configuration.RedmineApiKey))
            {
                try
                {
                    redmineService = RedmineService.ConnectAndCreate(configuration);
                }
                catch (Exception)
                {
                    redmineService = null;
                }
            }

            if (redmineService != null)
            {
                Messenger.Default.Send(new RedmineConnectionSuccessMessage(redmineService));
                NavigateToSelectProject();
            }
            else
            {
                NavigateToConfiguration();
            }
        }
Example #11
0
        private async void LoadIssues()
        {
            var sharedPreferences = GetSharedPreferences("IssueApp", FileCreationMode.Private);
            var key = sharedPreferences.GetString("Key", null);

            if (key == null)
            {
                var editText    = new EditText(this);
                var alertDialog = new AlertDialog.Builder(this);
                alertDialog.SetIcon(Android.Resource.Drawable.IcDialogInfo);
                alertDialog.SetTitle("Redmine認証キー").SetView(editText).SetPositiveButton("OK", async(sender, args) =>
                {
                    var service = new RedmineService(editText.Text);
                    var check   = await service.CheckAsync();
                    if (check)
                    {
                        var preferencesEditor = sharedPreferences.Edit();
                        preferencesEditor.PutString("Key", editText.Text);
                        preferencesEditor.Apply();
                        LoadIssues();
                    }
                    else
                    {
                        LoadIssues();
                    }
                }).SetNegativeButton(Properties.Resources.Host + "を開く", (sender, args) =>
                {
                    var uri    = Uri.Parse(Properties.Resources.Url);
                    var intent = new Intent(Intent.ActionView, uri);
                    StartActivity(intent);
                    LoadIssues();
                }).Show();
                return;
            }

            var progressDialog = new ProgressDialog(this);

            progressDialog.SetMessage("Redmineから読み込み中");
            progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
            progressDialog.SetButton("この表示を消す", (sender, args) => progressDialog.Hide());
            progressDialog.Show();

            var redmineService = new RedmineService(key);
            var response       = await redmineService.GetIssues();

            _issues = response.issues;

            foreach (var issue in _issues)
            {
                if (double.IsNaN(issue.lat))
                {
                    continue;
                }

                var markerOptions = new MarkerOptions();
                markerOptions.SetPosition(new LatLng(issue.lat, issue.lng));
                markerOptions.SetTitle(issue.subject);
                _googleMap.AddMarker(markerOptions);
            }

            UpdateList();

            progressDialog.Hide();

            if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) == Permission.Granted)
            {
                _googleMap.MyLocationEnabled = true;
            }
            else
            {
                RequestPermissions(new[] { Manifest.Permission.AccessFineLocation, Manifest.Permission.AccessCoarseLocation }, 0x01);
            }

            _googleApiClient = new GoogleApiClient.Builder(this)
                               .AddApi(LocationServices.API)
                               .AddConnectionCallbacks(this)
                               .Build();
            await Task.Run(() =>
            {
                _googleApiClient.BlockingConnect();
            });
        }
 public RedmineConnectionSuccessMessage(RedmineService serviceInstance)
 {
     ServiceInstance = serviceInstance;
 }
Example #13
0
 public ViewModel()
 {
     _sv = new RedmineService();
     _sv.SetConfig(AppDomain.CurrentDomain.BaseDirectory + "RmClient.config");
     Init();
 }