예제 #1
0
        //TODO: Notification - V - TEST
        public void ReopenTicket()
        {
            if (!CheckSessionAccess())
            {
                return;
            }

            //String ReopenText = "ToDo : Get reopen text from View!";
            //ReopenText = "";
            //View.ShowReopenError();

            Domain.Enums.TicketMessageSendError SendError = Domain.Enums.TicketMessageSendError.none;
            //Boolean ChangeError = false;

            //if(String.IsNullOrEmpty(ReopenText))
            //    ChangeError = service.TicketChangeStatus(View.TicketId, Domain.Enums.TicketStatus.open);
            //else
            //SendError = service.MessageSendUser(
            //    View.TicketId,
            //    ,
            //    "",
            //    true,
            //    Domain.Enums.TicketStatus.open);
            Int64   NewMessageId = 0;
            Boolean Changed      = service.TicketStatusModify(View.TicketId, Domain.Enums.TicketStatus.open, View.GetChangeStatusMessage(Domain.Enums.TicketStatus.open), true, Domain.Enums.MessageUserType.Partecipant, ref NewMessageId);

            //if (SendError != Domain.Enums.TicketMessageSendError.none)
            //    View.ShowSendError(SendError);
            //else
            Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID);

            if (!Changed)
            {
                this.View.ShowChangeStatusError(true);
                //Begin Action
                List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                Objects.Add(ModuleTicket.KVPgetUser(userId));
                Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId));

                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                //End Action

                SendNotification(NewMessageId, userId, ModuleTicket.NotificationActionType.StatusChanged);
            }
            else
            {
                this.InitView();
            }
            //init view!!!!!! SE TUTTOP OK!!!!
        }
예제 #2
0
        //TODO: notification - V - test
        public void SendMessage(
            String Text, String Preview, Boolean HideToUser,
            Domain.Enums.TicketStatus NewStatus,
            Domain.Enums.MessageType MsgType,
            Int64 DraftId)
        {
            if (!CheckSessionAccess())
            {
                return;
            }

            if (!service.UserHasManResTicketPermission(View.TicketId))
            {
                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None);
                View.ShowNoPermission();
            }
            if (DraftId <= 0)
            {
                this.InitView();
                return;
            }

            if (this.service.MessageCheckDraft(DraftId))
            {
                this.InitView();
                return;
            }



            Domain.Enums.TicketMessageSendError error = Domain.Enums.TicketMessageSendError.none;



            Int64 messageId = 0;
            Int64 userId    = this.service.UserGetIdfromPerson(UserContext.CurrentUserID);

            if (NewStatus == Domain.Enums.TicketStatus.closeSolved || NewStatus == Domain.Enums.TicketStatus.closeUnsolved)
            {
                error = service.MessageSendMan(View.TicketId, Text, Preview, HideToUser, MsgType, View.UserType, false, ref messageId);
                service.TicketStatusModify(View.TicketId, NewStatus, View.GetChangeStatusMessage(NewStatus), true, View.UserType, ref messageId);

                //Begin Action
                List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                Objects.Add(ModuleTicket.KVPgetUser(userId));
                Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId));

                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                //End Action
            }
            else
            {
                service.TicketStatusModify(View.TicketId, NewStatus, View.GetChangeStatusMessage(NewStatus), false, View.UserType, ref messageId);
                error = service.MessageSendMan(View.TicketId, Text, Preview, HideToUser, MsgType, View.UserType, true, ref messageId);
            }

            if (error == Domain.Enums.TicketMessageSendError.none)
            {
                //Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID);
                //Begin Action
                List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                Objects.Add(ModuleTicket.KVPgetUser(userId));
                Objects.Add(ModuleTicket.KVPgetMessage(messageId));

                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageSend, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                //End Action

                //ToDo: Send Notification
                if (messageId > 0)
                {
                    SendNotification(messageId, userId, ModuleTicket.NotificationActionType.MassageSend);
                }

                this.InitView();
            }
            //else
            View.ShowSendError(error);
        }
예제 #3
0
        //TODO: Notification - V - TEST
        public void SendMessage(
            string Text, string Preview,
            Boolean CloseMessage, Boolean IsSolved)
        {
            if (!CheckSessionAccess())
            {
                return;
            }

            Domain.Enums.TicketStatus status = (IsSolved)? Domain.Enums.TicketStatus.closeSolved : Domain.Enums.TicketStatus.closeUnsolved;

            if (service.MessageCheckDraft(View.DraftMsgId))
            {
                this.InitView();
                return;
            }

            Int64 NewMessageId = View.DraftMsgId;

            Domain.Enums.TicketMessageSendError Errors =
                service.MessageSendUser(View.TicketId, Text, Preview, ref NewMessageId);
            //, CloseMessage, status);

            Boolean Changed = true;

            if (CloseMessage)
            {
                if (IsSolved)
                {
                    Changed = service.TicketStatusModify(View.TicketId,
                                                         Domain.Enums.TicketStatus.closeSolved,
                                                         View.GetChangeStatusMessage(Domain.Enums.TicketStatus.closeSolved),
                                                         false,
                                                         Domain.Enums.MessageUserType.Partecipant,
                                                         ref NewMessageId);
                }
                else
                {
                    Changed = service.TicketStatusModify(View.TicketId,
                                                         Domain.Enums.TicketStatus.closeUnsolved,
                                                         View.GetChangeStatusMessage(Domain.Enums.TicketStatus.closeUnsolved),
                                                         false,
                                                         Domain.Enums.MessageUserType.Partecipant,
                                                         ref NewMessageId);
                }
            }

            Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID);

            if (Errors != Domain.Enums.TicketMessageSendError.none && Errors != TicketMessageSendError.TicketClosed)
            {
                //Begin Action

                if (Changed)
                {
                    List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                    Objects.Add(ModuleTicket.KVPgetUser(userId));
                    Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId));

                    View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                }

                List <KeyValuePair <int, String> > ObjectsMsg = new List <KeyValuePair <int, string> >();
                ObjectsMsg.Add(ModuleTicket.KVPgetUser(userId));
                ObjectsMsg.Add(ModuleTicket.KVPgetMessage(NewMessageId));

                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageSend, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, ObjectsMsg);
                //End Action


                View.ShowSendError(Errors);
            }
            else if (!Changed)
            {
                View.ShowChangeStatusError(false);
            }
            else
            {
                if (Errors == TicketMessageSendError.none)
                {
                    SendNotification(NewMessageId, userId, ModuleTicket.NotificationActionType.MassageSend);
                }
                this.InitView();
                View.ShowSendError(Errors);
            }
        }