Beispiel #1
0
        public async Task AssignNewPlatoonCommander(Prosba request, bool accepted)
        {
            if (accepted)
            {
                var soldier = await _soldierRepo.Get()
                              .Where(s => s.IdOsoby == request.IdZglaszajacego).SingleOrDefaultAsync();

                var platoon = await _platoonRepo.Get()
                              .Where(p => p.NrKompanii == request.NrKompanii && p.NrPlutonu == request.NrPlutonu)
                              .SingleOrDefaultAsync();

                soldier.NrPlutonu = request.NrPlutonu;
                platoon.IdDowodcy = soldier.IdOsoby;

                _soldierRepo.Update(soldier);
                await _soldierRepo.SaveAsync();

                _platoonRepo.Update(platoon);
                await _platoonRepo.SaveAsync();

                var user = (await _userManager.GetUsersInRoleAsync(UserRoleName)).Where(u => u.IdOsoby == request.IdZglaszajacego).SingleOrDefault();

                try
                {
                    await _roleService.AddToPCRole(user);

                    await _firebaseService.SubscribeToPlatoonTopic(request.IdZglaszajacego, request.NrKompanii,
                                                                   (int)request.NrPlutonu, false);
                }
                catch (Exception) { }
            }

            _requestRepo.Delete(request);
            await _requestRepo.SaveAsync();
        }
Beispiel #2
0
        public async Task JoinCompannyGroup(int companyId, string requestingUser)
        {
            var user = await _userManager.FindByNameAsync(requestingUser);

            var request = new Prosba
            {
                NrKompanii      = companyId,
                IdZglaszajacego = (int)user.IdOsoby,
                TypProsby       = TypProsby.JC
            };

            _requestRepo.Add(request);
            await _requestRepo.SaveAsync();
        }
Beispiel #3
0
        public async Task AcceptRequest(Prosba request, bool accepted)
        {
            if (accepted)
            {
                var soldier = await _soldierRepo.Get().Where(s => s.IdOsoby == request.IdZglaszajacego).SingleOrDefaultAsync();

                if (request.TypProsby == TypProsby.PA)
                {
                    if (soldier.NrPlutonu != request.NrPlutonu)
                    {
                        throw new Exception("Soldier is not a member of this platoon");
                    }

                    soldier.Funkcyjny = true;
                    _soldierRepo.Update(soldier);
                    await _soldierRepo.SaveAsync();

                    var user = (await _userManager.GetUsersInRoleAsync(UserRoleName)).Where(u => u.IdOsoby == request.IdZglaszajacego).SingleOrDefault();

                    try
                    {
                        await _roleService.AddToAssRole(user);

                        await _firebaseService.SubscribeToPlatoonTopic(soldier.IdOsoby, request.NrKompanii, (int)request.NrPlutonu, true);
                    }
                    catch (Exception) { }
                }
                else
                {
                    soldier.NrPlutonu = request.NrPlutonu;
                    _soldierRepo.Update(soldier);
                    await _soldierRepo.SaveAsync();

                    try
                    {
                        await _firebaseService.SubscribeToPlatoonTopic(soldier.IdOsoby, request.NrKompanii, (int)request.NrPlutonu, false);
                    }
                    catch (Exception) { }
                }
            }

            _requestRepo.Delete(request);
            await _requestRepo.SaveAsync();
        }
Beispiel #4
0
        public async Task AcceptRequest(Prosba request, bool accepted)
        {
            if (accepted)
            {
                var soldier = await _soldierRepo.Get().Where(s => s.IdOsoby == request.IdZglaszajacego).SingleOrDefaultAsync();

                soldier.NrKompanii = request.NrKompanii;
                _soldierRepo.Update(soldier);
                await _soldierRepo.SaveAsync();

                try
                {
                    await _firebaseService.SubscribeToCompanyTopic(soldier.IdOsoby, request.NrKompanii);
                }
                catch (Exception) { }
            }

            _requestRepo.Delete(request);
            await _requestRepo.SaveAsync();
        }
Beispiel #5
0
        public async Task JoinPlatoonGroup(int companyId, int platoonId, string requestingUser)
        {
            var user = await _userManager.FindByNameAsync(requestingUser);

            var soldier = await _soldierRepo.Get().AsNoTracking().Where(p => p.IdOsoby == user.IdOsoby).SingleOrDefaultAsync();

            if (soldier.NrKompanii != companyId)
            {
                throw new Exception("Soldier is not a member of this company");
            }

            var request = new Prosba
            {
                NrKompanii      = companyId,
                NrPlutonu       = platoonId,
                IdZglaszajacego = soldier.IdOsoby,
                TypProsby       = TypProsby.JP
            };

            _requestRepo.Add(request);
            await _requestRepo.SaveAsync();
        }
Beispiel #6
0
        /// <summary>Request a Platoon Commander Assistant Role</summary>
        public async Task ApplyForPCARole(int companyId, int platoonId, string requestingUser)
        {
            var user = await _userManager.FindByNameAsync(requestingUser);

            var requesting = await _soldierRepo.Get().AsNoTracking().Where(s => s.IdOsoby == user.IdOsoby).SingleOrDefaultAsync();

            if (requesting.NrKompanii != companyId || requesting.NrPlutonu != platoonId)
            {
                throw new InvalidOperationException("User must be assigned to the company first and be a soldier of the platoon");
            }

            var request = new Prosba
            {
                NrKompanii      = companyId,
                NrPlutonu       = platoonId,
                IdZglaszajacego = requesting.IdOsoby,
                TypProsby       = TypProsby.PA
            };

            _requestRepo.Add(request);
            await _requestRepo.SaveAsync();
        }