public async Task <IActionResult> UpdateAssigmentStudent([FromBody] AssignmentUpdateDTO data, string uniqueId)
        {
            if (string.IsNullOrEmpty(uniqueId))
            {
                return(Ok(new { status = false, message = "GroupName cannot be null or empty", data = data }));
            }


            var student = await _mongoRepositoryStudents.FindOneAsync(x => x.UniqueId.Equals(uniqueId));

            if (student == null)
            {
                return(BadRequest(new { status = false, message = $"Student with {uniqueId} not found", data = "" }));
            }

            var oldAssigmentStud = new List <Assignment>();
            var studTotal        = 0;

            foreach (var studAss in student.Assignments)
            {
                if (studAss.AssigmentId != null && studAss.AssigmentId.Equals(data.AssigmentId))
                {
                    studAss.MainTitle = data.Data.MainTitle;
                    studAss.Total     = data.Data.Total;
                    studAss.Weight    = data.Data.Weight;
                    studAss.Name      = data.Data.Name;
                }
                oldAssigmentStud.Add(studAss);
                var learnerMarkTotal = 0;
                foreach (var c in studAss.MainTitle)
                {
                    learnerMarkTotal += Convert.ToInt32(c.Content.LearnerMark);
                }
                var grTotal = ((learnerMarkTotal / Convert.ToInt32(studAss.Total)) * 100) * (studAss.Weight / 100);
                studTotal += grTotal;
            }

            student.Assignments = oldAssigmentStud;
            student.TotalMark   = studTotal.ToString();
            await _mongoRepositoryStudents.ReplaceOneAsync(student);


            return(Ok(new { status = true, message = "successful request", data = student }));
        }
        public async Task <IActionResult> UpdateAssigment([FromBody] AssignmentUpdateDTO data)
        {
            if (string.IsNullOrEmpty(data.GroupName))
            {
                return(Ok(new { status = false, message = "GroupName cannot be null or empty", data = data }));
            }

            var nameOfTheGroup = CheckIfGroupExist(data.GroupName);

            if (string.IsNullOrEmpty(nameOfTheGroup.Item1))
            {
                return(Ok(new { status = false, message = $"Students Group {data.AssigmentId} does not exist", data = "" }));
            }

            var foundAssigment = await _mongoRepositoryAssigment.FindOneAsync(x => x.AssigmentId.Equals(data.AssigmentId));

            if (foundAssigment == null)
            {
                return(Ok(new { status = false, message = $"Assigment {data.Data.Name} not found", data = "" }));
            }

            foundAssigment.Total     = data.Data.Total;
            foundAssigment.MainTitle = data.Data.MainTitle;
            foundAssigment.Weight    = data.Data.Weight;
            foundAssigment.Name      = foundAssigment.Name;

            await _mongoRepositoryAssigment.ReplaceOneAsync(foundAssigment);


            var gr = await _mongoRepositoryGroup.FindOneAsync(x => x.GroupId.Equals(nameOfTheGroup.Item2));

            var oldAssignents = new List <Assignment>();

            foreach (var ass in gr.Assignemts)
            {
                if (ass.AssigmentId != null && ass.AssigmentId.Equals(foundAssigment.AssigmentId))
                {
                    ass.MainTitle = data.Data.MainTitle;
                    ass.Total     = data.Data.Total;
                    ass.Weight    = data.Data.Weight;
                    ass.Name      = data.Data.Name;
                }
                oldAssignents.Add(ass);
            }
            gr.Assignemts = oldAssignents;
            await _mongoRepositoryGroup.ReplaceOneAsync(gr);



            var studentOfThisGroup = _mongoRepositoryStudents.AsQueryable().Where(x => x.GroupId.Equals(nameOfTheGroup.Item2)).ToList();

            foreach (var stud in studentOfThisGroup)
            {
                var oldAssigmentStud = new List <Assignment>();
                var studTotal        = 0;
                foreach (var studAss in stud.Assignments)
                {
                    if (studAss.AssigmentId != null && studAss.AssigmentId.Equals(foundAssigment.AssigmentId))
                    {
                        studAss.MainTitle = data.Data.MainTitle;
                        studAss.Total     = data.Data.Total;
                        studAss.Weight    = data.Data.Weight;
                        studAss.Name      = data.Data.Name;
                    }
                    oldAssigmentStud.Add(studAss);
                    var learnerMarkTotal = 0;
                    foreach (var c in studAss.MainTitle)
                    {
                        learnerMarkTotal += Convert.ToInt32(c.Content.LearnerMark);
                    }
                    var grTotal = ((learnerMarkTotal / Convert.ToInt32(studAss.Total)) * 100) * (studAss.Weight / 100);
                    studTotal += grTotal;
                }

                stud.Assignments = oldAssigmentStud;
                stud.TotalMark   = studTotal.ToString();
                await _mongoRepositoryStudents.ReplaceOneAsync(stud);
            }

            return(Ok(new { status = true, message = "successful request", data = foundAssigment }));
        }