Exemple #1
0
        public void SetnotificationSettings(Domain.Enums.MailSettings creatorSettings,
                                            Domain.Enums.MailSettings ownerSettings)
        {
            //SettingsPortal settingsPortal = service.PortalSettingsGet();
            //if (!(settingsPortal.IsNotificationUserActive && settingsPortal.IsNotificationManActive))
            //    return;


            ////Se DISABLED, SOLO per il creator corrente (no behalf)
            //if (ownerSettings != MailSettings.DISABLED)
            //{
            //    service.NotificationSetTicketOwner(View.TicketId, ownerSettings);
            //}


            //service.NotificationSetTicketCreatorCurrent(View.TicketId, creatorSettings);

            //Se DISABLED, SOLO per il creator corrente (no behalf)
            if (ownerSettings != MailSettings.DISABLED)
            {
                bool IsOwner = creatorSettings == MailSettings.DISABLED;
                service.NotificationSetTicketOwner(View.TicketId, ownerSettings, IsOwner);
            }

            if (creatorSettings != MailSettings.DISABLED)
            {
                service.NotificationSetTicketCreatorCurrent(View.TicketId, creatorSettings);
            }

            this.InitView();
        }
        /// <summary>
        /// Crea un utente da una persona
        /// </summary>
        /// <param name="PersonId">Id Persona</param>
        /// <param name="Settings">Impostazioni</param>
        /// <returns>New User Id</returns>
        public Domain.TicketUser UserCreateFromPerson(
            Int32 PersonId,
            Domain.Enums.MailSettings Settings)
        {
            litePerson Person = Manager.GetLitePerson(PersonId);//Manager.Get<Person>(PersonId);

            if (Person == null)
            {
                return(null);
            }

            TicketUser User = new TicketUser();

            User.CreateMetaInfo(CurrentPerson, UC.IpAddress, UC.ProxyIpAddress);
            User.Person      = Person;
            User.Enabled     = true;
            User.MailChecked = false;
            //Viene messo a false, poichè NECESSITA comunque di registrazione e convalida via mail da pagine esterne.
            //VEDI: TokenValidate()

            Manager.SaveOrUpdate <TicketUser>(User);

            //Imposto i parametri globali per quell'utente, quando lo aggiungo come User nei Ticket...
            SettingsSetGlobalUser(User.Id, Settings, true, true);

            return(User);
        }
Exemple #3
0
        public void AttachmentsAddAlsoToCommunity(
            Domain.DTO.DTO_Ticket TkData,
            Domain.Enums.MailSettings ownerSettings,
            Domain.Enums.MailSettings creatorSettings,
            Boolean alwaysLastVersion)
        {
            if (!this.SaveTicket(TkData, ownerSettings, creatorSettings, true))
            {
                return;
            }

            Domain.Message Msg = service.MessageGetFromTicketDraft(TkData.TicketId, TkData.CreatorId);

            if (Msg == null || View.DraftMsgId != Msg.Id)
            {
                return;
            }

            int UserID = (this.UserContext != null) ? UserContext.CurrentUserID : 0;

            lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(CurrentCommunityId, UserID);
            List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> actions = service.UploadAvailableActionsGet(MessageUserType.Partecipant, CurrentCommunityId, UserContext.CurrentUserID, cRepository);

            if (!actions.Contains(lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions.uploadtomoduleitemandcommunity))
            {
                return;
            }

            //service.MessageDraftUpdate(HtmlText, PreviewText, View.CurrentTicketId, View.DraftMsgId);
            //-------------------------------------------------------------------------------------
            service.AttachmentsAddFiles(View.DraftMsgId, View.GetUploadedItems(Msg, RepositoryAttachmentUploadActions.uploadtomoduleitemandcommunity));
            //-------------------------------------------------------------------------------------

            this.InitView();
        }
Exemple #4
0
        public void AttachmentsAddInternal(
            Domain.DTO.DTO_Ticket TkData,
            Domain.Enums.MailSettings ownerSettings,
            Domain.Enums.MailSettings creatorSettings)
        {
            if (!this.SaveTicket(TkData, ownerSettings, creatorSettings, true))
            {
                return;
            }

            Domain.Message message = service.MessageGetFromTicketDraft(TkData.TicketId, TkData.CreatorId);

            if (message == null || View.DraftMsgId != message.Id)
            {
                return;
            }

            List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> FileActions = service.UploadAvailableActionsGet(Domain.Enums.MessageUserType.Partecipant, 0, 0, null);


            if (!FileActions.Contains(lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions.uploadtomoduleitem))
            {
                return;
            }

            service.AttachmentsAddFiles(message.Id, View.GetUploadedItems(message, RepositoryAttachmentUploadActions.uploadtomoduleitem));

            this.InitView();
        }
        /// <summary>
        /// Recupera un utente da una Person,
        /// SE non trova l'utente, lo crea da Person.
        /// </summary>
        /// <param name="PersonId">Id Person</param>
        /// <returns>Oggetto User</returns>
        public Domain.TicketUser UserGetfromPerson(int PersonId)
        {
            Domain.TicketUser User = Manager.GetAll <Domain.TicketUser>(tu => tu.Person != null && tu.Person.Id == PersonId).FirstOrDefault();

            if (User == null)
            {
                Domain.Enums.MailSettings settings = Domain.Enums.MailSettings.Default;
                User = UserCreateFromPerson(PersonId, settings);
            }

            return(User);
        }
Exemple #6
0
        public void SetnotificationSettings(Domain.Enums.MailSettings creatorSettings)
        {
            Domain.SettingsPortal settingsPortal = service.PortalSettingsGet();
            if (!(settingsPortal.IsNotificationUserActive && settingsPortal.IsNotificationManActive))
            {
                return;
            }

            service.NotificationSetTicketCreatorExternal(View.TicketId, creatorSettings, View.CurrentUser.UserId);

            this.InitView();
        }
Exemple #7
0
        public void AttachmentsLinkFromCommunity(Domain.DTO.DTO_Ticket TkData,
                                                 Domain.Enums.MailSettings ownerSettings,
                                                 Domain.Enums.MailSettings creatorSettings,
                                                 List <ModuleActionLink> links)
        {
            if (!this.SaveTicket(TkData, ownerSettings, creatorSettings, true))
            {
                return;
            }

            Domain.Message Msg = service.MessageGetFromTicketDraft(TkData.TicketId, TkData.CreatorId);

            if (Msg == null || View.DraftMsgId != Msg.Id)
            {
                return;
            }

            int UserID = (this.UserContext != null) ? UserContext.CurrentUserID : 0;

            lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(CurrentCommunityId, UserID);

            List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> actions = service.UploadAvailableActionsGet(MessageUserType.Partecipant, CurrentCommunityId, UserContext.CurrentUserID, cRepository);

            if (!actions.Contains(lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions.linkfromcommunity))
            {
                return;
            }

            IList <Domain.TicketFile> attachments = service.AttachmentsLinkFiles(View.DraftMsgId, links);
            int addedfiles = 0;

            if (attachments != null)
            {
                addedfiles = attachments.Count();
            }

            this.InitView();
        }
Exemple #8
0
        public void SetnotificationSettings(Domain.Enums.MailSettings managerSettings)
        {
            service.NotificationSetTicket(View.TicketId, managerSettings, this.service.UserGetIdfromPerson(UserContext.CurrentUserID), false);

            this.InitView();
        }
Exemple #9
0
        public void SaveSettings(
            bool enableUser,
            bool enableManager,
            Domain.Enums.MailSettings userSettings,
            Domain.Enums.MailSettings managerSettings)
        {
            if (!CheckSession())
            {
                return;
            }



            GlobalAdminStatus SaveStatus = GlobalAdminStatus.SaveOK;

            //if (!service.PersonCurrentIsSysAdmin())
            //{
            //    View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, 0, ModuleTicket.InteractionType.None);

            //    View.ShowNoPermission();
            //    return;
            //}

            //Begin Action
            View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.SettingsGlobalModify, 0, ModuleTicket.InteractionType.UserWithLearningObject);
            //End Action

            Domain.SettingsPortal settings = View.Settings;


            bool successMailSet = service.MailSendSetConfig(enableUser, enableManager, userSettings, managerSettings);

            Domain.DTO.DTO_Access Access = new Domain.DTO.DTO_Access();
            Access.CanManageCategory = settings.CanCreateCategory;
            Access.CanShowTicket     = settings.CanShowTicket;
            Access.CanEditTicket     = settings.CanEditTicket;

            //TO DO: Rinominare View.Permission in View.BehalfPermission?
            // O comunque rivedere quando sarà ora...

            bool successSet = service.SettingsGlobalSet(
                settings.HasExternalLimitation,
                settings.ExternalLimitation,
                settings.HasInternalLimitation,
                settings.InternalLimitation,
                settings.HasDraftLimitation,
                settings.DraftLimitation,
                settings.CommunityTypeSettings,
                0,
                Access,
                View.Permissions);//0 ==> View.Settings.MailSettings,

            bool hasDraftLimitationError    = (settings.DraftLimitation <= 0);
            bool hasInternalLimitationError = (settings.InternalLimitation < 0);
            bool hasExternalLimitationError = (settings.ExternalLimitation < 0);

            if (!(successSet && successMailSet))
            {
                SaveStatus = GlobalAdminStatus.InternalError;
            }

            InitView(SaveStatus, hasDraftLimitationError, hasInternalLimitationError, hasExternalLimitationError);
        }
Exemple #10
0
        //TODO: notification - V - test
        public Boolean SaveTicket(Domain.DTO.DTO_Ticket TkData,
                                  Domain.Enums.MailSettings ownerSettings,
                                  Domain.Enums.MailSettings creatorSettings,
                                  Boolean ForUpload = false)
        {
            if (!CheckSessionAccess())
            {
                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, -1, ModuleTicket.InteractionType.None);

                View.ShowError(Domain.Enums.TicketCreateError.NoPermission);
                return(false);
            }

            Domain.Enums.TicketCreateError  Error = Domain.Enums.TicketCreateError.none;
            Domain.Enums.TicketAddCondition Cond  = service.PermissionTicketUsercanCreate();

            if (Cond == Domain.Enums.TicketAddCondition.CheckCount)
            {
                if (TkData.IsDraft)
                {
                    if (!(service.TicketGetNumDraft(TkData.CreatorId) <= Access.MaxDraft))
                    {
                        Error = Domain.Enums.TicketCreateError.ToMuchDraft;
                    }
                }
                else
                {
                    if (!(service.TicketGetNumOpen(TkData.CreatorId) <= Access.MaxSended))
                    {
                        Error = Domain.Enums.TicketCreateError.ToMuchTicket;
                    }
                }
            }
            else if (Cond != Domain.Enums.TicketAddCondition.CanCreate)
            {
                Error = Domain.Enums.TicketCreateError.NoPermission;
            }

            if (Error != Domain.Enums.TicketCreateError.none)
            {
                View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None);

                View.ShowError(Error);
                return(false);
            }

            Error = service.TicketCreate(ref TkData);

            Boolean CanSave = false;

            if (Error == Domain.Enums.TicketCreateError.none)
            {
                CanSave = true;
            }
            else if (Error == Domain.Enums.TicketCreateError.NoCategory ||
                     Error == Domain.Enums.TicketCreateError.NoText ||
                     Error == Domain.Enums.TicketCreateError.NoTitle)
            {
                CanSave = ForUpload || TkData.IsDraft;
            }

            if (CanSave)
            {
                //Begin Action
                List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >();
                Objects.Add(ModuleTicket.KVPgetUser(TkData.CreatorId));
                Objects.Add(ModuleTicket.KVPgetTicket(TkData.TicketId));

                if (TkData.IsDraft)
                {
                    View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreateDraft, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                }
                else
                {
                    View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreate, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects);
                }
                //End Action


                //NOTIFICATION

                //Se DISABLED, SOLO per il creator corrente (no behalf)
                if (ownerSettings != MailSettings.DISABLED)
                {
                    bool IsOwner = creatorSettings == MailSettings.DISABLED;
                    service.NotificationSetTicketOwner(TkData.TicketId, ownerSettings, IsOwner);
                }

                if (creatorSettings != MailSettings.DISABLED)
                {
                    service.NotificationSetTicketCreatorCurrent(TkData.TicketId, creatorSettings);
                }

                //TODO: notification - test
                if (!TkData.IsDraft)
                {
                    SendNotification(TkData.DraftMsgId, TkData.CreatorId, ModuleTicket.NotificationActionType.TicketSend);
                    //SE inviato il DraftMsgdiventa il Primo messaggio.
                    //Il Creator è sempre quello che "fa fede" sulle logiche di invio.
                }

                View.TicketCreated(TkData.TicketId, TkData.IsDraft);


                if (!ForUpload)
                {
                    this.InitView();
                }
            }
            else
            {
                View.ShowError(Error);
                return(false);
            }

            return(true);
        }