private DynamicResponse <List <DiscussionParticipantsLO> > GetDiscussionParticipants(long discussionId) { #region Accessors DiscussionParticipantAccessor _DiscussionParticipantAccessor = new DiscussionParticipantAccessor(); UserAccessor _UserAccessor = new UserAccessor(); #endregion DynamicResponse <List <DiscussionParticipantsLO> > response = new DynamicResponse <List <DiscussionParticipantsLO> >(); try { List <DiscussionParticipant> participantsModel = new List <DiscussionParticipant>(); participantsModel = _DiscussionParticipantAccessor.GetList(discussionId); List <DiscussionParticipantsLO> data = new List <DiscussionParticipantsLO>(); //get user for each useid in the discussion participants User user = new User(); foreach (DiscussionParticipant item in participantsModel) { user = new User(); user = _UserAccessor.Get(item.UserId); if (user == null) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later"; response.ServerMessage = "no participant"; return(response); } data.Add(new DiscussionParticipantsLO { Email = user.Email, FirstName = user.FirstName, LastName = user.LastName }); } response.Data = data; response.HttpStatusCode = HttpStatusCode.OK; return(response); } catch (Exception ex) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later."; response.ServerMessage = ex.Message; return(response); } }
public DynamicResponse <DiscussionLO> GetWholeDiscussion(long discussionId) { DynamicResponse <DiscussionLO> response = new DynamicResponse <DiscussionLO>(); #region Accessor DiscussionAccessor _DiscussionAccessor = new DiscussionAccessor(); UserAccessor _UserAccessor = new UserAccessor(); #endregion try { User user = new User(); DiscussionLO data = new DiscussionLO(); //get list of discussion Discussion main = _DiscussionAccessor.Get(discussionId); if (main == null) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later."; response.ServerMessage = "no discussion"; return(response); } data.Subject = main.Subject; data.DiscussionDate = (DateTime)main.SysDate; data.isClosed = main.isClosed; data.Message = main.Message; user = _UserAccessor.Get(main.SenderId); UserLO mainSender = new UserLO(); mainSender.Email = user.Email; mainSender.FirstName = user.FirstName; mainSender.LastName = user.LastName; data.MainSender = mainSender; DynamicResponse <List <DiscussionFileLO> > mainfiles = new DynamicResponse <List <DiscussionFileLO> >(); //get files mainfiles = GetDiscussionFile(main.Id); if (mainfiles.HttpStatusCode != HttpStatusCode.OK) { response.HttpStatusCode = mainfiles.HttpStatusCode; response.Message = mainfiles.Message; response.ServerMessage = mainfiles.ServerMessage; return(response); } data.Files = mainfiles.Data; //get replies for the discussion #region Replies List <Discussion> replies = new List <Discussion>(); replies = _DiscussionAccessor.GetReplies(discussionId); List <DiscussionContentLO> contentOfDiscussion = new List <DiscussionContentLO>(); DynamicResponse <List <DiscussionFileLO> > files = new DynamicResponse <List <DiscussionFileLO> >(); foreach (Discussion item in replies) { //get files files = GetDiscussionFile(item.Id); if (files.HttpStatusCode != HttpStatusCode.OK) { response.HttpStatusCode = files.HttpStatusCode; response.Message = files.Message; response.ServerMessage = files.ServerMessage; return(response); } user = _UserAccessor.Get(item.SenderId); UserLO Sender = new UserLO(); Sender.Email = user.Email; Sender.FirstName = user.FirstName; Sender.LastName = user.LastName; contentOfDiscussion.Add(new DiscussionContentLO { Body = item.Message, SentDate = (DateTime)item.SysDate, Sender = Sender, Files = files.Data }); } data.Discussions = contentOfDiscussion; #endregion //get participants #region Participants DynamicResponse <List <DiscussionParticipantsLO> > participants = GetDiscussionParticipants(discussionId); if (participants.HttpStatusCode != HttpStatusCode.OK) { response.HttpStatusCode = participants.HttpStatusCode; response.Message = participants.Message; response.ServerMessage = participants.ServerMessage; return(response); } data.Participants = participants.Data; #endregion response.HttpStatusCode = HttpStatusCode.OK; response.Data = data; return(response); } catch (Exception ex) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later"; response.ServerMessage = ex.Message; return(response); } }
private DynamicResponse <DiscussionLO> GetBasicInfo(long discussionId) { DynamicResponse <DiscussionLO> response = new DynamicResponse <DiscussionLO>(); #region Accessors DiscussionAccessor _DiscussionAccessor = new DiscussionAccessor(); UserAccessor _UserAccessor = new UserAccessor(); #endregion try { DiscussionLO data = new DiscussionLO(); //get the discussion Discussion discussionModel = _DiscussionAccessor.Get(discussionId); //subject and id data.Subject = discussionModel.Subject; data.Id = discussionModel.Id; //original sender #region Original Sender User sender = _UserAccessor.Get(discussionModel.SenderId); if (sender == null) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later."; response.ServerMessage = "no sender"; return(response); } UserLO originalSender = new UserLO(); originalSender.Email = sender.Email; originalSender.FirstName = sender.FirstName; originalSender.LastName = sender.LastName; data.MainSender = originalSender; #endregion //isclosed data.isClosed = discussionModel.isClosed; //number of replies List <Discussion> replies = new List <Discussion>(); replies = _DiscussionAccessor.GetReplies(discussionId); data.NumberOfReplies = replies.Count; //last replier #region last repkier if (replies.Count != 0) { User lastreplier = _UserAccessor.Get(replies[replies.Count - 1].SenderId); if (lastreplier == null) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later."; response.ServerMessage = "no sender"; return(response); } UserLO lastReplier = new UserLO(); lastReplier.Email = sender.Email; lastReplier.FirstName = sender.FirstName; lastReplier.LastName = sender.LastName; data.LastSender = lastReplier; } #endregion response.HttpStatusCode = HttpStatusCode.OK; response.Data = data; return(response); } catch (Exception ex) { response.HttpStatusCode = HttpStatusCode.InternalServerError; response.Message = "Please try again later"; response.ServerMessage = ex.Message; return(response); } }