Exemplo n.º 1
0
        public void SetTicketVisibility(bool HideToOwner)
        {
            View.ShowBehalfError(Domain.Enums.BehalfError.none);

            if (!CheckSessionAccess())
            {
                return;
            }

            Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID);
            if (Usr.Person == null)
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission);
                //Error: external?
                return;
            }

            if (!service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, Domain.Enums.PermissionType.Behalf))
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission);
                //Error: no permission
                return;
            }

            if (!service.TicketVisibilitySet(View.CurrentTicketId, HideToOwner))
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.dBerror);
                return;
                //Error: dB
            }

            this.InitView();
            View.ShowBehalfError(Domain.Enums.BehalfError.visibilitySuccess);
        }
Exemplo n.º 2
0
        //TODO: Notification - V - TEST
        public void SetBehalfPerson(Int32 PersonId, bool HideToOwner)
        {
            View.ShowBehalfError(Domain.Enums.BehalfError.none);

            if (!CheckSessionAccess())
            {
                //Session error
                return;
            }

            Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID);
            if (Usr.Person == null)
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission);
                //Error: external?
                return;
            }

            if (!service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, Domain.Enums.PermissionType.Behalf))
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission);
                //Error: no permission
                return;
            }

            Int64 messageId = 0;

            // -- SET BEHALF --
            if (!service.TicketSetBehalfPerson(View.TicketId, PersonId, HideToOwner, ref messageId))
            {
                View.ShowBehalfError(Domain.Enums.BehalfError.dBerror);
                return;
                //Error: dB
            }


            //TODO: Notification - TEST

            if (messageId > 0) //se MINORE <= 0 il Ticket è in DRAFT!
            {
                Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID);
                SendNotification(messageId, userId, ModuleTicket.NotificationActionType.OwnerChanged);
            }


            //Begin Action
            List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();

            Objects.Add(ModuleTicket.KVPgetPerson(PersonId));
            Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId));

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

            this.InitView();
            View.ShowBehalfError(Domain.Enums.BehalfError.success);
            //OK on page
        }
Exemplo n.º 3
0
        public void InitializeUser(Int64 UserId, bool hideError = true)
        {
            if (!CheckComolSession())
            {
                View.DisplaySessionTimeout(0);
                return;
            }



            bool Found = true;

            if (UserId < 0)
            {
                Found = false;
            }

            Domain.TicketUser user = service.UserGet(UserId);

            if (user == null)
            {
                Found = false;
            }

            if (Found)
            {
                if (hideError)
                {
                    View.ShowError(ViewSettingsUserError.none);
                }

                Domain.DTO.DTO_UserSettings settings = new DTO_UserSettings();
                settings.isManager  = service.UserIsManagerOrResolver();
                settings.isBehalfer = service.SettingsPermissionIsBehalfer(UserId);


                //settings.isNotificationOn = true;
                settings.isUserNotificationOn    = user.IsNotificationActiveUser;
                settings.isManagerNotificationOn = user.IsNotificationActiveManager;

                settings.Settings = service.NotificationGetUser(UserId, 0).Settings;

                Tickets.Domain.SettingsPortal settPortal = service.SettingsGlobalGet(false, 0);

                settings.isManagerSysNotificationOn = settPortal.IsNotificationUserActive;
                settings.isUserSysNotificationOn    = settPortal.IsNotificationManActive;
                //settings.Settings.

                //, true


                View.Settings = settings;
            }
            else
            {
                View.ShowError(Domain.Enums.ViewSettingsUserError.usernotfound);
            }
        }
Exemplo n.º 4
0
        //TODO: Notification - V - TEST
        public void RemoveBehalf()
        {
            View.ShowBehalfError(BehalfError.none);

            if (!CheckSessionAccess())
            {
                return;
            }

            Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID);
            if (Usr.Person == null)
            {
                View.ShowBehalfError(BehalfError.NoPermission);
                return;
            }

            //if (!service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, PermissionType.Behalf))
            //{
            //    View.ShowBehalfError(BehalfError.NoPermission);
            //    return;
            //}

            Int64 messageId = 0;

            if (!service.TicketSetBehalfCurrent(View.CurrentTicketId, ref messageId))
            {
                View.ShowBehalfError(BehalfError.dBerror);
            }

            //TODO: Notification - TEST
            if (messageId > 0) //se MINORE <= 0 il Ticket è in DRAFT!
            {
                Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID);
                SendNotification(messageId, userId, ModuleTicket.NotificationActionType.OwnerChanged);
            }



            //Begin Action
            List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();

            //Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID)));
            Objects.Add(ModuleTicket.KVPgetTicket(View.CurrentTicketId));

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

            this.InitView();
            View.ShowBehalfError(BehalfError.deleteSuccess);
            //OK on page
        }
Exemplo n.º 5
0
        public void InitView()
        {
            if (!CheckSessionAccess())
            {
                return;
            }
            //Boolean IsNewAndOtherTicket = false;


            Domain.DTO.DTO_AddInit values = new Domain.DTO.DTO_AddInit();

            //Utente
            Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID);
            if (Usr == null)
            {
                View.DisplaySessionTimeout(View.ViewCommunityId);
                return;
            }

            Domain.Enums.TicketAddCondition Cond = service.PermissionTicketUsercanCreate();

            if (Cond == Domain.Enums.TicketAddCondition.CheckCount &&
                service.TicketGetNumOpen(Usr.Id) >= Access.MaxSended)
            {
                View.ShowCantCreate(Domain.Enums.CantCreate.MaxSend);
            }

            int DraftNum = service.TicketGetNumDraft(Usr.Id);

            //DDL Lingue
            values.availableLanguages = service.LanguagesGetAvailableSys();

            int CommunityId = CurrentCommunityId;

            //Ticket (Se draft, altrimenti nuovo!)
            Domain.DTO.DTO_Ticket Tk = new Domain.DTO.DTO_Ticket();

            if (View.CurrentTicketId <= 0)
            {
                //Controllo se può creare nuovi Ticket (Bozze)
                if (!(Cond == Domain.Enums.TicketAddCondition.CanCreate ||
                      (Cond == Domain.Enums.TicketAddCondition.CheckCount &&
                       (DraftNum < Access.MaxDraft))))
                {
                    if (View.CurrentTicketId <= 0)
                    {
                        View.ShowCantCreate(Domain.Enums.CantCreate.MaxDraftNoSend);
                        View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, CommunityId, ModuleTicket.InteractionType.None);
                        return;
                    }
                }

                //Creo un nuovo Ticket in BOZZA
                Tk           = service.TicketCreateNewDraft(Usr.Id, CommunityId, View.GetDraftTitle(), View.GetDraftPreview());
                values.IsNew = true;

                //Una volta creato, redirezione alla pagina con il ticket appena creato, per evitare problema F5.
                View.GotoNewTicketCreated(Tk.Code);
                return;
            }
            else
            {
                //Prendo il Ticket in Bozza
                Tk = service.TicketGetDraft(View.CurrentTicketId);
            }

            //SE Ticket == null o cercano di accedere ad un Ticket non valido
            //o non è possibile creare un nuovo Ticket.
            if (Tk == null || Tk.TicketId <= 0 || !Tk.IsDraft)
            {
                View.ShowCantCreate(Domain.Enums.CantCreate.permission);
                return;
            }

            //Carico Ticket (Nuovo, appena creato o precedente che sia)
            CommunityId = Tk.CommunityId;

            View.CurrentTicketId = Tk.TicketId;
            View.ViewCommunityId = CommunityId;
            View.DraftMsgId      = Tk.DraftMsgId;

            values.TicketData         = Tk;
            values.CurrentCommunityId = CommunityId;
            values.FileCommunityId    = CurrentCommunityId;

            //Action
            List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();

            Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID)));

            View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.ExternalCreate, -1, ModuleTicket.InteractionType.None, Objects);
            //End Action

            values.HasOtherDraft = (values.IsNew && DraftNum > 0);

            this.UpdateCommunity(CommunityId, Tk.CategoryId);


            //USER!
            values.CurrentUser.UserId = Usr.Id;

            if (Usr.Person != null)
            {
                values.CurrentUser.PersonId     = Usr.Person.Id;
                values.CurrentUser.Name         = Usr.Person.Name;
                values.CurrentUser.SName        = Usr.Person.Surname;
                values.CurrentUser.LanguageCode = Usr.LanguageCode;
                values.CurrentUser.Mail         = Usr.Person.Mail;
            }
            else
            {
                values.CurrentUser.PersonId     = 0;
                values.CurrentUser.Name         = Usr.Name;
                values.CurrentUser.SName        = Usr.Sname;
                values.CurrentUser.LanguageCode = Usr.LanguageCode; // TicketService.LangMultiCODE; //OR SYS DEFAULT!?
                values.CurrentUser.Mail         = Usr.mail;
            }


            //Behalf

            if (Usr.Person != null)
            {
                values.CanBehalf = service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID,
                                                                Domain.Enums.PermissionType.Behalf);
            }
            else
            {
                values.CanBehalf = false;
            }


            // Notification (sono state messe qui a differenza di "Edit" in cui sono messe nel service.
            // SPOSTARE IN SERVICE?

            if (Tk.IsBehalf)
            {
                if (Tk.HideToOwner)
                {
                    bool isdefaultCreator = false;
                    values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator);
                    values.IsDefaultNotCreator = isdefaultCreator;
                    values.OwnerMailSettings   = MailSettings.none;
                    values.IsDefaultNotOwner   = true;
                }
                else
                {
                    bool isdefaultOwner   = false;
                    bool isdefaultCreator = false;
                    values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator);
                    values.IsDefaultNotCreator = isdefaultCreator;
                    values.OwnerMailSettings   = service.MailSettingsGet(Tk.OwnerId, Tk.TicketId, false, ref isdefaultOwner);
                    values.IsDefaultNotOwner   = isdefaultOwner;
                }

                values.IsCreatorNotificationEnable = Usr.IsNotificationActiveUser;
                values.IsOwnerNotificationEnable   = Tk.IsOwnerNotificationActive;
            }
            else
            {
                values.OwnerMailSettings = MailSettings.none;
                bool isdefaultCreator = false;
                values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator);
                values.IsDefaultNotCreator = isdefaultCreator;
                values.IsDefaultNotOwner   = true;

                values.IsCreatorNotificationEnable = Usr.IsNotificationActiveUser;
                //values.IsOwnerNotificationEnable = Usr.IsNotificationActiveUser;
            }

            values.CanListUsers = CanListUsers(UserContext.CurrentCommunityID);


            //Upload File comunità
            //Repository 4 upload

            int CurPersId = (Usr.Person != null) ? Usr.Person.Id : 0;

            lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(values.FileCommunityId, CurPersId);
            List <RepositoryAttachmentUploadActions>             actions     = service.UploadAvailableActionsGet(MessageUserType.Partecipant, values.FileCommunityId, Usr.Person.Id, cRepository);

            //if (values.TicketData.Attachments != null && values.TicketData.Attachments.Any())
            //{
            //    alreadyLinkedFiles = (from Domain.DTO.DTO_AttachmentItem atc in values.TicketData.Attachments
            //                          where atc.File != null && atc.Link != null
            //                          select new dtoCoreItemFileLink<long>()
            //                          {
            //                              CreatedBy = atc.CreatedBy,
            //                              CreatedOn = atc.CreatedOn,
            //                              Deleted = atc.Deleted,
            //                              ItemFileLinkId = atc.IdAttachment,//fl.Id,
            //                              StatusId = 0,
            //                              Link = atc.Link,
            //                              Owner = atc.CreatedBy,
            //                              isVisible = (atc.Deleted == BaseStatusDeleted.None && !atc.File.isDeleted),
            //                              File = atc.File
            //                          }).ToList<iCoreItemFileLink<long>>();

            //    //ModifiedBy = atc.ModifiedBy,
            //    //ModifiedOn = atc.ModifiedOn,

            //    // && fl.Visibility == Domain.Enums.FileVisibility.visible
            //    //NO: se non è visibile, non lo è per l'utente, manager e resolver lo possono vedere E comunque non posso linkarlo nuovamente.
            //}
            RepositoryAttachmentUploadActions dAction = RepositoryAttachmentUploadActions.none;

            View.InitView(values, actions, dAction, cRepository, Tk.DraftMsgId);
            initCommunitySelector(Tk.CommunityId);
        }