public DomainModelResponse Add(GroupAddRequest request)
        {
            Group grp = new Group()
            {
                GroupCode = request.GroupCode,
                GroupName = request.GroupName,
                Objective = request.Objective,
                TimeZone = request.TimeZone
            };

            GroupType gt = _repGroupType.Get(filter: f => f.GroupTypeCode == request.GroupTypeCode).FirstOrDefault();
            Course crs = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault();
            grp.GroupTypeId = gt.GroupTypeId;
            grp.GroupType = gt;
            grp.CourseId = crs.CourseId;
            grp.Course = crs;
            _repGroup.Add(grp);
            _uow.Commit();
            grp = _repGroup.Get(filter: f => f.GroupCode == request.GroupCode).FirstOrDefault();

            if (request.userList != null)
            {
                List<int> users = _repUserProfile.Get(filter: f => request.userList.Contains(f.EmailId)).Select(x => x.UserId).ToList();
                List<CourseUserRole> Curs = _repCourseUserRole.Get(filter: f => f.CourseId == crs.CourseId && users.Contains(f.UserId)).ToList();
                foreach (CourseUserRole cur in Curs)
                {
                    cur.GroupId = grp.GroupId;
                    cur.Group = grp;
                    _repCourseUserRole.Update(cur);
                }
            }
            _uow.Commit();
            _groupResponse.addResponse("Add", MessageCodes.InfoCreatedSuccessfully, "Group : " + request.GroupCode);
            return _groupResponse;
        }
 public async Task<ActionResult> Create(GroupCreateModel Model)
 {
     if(ModelState.IsValid)
     {
         GroupAddRequest gar = new GroupAddRequest()
         {
             CourseCode = Model.CourseCode,
             GroupCode = Model.CourseCode + DateTime.UtcNow.ToString("MMddyyHmmss"),
             GroupName = Model.GroupName,
             GroupTypeCode = Model.GroupTypeCode,
             Objective = Model.Objective,
             TimeZone = Model.TimeZone,
             userList = new List<string>() { MvcApplication.userEmail }
         };
         bool resp = _groupCom.AddGroup(gar).Result;
         if(resp)
             return RedirectToAction("GroupDetail", "Group", routeValues: new { groupCode = gar.GroupCode });
     }
     ModelState.AddModelError("", "Oops! Something wrong happened! Please try again.");
     return View(Model);
 }