private async void DoLogin(PasswordBox pb)
        {
            LoaderManager.Instance.ShowLoader();
            TimerServerClient serv = null;

            try
            {
                serv = new TimerServerClient(StationManager.EndpointName);
                var result = await Task.Run(() =>
                {
                    if (!serv.UserExists(Username, pb.Password))
                    {
                        return(null);
                    }
                    User user    = serv.GetUser(Username, pb.Password);
                    user.Groups  = serv.GetUserGroups(user).ToList();
                    user.Records = serv.GetUserRecords(user).ToList();
                    return(user);
                });


                if (result == null)
                {
                    MessageBox.Show("Oooops. Couldn't find you.");
                    LoaderManager.Instance.HideLoader();
                    return;
                }
                else
                {
                    StationManager.CurrentUser = result;
                    var record = await Task.Run(() => serv.GetUserRecords(result).Where(r => r.EndTime == null).FirstOrDefault());

                    if (record != null)
                    {
                        record.User = result;
                        StationManager.CurRecord = record;
                    }
                    else
                    {
                        Record rec = new Record();
                        rec.User = result;
                        rec.Id   = Guid.NewGuid();
                        StationManager.CurRecord = rec;
                    }
                    LoaderManager.Instance.HideLoader();
                    pb.Clear();
                    NavigationManager.Instance.Navigate(ViewType.MainView);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Ooops, problems with server \n" + e.Message);
                LoaderManager.Instance.HideLoader();
            }
            finally
            {
                serv?.Close();
            }
        }
Exemple #2
0
        public static void DeleteRecord(Guid guid)
        {
            TimerServerClient serv = null;

            try
            {
                serv = new TimerServerClient(EndpointName);
                serv.DeleteRecords(new Guid[] { guid });
            }
            catch (Exception e)
            {
                MessageBox.Show("Ooops, problems with server \n" + e.Message);
            }
            finally
            {
                serv?.Close();
            }
        }
Exemple #3
0
        public static void SubmitUpdateRecord(Record record, string[] updateFields)
        {
            TimerServerClient serv = null;

            try
            {
                serv = new TimerServerClient(EndpointName);
                serv.UpdateRecord(record, updateFields);
            }
            catch (Exception e)
            {
                MessageBox.Show("Ooops, problems with server \n" + e.Message);
            }
            finally
            {
                serv?.Close();
            }
        }
Exemple #4
0
        public static Record GetUnfinishedRecord(User user)
        {
            TimerServerClient serv = null;

            try
            {
                serv = new TimerServerClient(EndpointName);
                var record = serv.GetUserRecords(user).Where(r => r.EndTime == null).FirstOrDefault();
                return(record);
            }
            catch (Exception e)
            {
                MessageBox.Show("Ooops, problems with server \n" + e.Message);
            }
            finally
            {
                serv?.Close();
            }

            return(null);
        }
Exemple #5
0
        public MainViewModel()
        {
            _seconds = (StationManager.CurRecord?.StartTime != DateTime.MinValue)
                                ? (long)(DateTime.Now - StationManager.CurRecord.StartTime).TotalSeconds : 0;

            _cb  = new TimerCallback(ChangeText);
            Time = TimeSpan.FromSeconds(_seconds).ToString(@"hh\:mm\:ss");
            ViewSource.Source = StationManager.CurrentUser.Records;

            if (StationManager.CurRecord.StartTime != DateTime.MinValue)
            {
                _timer = new Timer(_cb, null, 0, 1000);
            }

            StationManager.RefreshRecords += () =>
            {
                using (var serv = new TimerServerClient())
                {
                    StationManager.CurrentUser.Records = serv.GetUserRecords(StationManager.CurrentUser).ToList();
                    ViewSource.Source = StationManager.CurrentUser.Records;
                    ViewSource.View.Refresh();
                }
            };

            StationManager.DeleteInfo += () =>
            {
                Records           = new List <Record>();
                ViewSource.Source = Records;
                ViewSource.View?.Refresh();
                StationManager.CurrentUser = null;
                StationManager.CurRecord   = null;
                StationManager.CurGroup    = null;
                StationManager.Groups      = null;
                StationManager.Records     = null;
                StationManager.IsWindow    = false;
            };
        }
Exemple #6
0
        private async void DoSignUp(PasswordBox pb)
        {
            if (!new EmailAddressAttribute().IsValid(Email))
            {
                MessageBox.Show("Email is not correct!");
                return;
            }

            Guid          newId    = Guid.NewGuid();
            UserCandidate userCand = new UserCandidate();

            userCand.Id       = newId;
            userCand.Username = Username;
            userCand.Email    = Email;
            userCand.Password = pb.Password;
            userCand.Name     = Name;
            userCand.Surname  = Surname;

            User user = new User();

            user.Id       = newId;
            user.Username = Username;
            user.Email    = Email;
            user.Name     = Name;
            user.Surname  = Surname;

            LoaderManager.Instance.ShowLoader();
            TimerServerClient serv = null;

            try
            {
                serv = new TimerServerClient(StationManager.EndpointName);
                bool unique = await Task.Run(() =>
                {
                    return(serv.IsUserUnique(Username, Email));
                });

                if (!unique)
                {
                    MessageBox.Show("User with this username or email already exists");
                    LoaderManager.Instance.HideLoader();
                    return;
                }
                else
                {
                    await Task.Run(() =>
                    {
                        serv.AddUser(userCand);
                    });
                }
                LoaderManager.Instance.HideLoader();
                StationManager.CurRecord      = new Record();
                StationManager.CurRecord.User = user;
                StationManager.CurRecord.Id   = Guid.NewGuid();
                user.Groups  = new List <Group>();
                user.Records = new List <Record>();
                StationManager.CurrentUser = user;
                NavigationManager.Instance.Navigate(ViewType.MainView);
            }
            catch (Exception e)
            {
                MessageBox.Show("Ooops, problems with server \n" + e.Message);
                LoaderManager.Instance.HideLoader();
            }
            finally
            {
                serv?.Close();
            }
        }