public object Post(object modelParam) { try { var model = JsonConvert.DeserializeObject <QuizzClassInviteRequestModel>(modelParam.ToString()); if (model == null) { return(null); } QuizzClassInviteRequest inviteEntity; model.MapToNew(out inviteEntity); inviteEntity.IsDeleted = true; _uow.QuizzClassInviteRequests.Update(inviteEntity); _svcContainer.QuizzClassJoinSvc.DeleteJoinRequest(model.QuizzClassId, false); if (model.IsAccepted) { QuizzClassMember entity = new QuizzClassMember { IsNew = false, IsNewInviteAccepted = true, QuizzClassId = model.QuizzClassId, DependentId = 0, StudentId = model.UserId }; _uow.QuizzClassMembers.Add(entity); var quizzClass = _uow.QuizzClasses.GetById(model.QuizzClassId); var parents = _svcContainer.DependentSvc.GetParentsOfUserId(model.UserId); foreach (var item in parents) { if (quizzClass.TeacherId == item) { continue; } QuizzClassMember parent = new QuizzClassMember { IsNew = true, IsNewInviteAccepted = false, QuizzClassId = model.QuizzClassId, StudentId = item, DependentId = model.UserId, IsParent = true }; _uow.QuizzClassMembers.Add(parent); } } _uow.SaveChanges(); var newModel = _uow.QuizzClasses.GetAll() .Where(qc => qc.Id == model.QuizzClassId) .ProjectTo <QuizzClassModel>(new { userId = _currentUser.Id }) .FirstOrDefault(); SetAge(newModel); newModel.TeacherName = newModel.IsTeacherQuizzmate ? newModel.TeacherFullName : newModel.TeacherUserName; return(newModel); } catch (Exception ex) { _svcContainer.LoggingSvc.Log(ex); return(null); } }
// accept/reject request public object Post(object modelParam) { try { var model = JsonConvert.DeserializeObject <QuizzClassJoinRequestModel>(modelParam.ToString()); if (model == null) { return(null); } QuizzClassJoinRequest requestEntity; model.MapToNew(out requestEntity); requestEntity.IsDeleted = true; _uow.QuizzClassJoinRequests.Update(requestEntity); _svcContainer.QuizzClassInviteSvc.DeleteInviteRequest(model.QuizzClassId, false); if (model.IsAccepted) { QuizzClassMember entity = new QuizzClassMember { IsNew = true, IsNewInviteAccepted = false, QuizzClassId = model.QuizzClassId, StudentId = model.UserId, DependentId = 0, IsParent = false }; _uow.QuizzClassMembers.Add(entity); var quizzClass = _uow.QuizzClasses.GetById(model.QuizzClassId); var parents = _svcContainer.DependentSvc.GetParentsOfUserId(model.UserId); foreach (var item in parents) { if (quizzClass.TeacherId == item) { continue; } QuizzClassMember parent = new QuizzClassMember { IsNew = true, IsNewInviteAccepted = false, QuizzClassId = model.QuizzClassId, StudentId = item, DependentId = model.UserId, IsParent = true }; _uow.QuizzClassMembers.Add(parent); } _uow.SaveChanges(); var memberModel = _uow.QuizzClassMembers.GetAll() .Where(qcm => qcm.Id == entity.Id) .ProjectTo <QuizzClassMemberModel>() .FirstOrDefault(); UpdateModel(memberModel); return(memberModel); } else { _uow.SaveChanges(); return(model); // return dummy } } catch (Exception ex) { _svcContainer.LoggingSvc.Log(ex); return(null); } }
// accepted/rejected by user public bool Patch(object modelParam) { try { var model = JsonConvert.DeserializeObject <QuizzClassInviteRequestModel>(modelParam.ToString()); if (model == null) { return(false); } var inviteEntity = _uow.QuizzClassInviteRequests.GetAll() .Where(qci => qci.QuizzClassId == model.QuizzClassId && qci.UserId == _currentUser.Id && qci.IsDeleted == false) .FirstOrDefault(); inviteEntity.IsDeleted = true; _uow.QuizzClassInviteRequests.Update(inviteEntity); _svcContainer.QuizzClassJoinSvc.DeleteJoinRequest(model.QuizzClassId, false); if (model.IsAccepted) { QuizzClassMember entity = new QuizzClassMember { IsNew = false, IsNewInviteAccepted = true, QuizzClassId = model.QuizzClassId, StudentId = _currentUser.Id, DependentId = 0, IsParent = false }; _uow.QuizzClassMembers.Add(entity); var quizzClass = _uow.QuizzClasses.GetById(model.QuizzClassId); var parents = _svcContainer.DependentSvc.GetParentsOfUserId(model.UserId); foreach (var item in parents) { if (quizzClass.TeacherId == item) { continue; } QuizzClassMember parent = new QuizzClassMember { IsNew = true, IsNewInviteAccepted = false, QuizzClassId = model.QuizzClassId, StudentId = item, DependentId = model.UserId, IsParent = true }; _uow.QuizzClassMembers.Add(parent); } } _uow.SaveChanges(); return(true); } catch (Exception ex) { _svcContainer.LoggingSvc.Log(ex); return(false); } }