Example #1
0
        public ActionResult EditGroup(ManageGroupViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            TrainingGroup trainingGroup = null;

            if (model.Id != null)
            {
                trainingGroup = Db.TrainingGroups.FirstOrDefault(p => p.Id == model.Id);
                if (trainingGroup != null)
                {
                    trainingGroup.Name        = model.Name;
                    trainingGroup.Description = model.Description;
                }
            }
            else
            {
                var currentUserId = User.Identity.GetUserId();

                trainingGroup = new TrainingGroup(model.Name, model.Description, currentUserId);
                Db.TrainingGroups.Add(trainingGroup);
            }

            Db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Example #2
0
        public ActionResult SubscribeGroup(TrainingGroup model)
        {
            var group = QuizDb.TrainingGroups.SingleOrDefault(x => x.Id == model.Id);

            if (group == null)
            {
                return(RedirectToAction("Index"));
            }

            var user = GetCurrentUser();

            if (group.AccessToken.Equals(model.AccessToken))
            {
                var subscription = new TrainingGroupSubscription
                {
                    TrainingGroup = group,
                    TimeStamp     = DateTime.Now,
                    Userid        = user.Id
                };

                QuizDb.TrainingGroupSubscriptions.Add(subscription);
                QuizDb.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("AccessToken", "Falscher Schlüssel");


            return(View(model));
        }
Example #3
0
        public ActionResult SubscribeGroup(Guid id)
        {
            var group = QuizDb.TrainingGroups.SingleOrDefault(x => x.Id == id);

            if (group == null)
            {
                return(RedirectToAction("Index"));
            }

            var user = GetCurrentUser();

            if (group.IsPublic)
            {
                var subscription = new TrainingGroupSubscription
                {
                    TrainingGroup = group,
                    TimeStamp     = DateTime.Now,
                    Userid        = user.Id
                };

                QuizDb.TrainingGroupSubscriptions.Add(subscription);
                QuizDb.SaveChanges();

                return(RedirectToAction("Index"));
            }

            var model = new TrainingGroup();

            return(View(model));
        }
Example #4
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            TrainingGroup trainingGroup = db.TrainingGroups.Find(id);

            db.TrainingGroups.Remove(trainingGroup);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #5
0
 public AddEditTrainingGroupForm(ITrainingGroupsManager tgm, TrainingGroup currGroup)
 {
     InitializeComponent();
     isEdit         = true;
     this.currGroup = currGroup;
     this.tgm       = tgm;
     updateFields();
 }
Example #6
0
 public AddEditTrainingGroupForm(ITrainingGroupsManager tgm)
 {
     InitializeComponent();
     isEdit    = false;
     this.tgm  = tgm;
     currGroup = new TrainingGroup();
     updateComboBoxDataSource();
 }
Example #7
0
 public void AddTrainingGroup(TrainingGroup tg)
 {
     using (poolDBEntities ent = new poolDBEntities())
     {
         ent.TrainingGroups.Add(tg);
         ent.SaveChanges();
     }
 }
Example #8
0
 public void DeleteTrainingGroupById(int id)
 {
     using (poolDBEntities ent = new poolDBEntities())
     {
         TrainingGroup tg = ent.TrainingGroups.Where(t => t.Id == id).FirstOrDefault();
         ent.TrainingGroups.Remove(tg);
         ent.SaveChanges();
     }
 }
Example #9
0
 public ActionResult Edit([Bind(Include = "Id,Name,Description,IsPublic,AccessToken")] TrainingGroup trainingGroup)
 {
     if (ModelState.IsValid)
     {
         db.Entry(trainingGroup).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(trainingGroup));
 }
Example #10
0
 public void EditTrainingGroup(TrainingGroup tg)
 {
     using (poolDBEntities ent = new poolDBEntities())
     {
         TrainingGroup dbtg = ent.TrainingGroups.Where(t => t.Id == tg.Id).FirstOrDefault();
         dbtg.GroupName = tg.GroupName;
         dbtg.CoachId   = tg.CoachId;
         dbtg.Color     = tg.Color;
         ent.SaveChanges();
     }
 }
 public void EditTrainingGroupWithName(string groupName, TrainingGroup trainingGroup, ITrainingGroupRepository trainingGroupRepository)
 {
     try
     {
         trainingGroupRepository.EditTrainingGroupWithName(groupName, trainingGroup);
     }
     catch (NameAlreadyTakenException nameEx)
     {
         throw nameEx;
     }
 }
Example #12
0
        public Color GetTrainingGroupColorByComboBoxIndex(int ind)
        {
            Color         c  = Color.White;
            TrainingGroup tg = GetTrainingGroupByComboBoxIndex(ind);

            if (tg.Color != null && tg.Color.Length == 4)
            {
                c = Color.FromArgb(tg.Color[0], tg.Color[1], tg.Color[2], tg.Color[3]);
            }
            return(c);
        }
 public void AddTrainingGroup(TrainingGroup trainingGroup, ITrainingGroupRepository trainingGroupRepository)
 {
     try
     {
         trainingGroupRepository.AddTrainingGroup(trainingGroup);
     }
     catch (NameAlreadyTakenException nameEx)
     {
         throw nameEx;
     }
 }
Example #14
0
        // GET: Admin/TrainingGroup/Create
        public ActionResult Create(Guid?id)
        {
            var plan = db.TrainingPlans.SingleOrDefault(x => x.Id == id.Value);

            var model = new TrainingGroup();

            model.TrainingPlan = plan;


            return(View(model));
        }
Example #15
0
        public void EditTrainingGroupWithName(string trainingGroupName, TrainingGroup newTrainingGroup)
        {
            if (ExistsTrainingGroupWithName(trainingGroupName))
            {
                if (trainingGroupName == newTrainingGroup.Name || !ExistsTrainingGroupWithName(newTrainingGroup.Name))
                {
                    bool IsValidTrainingGroup = true;

                    foreach (TrainingPeriod trainingPeriod in newTrainingGroup.TrainingPeriods)
                    {
                        List <TrainingGroup> otherGroups = trainingGroups.FindAll(item =>
                                                                                  item.Name != newTrainingGroup.Name);

                        foreach (TrainingGroup group in otherGroups)
                        {
                            if (group.TrainingPeriods.Any(period =>
                                                          period.DayOfWeek == trainingPeriod.DayOfWeek &&
                                                          trainingPeriod.PeriodEnd > period.PeriodStart &&
                                                          trainingPeriod.PeriodStart < period.PeriodEnd))
                            {
                                IsValidTrainingGroup = false;
                                break;
                            }
                        }

                        if (!IsValidTrainingGroup)
                        {
                            break;
                        }
                    }

                    if (IsValidTrainingGroup)
                    {
                        int trainingGroupToEditIndex = trainingGroups.FindIndex(trainingGroup => trainingGroup.Name == trainingGroupName);
                        trainingGroups[trainingGroupToEditIndex] = newTrainingGroup;

                        SendDataToObservers();
                    }
                    else
                    {
                        throw new PeriodAlreadyTakenException();
                    }
                }
                else
                {
                    throw new NameAlreadyTakenException();
                }
            }
            else
            {
                throw new NonexistantNameException();
            }
        }
Example #16
0
        public int?GetTrainingGroupIdByName(string trainingGroupName)
        {
            int           id = 0;
            TrainingGroup tg = currTrainingGroups.Find(t => t.GroupName == trainingGroupName);

            if (tg == null)
            {
                return(null);
            }
            id = currTrainingGroups.Find(t => t.GroupName == trainingGroupName).Id;
            return(id);
        }
        public void ShowModal(IMainController mainController, TrainingGroup trainingGroup, List <Training> trainings, List <TrainingPeriod> trainingPeriods)
        {
            this.mainController  = mainController;
            currentTrainingGroup = trainingGroup;
            this.trainings       = trainings;
            this.trainingPeriods = trainingPeriods;

            btnConfirm.Enabled = false;

            UpdateLists();

            ShowDialog();
        }
        public Task HandleAsync(CreateGroupCommand command)
        {
            var group = new TrainingGroup(command.Day, command.Hour, command.LevelName);

            group.SetCoach(command.CoachId);
            _dbContext.TrainingGroups.Add(group);
            if (_dbContext.SaveChanges() == 0)
            {
                throw new Exception("Could not add created group");
            }

            return(Task.CompletedTask);
        }
Example #19
0
        public void RemoveTrainingGroupWithName(string trainingGroupName)
        {
            if (ExistsTrainingGroupWithName(trainingGroupName))
            {
                TrainingGroup trainingGroupToRemove = trainingGroups.Find(trainingGroup => trainingGroup.Name == trainingGroupName);
                trainingGroups.Remove(trainingGroupToRemove);

                SendDataToObservers();
            }
            else
            {
                throw new NonexistantNameException();
            }
        }
Example #20
0
        // GET: Admin/TrainingGroup/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TrainingGroup trainingGroup = db.TrainingGroups.Find(id);

            if (trainingGroup == null)
            {
                return(HttpNotFound());
            }
            return(View(trainingGroup));
        }
        public void Test_AddTrainingGroupWithAlreadyTakenTrainingPeriod()
        {
            Training training = trainingRepository.GetTrainingWithName("Trening funkcionalne snage");

            TrainingPeriod trainingPeriod1 = trainingPeriodRepository.GetTrainingPeriodWithId(1);
            TrainingPeriod trainingPeriod2 = trainingPeriodRepository.GetTrainingPeriodWithId(2);

            TrainingGroup trainingGroup = new TrainingGroup("Grupa za testiranje", training,
                                                            new List <TrainingPeriod> {
                trainingPeriod1, trainingPeriod2
            },
                                                            350.00M);

            trainingGroupRepository.AddTrainingGroup(trainingGroup);
        }
Example #22
0
        public ActionResult Create(TrainingGroup trainingGroup)
        {
            if (ModelState.IsValid)
            {
                var plan = db.TrainingPlans.SingleOrDefault(x => x.Id == trainingGroup.TrainingPlan.Id);

                if (plan != null)
                {
                    trainingGroup.Id           = Guid.NewGuid();
                    trainingGroup.TrainingPlan = plan;
                    db.TrainingGroups.Add(trainingGroup);
                    db.SaveChanges();
                    return(RedirectToAction("Index", new { id = plan.Id }));
                }
            }

            return(View(trainingGroup));
        }
Example #23
0
        public void Test_AddClientWithAlreadyExistingOib()
        {
            TrainingGroup group = trainingGroupRepository.GetTrainingGroupWithName("Početnička grupa");

            Client client1 = new Client("52938549299", "Ivanka", "Bošković", new DateTime(1981, 2, 8), "0912258674",
                                        new DateTime(2020, 2, 20), FitnessLevel.Beginner, "",
                                        new List <TrainingGroup> {
                group
            });
            Client client2 = new Client("52938549299", "Ivanko", "Bošković", new DateTime(1981, 3, 8), "0992258674",
                                        new DateTime(2020, 3, 20), FitnessLevel.Beginner, "",
                                        new List <TrainingGroup> {
                group
            });

            clientRepository.AddClient(client1);
            clientRepository.AddClient(client2);
        }
        public void Test_AddTrainingGroup()
        {
            Training training = trainingRepository.GetTrainingWithName("Trening funkcionalne snage");

            TrainingPeriod trainingPeriod1 = trainingPeriodRepository.GetTrainingPeriodWithId(6);
            TrainingPeriod trainingPeriod2 = trainingPeriodRepository.GetTrainingPeriodWithId(7);

            TrainingGroup trainingGroup = new TrainingGroup("Grupa za testiranje", training,
                                                            new List <TrainingPeriod> {
                trainingPeriod1, trainingPeriod2
            },
                                                            350.00M);

            trainingGroupRepository.AddTrainingGroup(trainingGroup);

            Assert.IsTrue(trainingGroupRepository.GetAllTrainingGroups().Contains(trainingGroup));

            trainingGroupRepository.RemoveTrainingGroupWithName("Grupa za testiranje");
        }
Example #25
0
        public void AddTrainingGroup(TrainingGroup trainingGroup)
        {
            bool IsValidTrainingGroup = true;

            foreach (TrainingPeriod trainingPeriod in trainingGroup.TrainingPeriods)
            {
                foreach (TrainingGroup group in trainingGroups)
                {
                    if (group.TrainingPeriods.Any(period =>
                                                  period.DayOfWeek == trainingPeriod.DayOfWeek &&
                                                  trainingPeriod.PeriodEnd > period.PeriodStart &&
                                                  trainingPeriod.PeriodStart < period.PeriodEnd))
                    {
                        IsValidTrainingGroup = false;
                        break;
                    }
                }

                if (!IsValidTrainingGroup)
                {
                    break;
                }
            }

            if (IsValidTrainingGroup)
            {
                if (!ExistsTrainingGroupWithName(trainingGroup.Name))
                {
                    trainingGroups.Add(trainingGroup);

                    SendDataToObservers();
                }
                else
                {
                    throw new NameAlreadyTakenException();
                }
            }
            else
            {
                throw new PeriodAlreadyTakenException();
            }
        }
Example #26
0
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            if (IsBtnConfirmEnabled())
            {
                try
                {
                    List <TrainingGroup> selectedGroups = new List <TrainingGroup>();

                    foreach (object item in listBoxGroups.SelectedItems)
                    {
                        TrainingGroup group = (TrainingGroup)item.GetType()
                                              .GetProperty("Value")
                                              .GetValue(item, null);
                        selectedGroups.Add(group);
                    }

                    object comboBoxItem = comboBoxFitnessLvl.SelectedItem;

                    FitnessLevel fitnessLevel = (FitnessLevel)comboBoxItem
                                                .GetType().GetProperty("Value")
                                                .GetValue(comboBoxItem, null);

                    mainController.AddClient(
                        new Client(textBoxOib.Text, textBoxFirstName.Text, textBoxLastName.Text,
                                   dtpDateOfBirth.Value, textBoxPhoneNum.Text,
                                   dtpDateOfJoining.Value, fitnessLevel,
                                   textBoxNotes.Text, selectedGroups));

                    DialogResult = DialogResult.OK;
                }
                catch (IncompleteDataException)
                {
                    MessageBox.Show("Nepotpuni ili neispravni podaci", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (OibAlreadyTakenException)
                {
                    MessageBox.Show("Klijent s unesenim OIB-om već postoji", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Example #27
0
        public void Test_AddClient()
        {
            TrainingGroup group = trainingGroupRepository.GetTrainingGroupWithName("Početnička grupa");

            int numClientsBefore = clientRepository.GetAllClients().Count;

            Client client = new Client("52938549299", "Ivanka", "Bošković", new DateTime(1981, 2, 8), "0912258674",
                                       new DateTime(2020, 2, 20), FitnessLevel.Beginner, "",
                                       new List <TrainingGroup> {
                group
            });

            clientRepository.AddClient(client);

            int numClientsAfter = clientRepository.GetAllClients().Count;

            List <Client> clients = clientRepository.GetAllClients();

            Assert.AreEqual(numClientsAfter, numClientsBefore + 1);
            Assert.IsTrue(clients.Contains(client));

            clientRepository.RemoveClientWithOib("52938549299");
        }
        public void ShowEditTrainingGroup(IFormFactory formFactory,
                                          ITrainingGroupRepository trainingGroupRepository,
                                          ITrainingRepository trainingRepository,
                                          ITrainingPeriodRepository trainingPeriodRepository,
                                          string groupName,
                                          IMainController mainController)
        {
            IEditTrainingGroupForm form = formFactory.CreateEditTrainingGroupForm();

            TrainingGroup trainingGroup = trainingGroupRepository.GetTrainingGroupWithName(groupName);

            List <Training> trainings = trainingRepository.GetAllTrainings();

            List <TrainingPeriod> trainingPeriods = trainingPeriodRepository.GetAllTrainingPeriods().ToList();

            // Uklanjanje zauzetih termina s popisa dostupnih termina
            foreach (TrainingGroup group in trainingGroupRepository.GetAllTrainingGroups())
            {
                if (group.Name != groupName)
                {
                    foreach (TrainingPeriod trainingPeriod in group.TrainingPeriods)
                    {
                        int index = trainingPeriods.FindIndex(period => period.PeriodId == trainingPeriod.PeriodId);

                        if (index != -1)
                        {
                            trainingPeriods.RemoveAt(index);
                        }
                    }
                }
            }

            List <TrainingPeriod> newPeriods = trainingPeriods.Select(item => item).ToList();

            form.ShowModal(mainController, trainingGroup, trainings, newPeriods);
        }
Example #29
0
        public static void UpdateRepositories(TestContext context)
        {
            // Ako repozitoriji nisu napunjeni
            if (clientDebtRepository.GetAllClientDebts().Count == 0)
            {
                Exercise exercise1 = new Exercise("Čučnjevi", FitnessLevel.Beginner, "Opis čučnjeva");
                Exercise exercise2 = new Exercise("Sklekovi", FitnessLevel.Intermediate, "Opis sklekova");
                Exercise exercise3 = new Exercise("Plank", FitnessLevel.Beginner, "Opis planka");
                Exercise exercise4 = new Exercise("Ruski čučnjevi", FitnessLevel.Advanced, "Opis ruskih čučnjeva");
                Exercise exercise5 = new Exercise("Bočni plank", FitnessLevel.Intermediate, "Opis bočnog planka");
                Exercise exercise6 = new Exercise("Podizanja trupa", FitnessLevel.Intermediate, "Opis podizanja trupa");

                exerciseRepository.AddExercise(exercise1);
                exerciseRepository.AddExercise(exercise2);
                exerciseRepository.AddExercise(exercise3);
                exerciseRepository.AddExercise(exercise4);
                exerciseRepository.AddExercise(exercise5);
                exerciseRepository.AddExercise(exercise6);

                Training training1 = new Training("Trening funkcionalne snage", FitnessLevel.Beginner,
                                                  new List <Exercise> {
                    exercise1, exercise2, exercise3
                });
                Training training2 = new Training("Napredni trening funkcionalne snage", FitnessLevel.Advanced,
                                                  new List <Exercise> {
                    exercise1, exercise2, exercise3, exercise4, exercise5, exercise6
                });

                trainingRepository.AddTraining(training1);
                trainingRepository.AddTraining(training2);

                TrainingPeriod trainingPeriod1 = new TrainingPeriod(DayOfWeek.Monday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod2 = new TrainingPeriod(DayOfWeek.Tuesday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod3 = new TrainingPeriod(DayOfWeek.Wednesday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod4 = new TrainingPeriod(DayOfWeek.Thursday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod5 = new TrainingPeriod(DayOfWeek.Friday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod6 = new TrainingPeriod(DayOfWeek.Saturday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));
                TrainingPeriod trainingPeriod7 = new TrainingPeriod(DayOfWeek.Sunday, new TimeSpan(17, 0, 0),
                                                                    new TimeSpan(18, 0, 0));

                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod1);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod2);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod3);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod4);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod5);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod6);
                trainingPeriodRepository.AddTrainingPeriod(trainingPeriod7);

                TrainingGroup trainingGroup1 = new TrainingGroup("Početnička grupa", training1,
                                                                 new List <TrainingPeriod> {
                    trainingPeriod2, trainingPeriod4
                }, 200.00M);
                TrainingGroup trainingGroup2 = new TrainingGroup("Napredna grupa", training2,
                                                                 new List <TrainingPeriod> {
                    trainingPeriod1, trainingPeriod3, trainingPeriod5
                }, 300.00M);

                trainingGroupRepository.AddTrainingGroup(trainingGroup1);
                trainingGroupRepository.AddTrainingGroup(trainingGroup2);

                Client client1 = new Client("12938549201", "Ivana", "Marković", new DateTime(1981, 1, 8), "0912728274",
                                            new DateTime(2020, 2, 10), FitnessLevel.Beginner, "Ima problema s koljenima",
                                            new List <TrainingGroup> {
                    trainingGroup1
                });
                Client client2 = new Client("52932999221", "Đorđe", "Ivanović", new DateTime(1991, 5, 20), "0981827364",
                                            new DateTime(2020, 9, 5), FitnessLevel.Advanced, "",
                                            new List <TrainingGroup> {
                    trainingGroup1, trainingGroup2
                });
                Client client3 = new Client("29375948378", "Josip", "Cvitković", new DateTime(1995, 10, 15), "0913819204",
                                            new DateTime(2020, 10, 10), FitnessLevel.Advanced, "",
                                            new List <TrainingGroup> {
                    trainingGroup2
                });
                Client client4 = new Client("10382960594", "Sara", "Praputak", new DateTime(1998, 4, 25), "0998278477",
                                            new DateTime(2021, 1, 11), FitnessLevel.Beginner, "Ima problema s leđima",
                                            new List <TrainingGroup> {
                    trainingGroup1
                });
                Client client5 = new Client("10283953829", "Ivona", "Malenica", new DateTime(1997, 12, 12), "0919287782",
                                            new DateTime(2021, 1, 15), FitnessLevel.Beginner, "",
                                            new List <TrainingGroup> {
                    trainingGroup1
                });

                clientRepository.AddClient(client1);
                clientRepository.AddClient(client2);
                clientRepository.AddClient(client3);
                clientRepository.AddClient(client4);
                clientRepository.AddClient(client5);

                ClientDebt clientDebt1 = new ClientDebt(client1, 200.00M, "Članarina za studeni 2020 (Početna grupa)");
                ClientDebt clientDebt2 = new ClientDebt(client1, 200.00M, "Članarina za prosinac 2020 (Početna grupa)");
                ClientDebt clientDebt3 = new ClientDebt(client2, 200.00M, "Članarina za prosinac 2020 (Početna grupa)");
                ClientDebt clientDebt4 = new ClientDebt(client2, 300.00M, "Članarina za prosinac 2020 (Napredna grupa)");
                ClientDebt clientDebt5 = new ClientDebt(client3, 300.00M, "Članarina za prosinac 2020 (Napredna grupa)");
                ClientDebt clientDebt6 = new ClientDebt(client4, 200.00M, "Članarina za prosinac 2020 (Početna grupa)");
                ClientDebt clientDebt7 = new ClientDebt(client5, 200.00M, "Članarina za prosinac 2020 (Početna grupa)");

                clientDebtRepository.AddClientDebt(clientDebt1);
                clientDebtRepository.AddClientDebt(clientDebt2);
                clientDebtRepository.AddClientDebt(clientDebt3);
                clientDebtRepository.AddClientDebt(clientDebt4);
                clientDebtRepository.AddClientDebt(clientDebt5);
                clientDebtRepository.AddClientDebt(clientDebt6);
                clientDebtRepository.AddClientDebt(clientDebt7);
            }
        }
Example #30
0
        public void EditTrainingGroupWithName(string groupName, TrainingGroup trainingGroup)
        {
            TrainingGroupController trainingGroupController = new TrainingGroupController();

            trainingGroupController.EditTrainingGroupWithName(groupName, trainingGroup, trainingGroupRepository);
        }