예제 #1
0
        protected override void OnStart()
        {
            base.OnStart();

            _teamListItems = new List <TeamListItem>();

            Task.Factory.StartNew(() =>
            {
                var userTeams = DaoManager.Get().TeamUserDao.Find("User_Id", _application.CurrentUser.Id.ToString());

                var teamIds = userTeams.Select(ut => ut.TeamId.ToString()).ToList();
                var teams   = DaoManager.Get().TeamDao.FindByList("Team_Id", teamIds);

                var clubIds = teams.Select(t => t.ClubId.ToString()).Distinct().ToList();
                var clubs   = DaoManager.Get().ClubDao.FindByList("Club_Id", clubIds);

                foreach (var team in teams)
                {
                    foreach (var club in clubs)
                    {
                        if (team.ClubId == club.Id)
                        {
                            _teamListItems.Add(new TeamListItem
                            {
                                Team = team,
                                Club = club
                            });
                        }
                    }
                }
            }).ContinueWith(task => {
                _adapter.SetItems(_teamListItems.ToArray());
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #2
0
        private void ConfirmButtonClick(object sender, EventArgs e)
        {
            Task.Factory.StartNew(() =>
            {
                ToggleLayout();

                if (_myAttendant == null)
                {
                    _myAttendant = new Attendant
                    {
                        EventId = _eventId,
                        UserId  = _myApplication.CurrentUser.Id
                    };
                }

                _myAttendant.Attending = _myAttendantState;
                _myAttendant.Reason    = _reasonEditText.Text;

                DaoManager.Get().AttendantDao.Save(_myAttendant);

                ToggleLayout();
            }).ContinueWith(task =>
            {
                Load();
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
        public void TestInitialize()
        {
            var serviceCollection = new ServiceCollection()
                                    .AddLogging();

            serviceCollection.Add(new ServiceDescriptor(typeof(DatabaseContext),
                                                        UnitTestDatabaseContext.Get()));
            serviceCollection.Add(new ServiceDescriptor(typeof(DaoManager),
                                                        DaoManager.Get(UnitTestDatabaseContext.Get())));
            var serviceProvider = serviceCollection.BuildServiceProvider();
            var factory         = serviceProvider.GetService <ILoggerFactory>();
            var logger          = factory.CreateLogger <OrderProductsController>();

            Controller = new OrderProductsController(logger)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext
                    {
                        RequestServices = serviceProvider
                    }
                }
            };
            var identity = new ClaimsIdentity();

            identity.AddClaim(new Claim(ClaimTypes.Sid, "3"));
            identity.AddClaim(new Claim(ClaimTypes.Role, "Admin"));
            Controller.ControllerContext.HttpContext.User = new ClaimsPrincipal(identity);
        }
예제 #4
0
        private void ConfirmButtonClicked(object sender, EventArgs eventArgs)
        {
            Task.Factory.StartNew(() =>
            {
                ToggleLayout();

                var titleValue = _titleEditText.Text;
                var bodyValue  = _bodyEditText.Text;

                if (CheckForValidEntries(titleValue, bodyValue))
                {
                    var newsDao = DaoManager.Get().NewsDao;
                    var news    = new News
                    {
                        Title   = titleValue,
                        Body    = bodyValue,
                        Team_Id = _myApplication.CurrentTeam.Id
                    };

                    newsDao.Save(news);
                }

                ToggleLayout();
            }).ContinueWith(task => {
                _activity.OnBackPressed();
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #5
0
        protected override void OnStart()
        {
            base.OnStart();

            _clubDictionary = new Dictionary <string, int>();

            Task.Factory.StartNew(() =>
            {
                ShowOverlay(true);
                SetActivityLayoutChildElementsEnabled(false);

                _clubs = DaoManager.Get().ClubDao.FindAll().ToArray();

                _clubDictionary.Add(GetString(Resource.String.spn_club_select), 0);

                foreach (var club in _clubs)
                {
                    _clubDictionary.Add(club.Name, club.Id);
                }

                ShowOverlay(false);
                SetActivityLayoutChildElementsEnabled(true);
            }).ContinueWith(task =>
            {
                _clubAdapter          = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerItem, new List <string>(_clubDictionary.Keys));
                _clubDropdown.Adapter = _clubAdapter;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #6
0
 private void LoadEvents()
 {
     _events.Clear();
     Task.Factory.StartNew(() =>
     {
         var databaseEvents =
             DaoManager.Get().EventDao.Find("Team_Id", _myApplication.CurrentTeam.Id.ToString());
         foreach (var databaseEvent in databaseEvents)
         {
             _events.Add(new EventItem
             {
                 Id        = databaseEvent.Id,
                 Name      = databaseEvent.Name,
                 StartDate = databaseEvent.StartDate,
                 EndDate   = databaseEvent.EndDate,
                 EventType = databaseEvent.EventType
             });
         }
     }).ContinueWith(task =>
     {
         _eventAdapter         = new EventAdapter(Activity, Resource.Layout.calendar_list_item, _events.ToArray());
         _calendarList.Adapter = _eventAdapter;
         _eventAdapter.NotifyDataSetChanged();
     }, TaskScheduler.FromCurrentSynchronizationContext());
 }
예제 #7
0
        private void LoadEvent()
        {
            var events = DaoManager.Get().EventDao.Find(_eventId);

            if (events.Count != 0)
            {
                _event = events[0];
                SetEventInfoOnTextViews(_event);
            }
        }
예제 #8
0
        private void OnClickSubmit(object sender, EventArgs e)
        {
            var result = NoResult;

            Task.Factory.StartNew(() =>
            {
                ToggleLayout();

                while (result == NoResult)
                {
                    if (string.IsNullOrEmpty(_teamName.Text))
                    {
                        result = NoTeamName;
                    }
                    else if (_clubId == 0)
                    {
                        result = NoClub;
                    }

                    var foundTeams = DaoManager.Get().TeamDao.Count("name", _teamName.Text);

                    if (foundTeams > 0)
                    {
                        result = TeamNameAlreadyTaken;
                    }
                    else
                    {
                        var newTeam = new Team
                        {
                            Name   = _teamName.Text,
                            ClubId = _clubId
                        };

                        newTeam = DaoManager.Get().TeamDao.Save(newTeam);

                        var newTeamUser = new TeamUser()
                        {
                            TeamId = newTeam.Id,
                            UserId = _application.CurrentUser.Id
                        };

                        DaoManager.Get().TeamUserDao.Save(newTeamUser);
                        result = NoError;
                    }
                }

                ToggleLayout();
            }).ContinueWith(task =>
            {
                ProcessResult(result);
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #9
0
        public void getCurrentUser()
        {
            List <Database.Entities.User> result = null;

            Task.Factory.StartNew(() =>
            {
                result = DaoManager.Get().UserDao.Find(_userId);
                Log.Debug("user: ", result.ToString());
                return(result);
            }).ContinueWith(task =>
            {
                ProcessResult(result);
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #10
0
        private void LoadAttendants()
        {
            _attendants = DaoManager.Get().AttendantDao.Find("Event_Id", _eventId.ToString());

            //Setup new attendants if 0 are found
            if (_attendants.Count == 0)
            {
                var users = DaoManager.Get().TeamUserDao.FindByTeamId(_myApplication.CurrentTeam.Id);
                foreach (var teamUser in users)
                {
                    var newAttendant = new Attendant
                    {
                        Attending = AttendingState.Maybe,
                        EventId   = _eventId,
                        Reason    = "",
                        UserId    = teamUser.UserId
                    };

                    var datatabasAttendant = DaoManager.Get().AttendantDao.Save(newAttendant);
                    _attendants.Add(datatabasAttendant);
                }
            }

            foreach (var attendant in _attendants)
            {
                if (attendant.UserId == _myApplication.CurrentUser.Id)
                {
                    _myAttendant = attendant;
                    break;
                }
            }

            _attendantsListItems = new List <AttendantListItem>();

            foreach (var attendant in _attendants)
            {
                var user = DaoManager.Get().UserDao.Find(attendant.UserId);

                var newItem = new AttendantListItem
                {
                    User        = user[0],
                    AttendState = attendant.Attending,
                    Reason      = attendant.Reason
                };
                _attendantsListItems.Add(newItem);
            }
        }
예제 #11
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            _daoManager = DaoManager.Get();

            var bundle = Arguments;

            if (bundle != null)
            {
                _userId = bundle.GetInt("user_id", 0);
            }

            var layout = Activity.FindViewById <RelativeLayout>(Resource.Id.content_frame_wrapper);

            layout.SetPadding(0, 0, 0, 0);

            getCurrentUser();
        }
예제 #12
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            // In production, the React files will be served from this directory
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/build";
            });
            _logger.LogInformation("Setting up custom services");

            // Setup the database
            var databaseContext = new DatabaseContext(Configuration.GetConnectionString("DefaultConnection"));

            services.Add(new ServiceDescriptor(typeof(DatabaseContext), databaseContext));
            services.Add(new ServiceDescriptor(typeof(DaoManager), DaoManager.Get(databaseContext)));

            // configure strongly typed settings objects
            var appSettingsSection = Configuration.GetSection("AppSettings");

            services.Configure <AppSettings>(appSettingsSection);

            // configure jwt authentication
            var appSettings = appSettingsSection.Get <AppSettings>();
            var key         = Encoding.ASCII.GetBytes(appSettings.Secret);

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(x =>
            {
                x.RequireHttpsMetadata      = false;
                x.SaveToken                 = true;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(key),
                    ValidateIssuer           = false,
                    ValidateAudience         = false
                };
            });
        }
예제 #13
0
        public static int Login(MyApplication application, string username, string password)
        {
            var databaseConnectionFound = DB.Get().TestConnection();

            if (!databaseConnectionFound)
            {
                return(DatabaseConnectionError);
            }

            if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
            {
                return(NoCredentials);
            }

            if (string.IsNullOrEmpty(password))
            {
                return(NoPassword);
            }

            if (string.IsNullOrEmpty(username))
            {
                return(NoUsername);
            }

            var userDao = DaoManager.Get().UserDao;

            var users = userDao.Find("username", username);

            if (users.Count > 0)
            {
                var user = users[0];

                var hashedInput = BCryptHelper.HashPassword(password, user.PasswordSalt);

                if (hashedInput.Equals(user.PasswordHash))
                {
                    application.CurrentUser = user;
                    return(NoError);
                }
            }

            return(WrongCredentials);
        }
예제 #14
0
        public void Load()
        {
            Task.Factory.StartNew(() =>
            {
                newsList.Clear();
                var newsmessages = DaoManager.Get().NewsDao.FindAll();

                foreach (var news in newsmessages)
                {
                    newsList.Add(news.Title);
                    newsListBody.Add(news.Body);
                }
                ;
            }).ContinueWith(task => {
                ArrayAdapter <string> arrayadapter = new ArrayAdapter <string>(_activity, Android.Resource.Layout.SimpleListItem1, newsList);
                _newsListView.Adapter = arrayadapter;
                arrayadapter.NotifyDataSetChanged();
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #15
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.user_registration_screen);

            registerNewAccountTextView = FindViewById <TextView>(Resource.Id.urs_register_new_account_text);
            usernameEditText           = FindViewById <EditText>(Resource.Id.urs_username_input);
            firstnameEditText          = FindViewById <EditText>(Resource.Id.urs_firstname_input);
            lastnameEditText           = FindViewById <EditText>(Resource.Id.urs_lastname_input);
            passwordEditText           = FindViewById <EditText>(Resource.Id.urs_password_input);
            emailEditText = FindViewById <EditText>(Resource.Id.urs_email_input);
            overlay       = FindViewById <RelativeLayout>(Resource.Id.urs_overlay);

            createAccountButton        = FindViewById <Button>(Resource.Id.urs_create_account_button);
            createAccountButton.Click += delegate
            {
                CreateAccountButtonClicked();
            };

            _database   = DB.Get();
            _daoManager = DaoManager.Get();
        }
예제 #16
0
        public void getData()
        {
            Task.Factory.StartNew(() =>
            {
                var userTeams = DaoManager.Get().TeamUserDao.FindByTeamId(_myApplication.CurrentTeam.Id);

                var userIds = userTeams.Select(ut => ut.UserId.ToString()).ToList();
                var users   = DaoManager.Get().UserDao.FindByList("User_Id", userIds);

                _members.Clear();
                _membersDictionary.Clear();

                foreach (var user in users)
                {
                    _members.Add(user.Username);
                    _membersDictionary.Add(user.Username, user);
                }
            }).ContinueWith(task => {
                var adapter = new ArrayAdapter <string>(_activity, Android.Resource.Layout.SimpleListItem1, _members);
                _membersListView.Adapter = adapter;
                adapter.NotifyDataSetChanged();
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
예제 #17
0
 private void SetupDatabase()
 {
     _database   = DB.Get();
     _daoManager = DaoManager.Get();
     _daoManager.RegisterDaos();
 }
예제 #18
0
        private void OnSubmit(object sender, EventArgs e)
        {
            var nameTextView        = _view.FindViewById <TextView>(Resource.Id.EventName);
            var descriptionTextView = _view.FindViewById <TextView>(Resource.Id.EventDescription);
            //var startDateView = _view.FindViewById<TextView>(Resource.Id.StartDate);
            // var endDateView = _view.FindViewById<TextView>(Resource.Id.EndDate);

            var result = EventCreationErrorType.NoError;

            Task.Factory.StartNew(() =>
            {
                while (result == EventCreationErrorType.NoError)
                {
                    if (string.IsNullOrEmpty(nameTextView.Text))
                    {
                        result = EventCreationErrorType.NoName;
                        break;
                    }
                    else if (StartDate == DateTime.MinValue)
                    {
                        result = EventCreationErrorType.NoStartDate;
                        break;
                    }
                    else if (EndDate == DateTime.MinValue)
                    {
                        result = EventCreationErrorType.NoEndDate;
                        break;
                    }
                    else if (_selectedItem == 0)
                    {
                        result = EventCreationErrorType.NoType;
                        break;
                    }

                    else if (DateTime.Compare(StartDate, EndDate) > 0)
                    {
                        result = EventCreationErrorType.PrimaryDateSmallerThanSecondary;
                        break;
                    }

                    else if (DateTime.Compare(StartDate, DateTime.Now) < 0)
                    {
                        result = EventCreationErrorType.DateAlreadyPassed;
                        break;
                    }

                    var foundTeams = DaoManager.Get().EventDao.Count("name", _view.FindViewById <TextView>(Resource.Id.EventName).Text);

                    if (foundTeams > 0 && result == EventCreationErrorType.NoError)
                    {
                        result = EventCreationErrorType.EventAlreadyExists;
                        break;
                    }
                    else
                    {
                        var newEvent = new Event
                        {
                            Name        = nameTextView.Text,
                            Description = descriptionTextView.Text,
                            EventType   = _selectedItem,
                            StartDate   = StartDate,
                            EndDate     = EndDate,
                            Team        = _myApplication.CurrentTeam.Id
                        };

                        DaoManager.Get().EventDao.Save(newEvent);

                        result = EventCreationErrorType.NoResult;
                    }
                }
            }).ContinueWith(task =>
            {
                ProcessResult(result);
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }