async public Task LikeOrDislikeLO(int lo_id, int user_id)
        {
            var list = await _repositoryService.SearchForAsync <UserLO>(usr => usr.User_id == user_id && usr.LearningObject_id == lo_id, usr => usr.updated_at, usr => usr.id, false);



            if (list.Count > 0)
            {
                UserLO first = list.FirstOrDefault();

                first.like = !first.like;

                await _repositoryService.UpdateAsync <UserLO>(first);
            }
        }
Ejemplo n.º 2
0
        public ActionResult Login(string email, string password, string view)
        {
            try
            {
                UserLogic _UserLogic = new UserLogic();
                DynamicResponse <UserLO> response = new DynamicResponse <UserLO>();
                UserLO user = new UserLO();

                response = _HomeServices.Auth(email, password);
                if (response.HttpStatusCode != HttpStatusCode.OK)
                {
                    return(RedirectToAction("LoginForm", "Home"));
                }

                user = response.Data;
                if (user != null)
                {
                    Session["userId"] = user.Id;
                    //check roles
                    Session["isAuthor"]       = _UserLogic.CheckRole(user.Id, Roles.author, 1);
                    Session["isReviewer"]     = _UserLogic.CheckRole(user.Id, Roles.reviewer, 1);
                    Session["isEditor"]       = _UserLogic.CheckRole(user.Id, Roles.editor, 1);
                    Session["isCopyediting"]  = _UserLogic.CheckRole(user.Id, Roles.copyediting, 1);
                    Session["isProofreading"] = _UserLogic.CheckRole(user.Id, Roles.proofreading, 1);
                    //the action maybe the home page or the dashboard page
                    if (view == "true")
                    {
                        return(RedirectToAction("Index", "Management", user.Id));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home", user.Id));
                    }
                }

                return(RedirectToAction("LoginForm", "Home", user.Id));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", "Oops"));
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }